Да, название этой статьи - не обман. Я действительно сумел найти сид хардкорного выживания Мэла. Сам он притом с нами сидом не поделился.
Сам сид: 3483555484082087413
Ссылка на оригинал статьи (там в заголовке подписано, что это я, CrazyLep, её написал).
![Увлекательный геймплей на стримах Мэла](https://habrastorage.org/getpro/habr/upload_files/ab5/6d7/df1/ab56d7df16d2655edcbdc58b2439ee5b.png)
Если вы ещё не знали, Мэл (melharucos) – это стример по Майнкрафту. Он не то чтобы безумно крупный, но стабильные тысяч 5 у него на стримах сидят – ну а если вдруг он удосужится посмотреть адвоката Егорова, там и все 10 набирается. В начале этого года он запустил выживание в хардкорном Майнкрафте, которое длится и по сей день. Именно этот сид я и нашёл.
Если кто не в курсе, то сиды в Майне находят уже довольно давно. Из наиболее крупных достижений можно выделить нахождение сида pack.png, сида Херобрина, а также сида мира, расположенного позади картины с черепом.
![pack.png - картинка, хранящаяся в файлах Майнкрафта. По одной этой картинке нашли сид](https://habrastorage.org/getpro/habr/upload_files/e31/974/993/e319749930a89aa9ae36d8f1e1d3d31c.png)
Меня это всегда восхищало, и я всегда хотел попробовать себя в этом. Но чей сид искать, какой мир находить? И в один прекрасный день я вспомнил о существовании Мэла.
Итак, как же я это сделал?
Говорю сразу: у меня было две попытки, и отняли они у меня две недели. Хотя, конечно, во второй раз я справился бы намного быстрее.
Разумеется, перед вычислением сида я через донат спросил Мэла, а не показывал ли он свой сид. Ответ на это я получил отрицательный. Значит, пора было приступать.
Первая попытка:
Первым же, что я вспомнил по теме, стало нахождение сида хардкорного мира WadZee, совершённое группой Minecraft@Home. Они использовали для этого специальную программу, написанную одним из их членов по имени Нил. Программа работает просто изумительно: она вычисляет сид мира всего по одному спавнеру. Да, вы не ослышались: достаточно всего одного данжа, чтобы программа Нила сумела вычислить сид.
На вход ей подаётся сравнительно небольшое количество данных: точные координаты спавнера (x, y и z), а также паттерн булыжника (в каком именно порядке чередуются обычный и замшелый булыжник) на полу комнаты со спавнером. Всё!
![Принцип работы вычислителя сида по спавнеру](https://habrastorage.org/getpro/habr/upload_files/0e3/20f/75e/0e320f75eb543b7016b54e39dc728a9b.png)
Сначала мне казалось, будто бы я никогда не соберу и крупицы данных о каких-нибудь спавнерах. Я перемотал записи почти всех стримов и не мог увидеть ни одного. Сам Мэл после доната сказал мне, что спавнеры были, но не сказал, когда.
Чтобы узнать инфу по спавнерам, мне пришлось обратиться к одному из нарезчиков Мэла. Уже он ответил мне, когда последний раз Мэл находил спавнер. Вот скриншот этого момента.
![Мэл нашёл спавнер зомби](https://habrastorage.org/getpro/habr/upload_files/d6e/9b0/86b/d6e9b086b8a8e43076c0f065f9dced8e.png)
Всё, что мне теперь оставалось узнать – это точные координаты блока и полный паттерн булыжника.
Но как узнать координаты спавнера? Мэл ни разу не нажимал F3, находясь рядом с ним, хотя, не скрою, мне бы это неслабо помогло.
Я вспомнил,что на 2b2t люди находят чужие базы по скриншотам, исходя из поворотов текстур.
Если вы не знали, в Майнкрафте текстуры блоков поворачиваются на определённый угол. Угол поворота зависит от того, где в мире расположен нужный нам блок. Я даже сумел найти предназначенную для такого поиска программу - и скомпилировать её.
![Программа, ищущая координаты по текстурам блоков](https://habrastorage.org/getpro/habr/upload_files/773/f61/c26/773f61c2642b2f003f25f2a643bfe356.png)
Но пользоваться программой оказалось слишком сложно. Пришлось искать иные методы.
И снова на помощь мне пришёл 2b2t - его игроки вызнали ещё один способ узнать координаты. Это бедрок.
Бедрок на дне мира Майнкрафта спавнится всегда одинаково - вне зависимости от сида. Поэтому игроки 2b2t написали программу, ищущую координаты в мире по паттерну бедрока.
![Программа, ищущая координаты по бедроку](https://habrastorage.org/getpro/habr/upload_files/88d/e07/389/88de07389898c18c449879e8b4aad204.png)
Я сумел найти координаты паттерна бедрока, который на несколько секунд появлялся на стриме рядом со спавнером.
![Видите? Это тот же самый паттерн бедрока, хотя мир – другой.](https://habrastorage.org/getpro/habr/upload_files/7f2/7b0/7cb/7f27b07cb1f629e7ee1a964a9615680b.png)
После этого мне пришлось по скриншотам создать реконструкцию места, на котором располагался спавнер. Поверьте мне, это отняло у меня немало усилий.
![Реконструкция места со спавнером](https://habrastorage.org/getpro/habr/upload_files/a62/eba/066/a62eba06605b151934a2944fc4ec3de4.png)
Но всё-таки я вычислил координаты спавнера: X = 216, Y = 13, Z = -337. К сожалению, я так и не смог полностью узнать паттерн булыжника на полу спавнера - некоторые блоки на стриме были просто закрыты стенами.
Вторая попытка: слайм-чанки
После первой попытки я несколько расстроился и было уже думал, что затея с поиском сида провалилась. Но уже через пару дней Мэл закончил бомбить периметр и приступил к постройке пола своей ямы. При этом он начал заливать водой слайм-чанки.
Это и стало моим спасением. Я тут же задумался – а возможно ли вычислить сид чужого мира по расположенным в нём слайм-чанкам? Оказалось, что да. Более того, для этого достаточно знать координаты всего 15 слайм-чанков!
![Мэл заливает водой слайм-чанк](https://habrastorage.org/getpro/habr/upload_files/883/263/da5/883263da585ea79c5c9f213ca29e5b0a.png)
И я начал смотреть и пересматривать все новые стримы. Я смотрел, какие именно чанки Мэл заливает водой. А чтобы проверить его точность, приходилось пересматривать некоторые фрагменты стримов по нескольку раз.
Если Мэл находил слайм-чанк, то я в своём мире на тех же координатах (вычисляемых по бедроку) тоже отмечал слайм-чанк.
![Реконструкция слайм-чанков в мире Мэла](https://habrastorage.org/getpro/habr/upload_files/2fa/c56/c8a/2fac56c8ae20b0625263b8bb7ed7ccd3.png)
Пока Мэл нашёл лишь 9 чанков, я сумел найти 17. Как? Я просто пересматривал целые фрагменты стримов по нескольку раз.
Этого было более чем достаточно, чтобы в уже другую программу вбить информацию об известных мне слайм-чанках и подождать ответа. Программа работала на протяжении более чем получаса – и в итоге выдала мне длиннющий список из 347 сидов, подходящих под паттерн слайм-чанков.
И тут мне пригодилось вычисление координат спавнера. Отныне я мог просто запустить сайт, на котором люди ищут по сиду спавнеры в своём мире, и вручную перебрать все 347 сидов.
![Проверка сида на данжи](https://habrastorage.org/getpro/habr/upload_files/580/606/0f0/5806060f0f67878c71441fb164a28901.png)
Мне повезло, и уже примерно 40-ой сид оказался тем самым, который и был мне нужен. Вы не представляете мои эмоции после тех трёх недель, когда я впервые увидел точно те самые координаты в программе.
Я запустил Майнкрафт, вбил в него этот сид – и да, это он и есть.
![Сравнение двух сидов](https://habrastorage.org/getpro/habr/upload_files/1fd/45e/1f6/1fd45e1f621f03a982100b5ed595fe8b.png)
В заключение скажу: не стесняйтесь находить сиды, ребята!