Вы скорее всего пропустили, что происходит на просторах Minecraft расследований – тут на днях обнаружили «сид» мира из главного меню Minecraft и обнаружили не случайно, а провели целое расследование которому можно позавидовать.
«Сид» мира, это код для генерации мира, зная этот код и версию игры, мы можем с вами ими обменяться и играть в рамках одного мира, каждый у себя (то есть карта будет одинаковая). 7 лет никто не мог найти этот «сид» из главного меня, хотя переодически кто-то пытался.
Легко узнать «сид», если вы нашли его в интернете, но как по 4 скриншотам найти нужный, если всего может быть 281 474 976 710 656 вариантов миров от этих сидов?
Я правда впечатлен:
🟩 Для начала чуваки выяснили версию игры из которой еще Notch делал скриншоты для главного меню, потому, что генерация мира много раз менялась – это сделать оказалось довольно просто, они просто посмотрели мета-данные скриншотов и нашли что они сделаны 27 июня 2011 года, таким образом установили, что версия игры ~beta 1.7.3.
🟩 Дальше чуваки попробовали полностью воссоздать это место в любом другом мире, для этого они написали специальный софт сравнения ракурсов со скриншотом. Это точное воссоздание нужно, для последнего шага, кода чуваки написали алгоритм поиска такого же места – об этом позже.
🟩 Следующим шагом они попытались определить реальные координаты места в мире где был сделан скриншот. Для этого чуваки вычислили Z&Y-координаты через облака видные на скриншоте (!).
🟩 Для определения X-координаты, никак кроме как магией я эту внимательность назвать не могу: если вы видели Minecraft-блок покрытый травой, вы можете подумать что трава рандомно расположена на нем – на самом деле это не рандом, каким-то образом положение «травы» на блоке зависит от координат блока и одинаковое во всех возможных «мирах». Короче чувак построил длинную полосу из блоков и высаживая на каждом «траву» сравнивал с тем скриншотом, что у них был. И в итоге он так и нашел X-координату и подтвердил координаты Z и Y 🤯
🟩 Опять, используя траву, один из чуваков заметил – что травинки разных оттенков. Это происходит из-за «смешивания» биомов разной флоры в игре той версии. Дальше он сделал граф этих значений и уменьшил количество потенциальных сидов с числа о котором я писал вверху, до ~90 миллиардов. Я так понимаю они повторили алгоритм смешивания биомов для этого шага отдельно, не в самой игре.
🟩 Если вглядитесь в скриншот, то видно, как биом средней полосы переход в пустыню, дальше они опять применили метод из прошлого шага и получили ~11 миллионов потенциальных вариантов миров.
🟩 Теперь, в теории, они могли запустить алгоритм, который бы брутфорсил все миры в поисках блоков воссозданной сцены в начале этого поста, но это заняло бы слишком много времени, им нужно было уменьшить количество потенциальных сидов хотя-бы до ~2 миллионов, чтобы посчитать на CPU такой объем данных.
🟩 Но, оказалось, что у Minecraft сообщества уже есть «сервер распределённых вычислений Minecraft @home» где они, делясь вычислительными мощностями своих ПК, ищут, например самый высокий кактус во всех мирах и тп. Поэтому с помощью этих вычислений, они таки смогли брутфорсом найти правильный «сид» мира из главного меню 🔥 Иронично, что таких сидов оказалось два.
В общем, я в очередной раз радуюсь интернету и интернет-сообществам за факт их существования.
А вот и сид если хотите поиграться сами:
Beta 1.7.3, seed: 2151901553968352745
Интернет – 💖
Тут видео с деталями как ребята это сделали:
https://youtu.be/GaRurhiK-Lk