Как открыть в айзеке косы

Опубликовано: 17.09.2024

Когда новичок только запускает The Binding of Isaac и переходит на экран выбора героя, его тут же поражает огромный набор закрытых для использования персонажей. Сразу же хочется сыграть ими всеми! Но вот как их открыть? Наше руководство поможет вам разобраться.

Мэгги открывается довольно просто: в ходе одного забега вы должны накопить 7 контейнеров здоровья. Большинство апгрейдов такого рода добываются при убийстве боссов, но есть и другие способы, к примеру таблетки Health Up, белые сердца и некоторые предметы из магазина, сокровищницы и секретных комнат.

Каин также сравнительно прост для открытия. Вам потребуется в ходе одного забега держать в карманах 55 монет или более. Проще всего выполнить эту цель можно, игнорируя любые предложения в магазине (кроме разве что свинки-копилки и Humbling Bundle, которые, наоборот, упростят вашу задачу). Но в сами магазины и в том числе секретные комнаты заходить все же стоит: так вы имеете высокий шанс призвать мини-босса Жадность, роняющего много денег при смерти.

Открываем всех персонажей The Binding of Isaac Repentance

Иуда потребует для своего открытия смены привычного нам маршрута: после убийства It Lives/Mom’s Heart на втором этаже утроба вам нужно будет спуститься в Шеол, где вы сможете бросить вызов Сатане. Победив его в первый раз, вы и откроете этого мощного персонажа.

Открываем всех персонажей The Binding of Isaac Repentance

. , также известный как Blue Baby , потребует от вас небольшого гринда: для его разблокировки вам нужно будет убить Mom’s Heart 10 раз. Но не беспокойтесь: этого ключевого босса вы встретите еще многие десятки, даже сотни раз!

Открываем всех персонажей The Binding of Isaac Repentance

Для открытия Евы вам потребуется выполнить небольшое испытание: на протяжении двух этажей подряд вы не должны подбирать каких-либо сердец. Будьте аккуратны: иногда они сами попадаются под руку при выходе/входе в комнаты. В таких случаях отталкивайте сердца с пути бомбами. Вам также помогут предметы вроде Yum Heart или Book of Revelations, чтобы вы могли исцеляться, не нарушая правил.

Открываем всех персонажей The Binding of Isaac Repentance

Сложность нарастает! Чтобы получить доступ к Самсону , вам нужно будет не получать урона на протяжении двух этажей. Довольно трудная задача, если у вас нет полета или мощной связки, моментально убивающей все живое. В выполнении задачи помогут предметы Sacred Relic и Book of Shadows.

Открываем всех персонажей The Binding of Isaac Repentance

Азазель — демон, а потому для его открытия понадобится обратиться к темным силам. Совершите три сделки с дьяволом в ходе одного забега, и бримстоунодышащий герой станет доступен. Учитывайте, что вам потребуется не только аккуратно играть, не получая урона на этажах, но и поддерживать достаточный объем здоровья, чтобы позволить себе купить сделки.

Открываем всех персонажей The Binding of Isaac Repentance

Как только вы приноровитесь к боевым механикам, Лазарь станет очень легким для разблокировки: вам всего-то надо накопить 4 сердца души одновременно! Чтобы это было легче сделать, взрывайте окрашенные камни и проверяйте магазины. Не подбирайте сердца сразу же, но попробуйте накопить их, чтобы собрать потом все четыре в один момент.

Открываем всех персонажей The Binding of Isaac Repentance

Иден открывается сам по себе по мере того, как вы проходите игру: потребуется всего лишь одолеть четвертую главу, утроб и его вариации!

Открываем всех персонажей The Binding of Isaac Repentance

Мы предположим, что вы обладаете всеми DLC для игры, когда говорим про способ открытия Потерянного , так как способы отличаются в зависимости от того, играете вы в «обрезанную» версию или расширенную. В конце концов, без дополнений The Binding of Isaac теряет уж слишком много. Чтобы разблокировать этого хардкорного персонажа, потребуется умереть в комнате жертвоприношения (той, что с шипами посередине), при этом имея в инвентаре тринкет Missing Poster.

Открываем всех персонажей The Binding of Isaac Repentance

Afterbirth DLC-персонаж Лилит открывается, когда вы победите Ultra Greed, финального босса режима Greed Mode, играя за Азазеля .

Открываем всех персонажей The Binding of Isaac Repentance

Еще один персонаж, связанный с Greed Mode, Кипер открывается после того, как вы задонатите в общей сумме 1000 монет в автомат, появляющийся после убийства Ultra Greed.

Открываем всех персонажей The Binding of Isaac Repentance

Аполлион тоже требует DLC, но уже Afterbirth †, и открывается после убийства мега-сатаны. Отметим, что для получения доступа к этому бонусному боссу нужно будет собрать ключ ангела из двух кусочков, применить в стартовой комнате сундука Dad’s Key или же воспользоваться одноразовым предметом Get out of Jail Free Card. Есть и другой способ, связанный с комнатой жертвоприношений, но подробней об этом вы можете прочитать в соответствующей статье о секретном боссе Мега Сатана .

Открываем всех персонажей The Binding of Isaac Repentance

Уникальный гибридный персонаж Забытый потребует от вас обоих DLC и особых свистоплясок. Для начала, убедитесь, что вы уже открыли предмет Negative и убили хотя бы раз The Lamb, босса локации Dark Room. Теперь начните новый забег и постарайтесь убить босса первого этажа меньше чем за минуту игрового времени. Если успеете, в стартовой комнате появится тень лопаты. Поставьте там бомбу.

Взрыв создаст предмет Broken Shovel. Как только вы его подберете, вас будет постоянно пытаться раздавить мамина нога. В таких вот условиях придется проходить забег до самого конца. При этом ни в коем случае не меняйте лопату на другой предмет: она исчезнет! Следующей вашей задачей станет прохождение в этом забеге босс раша. Но не торопитесь: благодаря вашему активному предмету ограничение на 20 минут не применяется, вы можете успеть собрать достаточно мощный билд для прохождения игры.

По завершении босс раша игра заспавнит вам вторую часть лопаты. Подберите ее, собрав Mom’s Shovel, и теперь мама перестанет вас топтать. Отправляйтесь в Dark Room и ищите среди всех комнат одну особенную, со свежевскопанной землей посередине. Встаньте на этот тайл и используйте лопату. Душа вознесется к вершине комнаты (дождитесь этого), и появится сообщение об открытии Забытого.

Открываем всех персонажей The Binding of Isaac Repentance

Одна из двух новых героев Repentance, Бетани открывается при прохождении игры Лазарем без потери его второй жизни. Урон вы получать можете, но если умрете в первый раз, то задача будет провалена. Сама Бетани, кстати, является очень уникальным героем. Подробней о ней мы рассказывали здесь .

Открываем всех персонажей The Binding of Isaac Repentance

Яков и Исав — один из новых хардкорных персонажей Repentance, который потребует от вас управлять сразу двумя героями одновременно. Чтобы получить доступ к братьям, вам нужно будет пройти игру по новому альтернативному пути, убив босса Mother. Как это сделать, мы рассказали в отдельной статье здесь .

Помимо вышеперечисленных героев в Repentance разработчики добавили уникальную подборку из 17 «порченых» версий каждого играбельного персонажа со своими уникальными механиками и правилами. Как получить к ним доступ, мы рассказали в этой статье .

В начале был мужчина по имени Эдмунд. Он создал для себя игру во флэше, чтобы приятно проводить время, и дал другим в неё поиграть. Так появилась The Binding of Isaac, где ты зачищаешь комнаты плачущим мальчиком, которого пытается убить собственная мать. Людям это понравилось, игра получила поддержку, и вышло дополнение Wrath of The Lamb. Эдмунд Макмиллен сказал, что в игре слишком много предметов, больше не впихнуть, и создал TBoI: Rebirth. В этот момент подключился я. Я прошел эту игру, и надеялся, что на этом все, но потом вышли Afterbirth и Afterbirth+. К моменту выполнения 1000000% я чувствовал себя побитой собакой, и надеялся, что на этом все. Но Repentance была объявлена и спустя много лет этот день наступил. Страдания возвращаются.


Что это?

На основе Rebirth двумя с половиной землекопами был создан фанатский мод под названием Antibirth, который включал в себя огромное количество новых предметов, персонажей, боссов, локаций и даже собственные ролики. Он был настолько массивным, что перебивал даже основную игру. По этой причине я его вообще не трогал и даже не смотрел видео с ним. Я знал, что этот мод станет каноном и ждал. Я хотел пройти его тогда, когда он станет официальной частью игры. Хотел пройти его, ничего не зная про его особенности.

Дизайн

Я боялся, что графику сделают еще более вылизанной. К счастью, я был не прав. По стилистике, Repentance является чем-то средним между оригинальным TBoI и Rebirth. Общей темой всех монстров в игре можно назвать одно: гротеск. Все в игре шевелится, ползает, копошится. От баланса света и тени у меня начали в два раза быстрее уставать глаза, а проклятие тьмы, которое и без того не было особо приятным, стало еще… темнее. Кроме того Эдмунд не был бы Эдмундом, не добавь он новые элементы и стилистику из других игр. Я заметил стиль таких игр, как Super Meat Boy (тут нечему удивляться), Our Darker Purpose, и даже Castle Crushers. Игра давно вышла за пределы того, чем когда-то была.


Баланс

Эдмунд агрессивно пытается не дать игрокам ломать свою игру. Конечно, это равносильно попытке остановить особо печальный случай диареи салфетками из ближайшей забегаловки, но попытка благородна. Дьявола больше не получится обмануть (по крайней мере так просто), бегая по уровню без здоровья. Голова Крампуса была серьезно понерфлена, ножом стало сложнее пользоваться, зато некоторые другие предметы стали более полезными. К примеру, железный слиток теперь не только оглушает врагов, но и повышает наносимый урон. Тоже самое можно сказать и про другие предметы, которые я считал бесполезными. Теперь мне придется не только запоминать новые характеристики нескольких сотен старых предметов, но и кучу новых. Мне всего-навсего придется преодолеть окаменелые привычки, выработанные 400+ часами игры. Правда мне уже удалось сломать игру при помощи тринкетов и денег, но я ищу и другие способы.



Скорость

Все стало быстрее. Особенно снаряды, которые летят в тебя. Даже толстые летучие мыши стали более опасными из-за этого. Больше не получится вальяжно зачищать комнаты из-за переработки баланса предметов, и характеристик некоторых новых противников. Теперь приходится уворачиваться еще чаще, плюс весь экран заполняют разнообразные эффекты и фамильяры, что делает ориентирование в бою гораздо сложнее.

Сложность

Я прошел первые два испытания и решил, что игра стала легче. Только за это я заслужил все то, что случилось дальше. Основную сложность на данный момент представляет поведение монстров и новые механики. Дальше должно быть легче (кого я обманываю?). С ужасом жду момента, когда снова придется играть за Кипера!


Новые персонажи
Бетани

Пока что я открыл только её. Это персонаж-противоположность XXX, если говорить грубо. У неё есть только красное здоровье, а все синие и черные сердца сохраняются отдельно, и за их счет можно дополнительно использовать активный предмет, что при удачном положении дел может сделать из неё крайне мощного персонажа. Пока что я открыл только её, но и она мне проблем доставила своим испытанием.


Заключение

Даже со всеми открытыми предметами из предыдущих дополнений, я испытываю трудности с прохождением. По этой причине, если вы до этого не играли в Айзека, не устанавливайте пока Repentance, а пройдите предыдущие дополнения. Игру в любом случае еще много раз будут обновлять, внося изменения в баланс. Вы ведь не хотите, чтобы ваше прохождение было сравнимо с прохождением игры за Лоста без мантии? Я знаю, каково это. С этой игрой я не могу терпеть. Остальным же я скажу следующее: я понимаю вашу боль.

Задача руководства — обратить внимание игроков на некоторые не самые очевидные элементы The Binding of Isaac: Rebirth. Конечно, вы можете десятками часов рыться в википедиях и, в конце концов, всё это самостоятельно разузнать, но что-то подсказывает, что далеко не все так уж рьяно любят стены текста объёмом в сотни страниц.

Вещи, о которых вы могли не знать

На каждом уровне-этаже обязательно находится одна секретная комната (обозначена белым вопросительным знаком на миникарте) и одна супер секретная (серый вопросительный знак). Проблема в том, что определить их точное местонахождение нельзя, если у вас нет специализированного предмета. Это могут быть всяческие карты сокровищ, компасы, шахтёрская шапка и другое. Но что делать, если ты находишься в самом первом уровне и ещё не обладаешь подобными 'поисковиками'? Всё очень просто.

Изучите форму уровня, используя мини-карту. Посмотрите внимательно, ведь секретная комната следует нескольким принципам:
• обязательно граничит с двумя или более комнатами (чаще с 3-4). Это означает, что следует взрывать те места, которые окружены комнатами;
• никогда не граничит с комнатой босса;
• если камни или пропасти блокируют возможное местоположение двери в секретную комнату, там её быть не может. В секрет обязательно существует прямой доступ со всех граничащих комнат-сторон.

Что же до супер секретной комнаты, правила будут другими:
• граничит не более чем с одной комнатой;
• в неё не может быть прохода из комнаты босса;
• очень редко может появляться за секретной комнатой;
• очень часто появляется поблизости с комнатой босса.

Вероятно, вы уже знаете, что среди обычных камней можно со случайной вероятностью отыскать лестницу, ведущую в подвальную секретную комнату. Причём встречается эта лестница довольно частенько. В подвале с очень маленькой вероятностью (2% или около того) может сгенерироваться проход на чёрный рынок. Рынок представляет из себя самый мега секретный секрет игры, в котором можно хорошенько скупиться.



А вот чего вы, скорее всего, не знаете, так это того, что на чёрный рынок можно попасть даже если не появился соответствующий проход в подвале. Вам понадобится иметь всего лишь две бомбы и хорошенько изучить условия проникновения:
1) Войдите в подвал по главной лестнице;
2) В самой верхней точке основной лестницы подвала уткнитесь персонажем в левую стену и сбросьте одну бомбу вниз;
3) Очень быстро перейдите в правую часть лестницы, уткнитесь в правую стену и сбросьте вторую бомбу вниз;
4) Резко вылезьте на поверхность до взрыва бомб;
5) Вернитесь обратно в подвал и максимально быстро спуститесь в самый низ лестницы;
6) Уткнитесь персонажем в левую стену внизу лестницы и резко отпустите все кнопки (ничего больше не нажимайте);
7) Если всё сделано правильно, бомбы взорвутся одновременно и пропихнут персонажа через твёрдую стену влево;
8) Теперь просто идите вправо до упора по невидимому полу, пока не попадёте на чёрный рынок.
9) Трюк является багом и работает со 100% вероятностью при правильном исполнении.

Напоследок, в чистой комнате обязательно есть проход в подвал, прямо под ковром (нужно применить взрыв).


Некоторые монстры передвигаются непредсказуемо, другие делают это слишком резко и по очень неприятным схемам. Чтобы минимизировать вероятность получить урон, старайтесь прижиматься к стенкам комнаты. К примеру, большие красные мухи пытаются циркулировать кругами, что не позволяет им нормально передвигаться, если рядом окажется стена. Это их значительно замедлит и позволит легко расстрелять, не опасаясь получить посмертный урон от взрыва мух.

Прыгунов можно и вовсе заставить замереть на месте, если вы будете находиться возле них над пропастью (нужен навык полёта).


Также, прижавшись к стене можно:
• заставить обычных красных мух (если тех не более двух штук) остановиться прямо перед углом комнаты, в который вы забились;

• спровоцировать Пина вылезти в центре локации;

• обмануть GunGirls (они предпочитают не наскакивать на персонажа у стены, если двигаются вдоль этой стены).


Наверняка вы не один раз натыкались на пару батареек, лежащих посреди комнаты. При прямом использовании толку от них мало — можно перезарядить свой активный предмет дважды подряд. Настоящий же смысл двух батареек действительно занимателен (кстати, одна из таблеток призывает две батарейки в комнату).

Методика:
1) Найдите комнату с двумя батарейками, но не подбирайте их;
2) Также не подбирайте никакие другие подымаемые предметы в комнате и не открывайте сундуки;
3) Взорвите помеченные камешки (если есть), да и просто постарайтесь разломать всё, что только можно, чтобы на полу оказалось побольше всячины;
4) Иметь при себе предмет Blank Card (позволяет сделать копию вашей карты или руны);
5) Иметь при себе карту Jera (позволяет копировать содержимое всей комнаты).
6) Проводите цикл: копировать Jera активацией Blank Card, использовать скопированную Jera для размножения батареек, съесть одну батарейку для зарядки Blank Card. повторять.

Таким образом вы получаете бесконечный поток вещей. В том числе можно копировать желтые сундуки с предметом внутри, чтобы собрать целую кучу экипировки.

В октябре вышел «The Binding of Isaac: Afterbirth» – платное DLC для ремейка оригинальной флеш-игры и ее дополнений. Не совсем типичная ситуация для инди-сцены, где на фоне переизбытка участников дела идут откровенно не очень: студии разоряются одна за другой, а разработчики устраиваются в корпорации (нет, правда, парень, который сделал неплохой паззл про шестеренки, «Cogs», ушел делать VR в Гугл). Впрочем, автор «Жертвоприношения Исаака», Эдмунд Макмиллен – не новичок. Еще в начале 2000-х он выкладывал свои первые флеш-игры на набиравшем тогда популярность портале Newgrounds. Тогда никакого «инди», каким мы знаем его сейчас, не было и в помине.

Сам Эдмунд, будучи художником, всегда работал в коллаборации с другими людьми. Собственно, релиз, о котором тут идет речь, разрабатывала целая студия, «Niсalis» – эти ребята мало у кого на слуху, но в их портфолио порты и ремейки известных игр («Dance Dance Revolution», «Cave Story», «VVVVVV»). А «The Binding of Isaac» провальной уж никак не назовешь: только в стиме оригинал приобрели

3 млн. раз, а с ремейком эта цифра доходит до 4-х. Это, если что, уровень полноценных AAA-тайтлов. У среднего инди число покупок будет в пределах десятков тысяч, если не меньше.

Еще Эдмунд Макмиллен вместе с другими фриками от геймдева успел сняться в «Indie Game: The Movie» – документальном фильме о боли и страданиях игровых разработчиков. Там все наши старые знакомые: Нотч (продал «Minecraft» Микрософту за $2 млрд., после чего пустился кутить в Беверли Хиллз, предварительно разругавшись со всеми коллегами), Фил Фиш (обиделся на Твиттер и зарекся работать в геймдеве) и другие «интересные» и не очень личности.

Стиль Макмиллена узнается на раз-два: уродливые, болезненные или вовсе мертвые персонажи, провокационные заголовки («Dead Baby Dressup», «The C Word», «Time Fcuk») и гнетущий сюрреализм нарратива. Есть ли все это в «The Binding of Isaac»? Еще как! Околобиблейская тематика, мрачный подвал, полный безумных уродцев и безнадежный финал (спойлер: главный герой в итоге умрет) – все включено.

Теперь, когда вы примерно понимаете, о чем вообще речь, давайте попробуем разобраться, из чего же, собственно, состоит игра.

Если у вас в детстве была «приставка» под названием «Dendy» (клон консоли «NES», «Nintendo Entertainment System») или же вы просто интересовались, что происходило с играми на рубеже 80х-90х, то должны знать про «The Legend of Zelda» – игру о том, как маленький эльф в зеленой остроконечной шляпе спасает принцессу (игру про водопроводчика в красном комбинезоне с похожей историей, кстати, делали те же люди, при чем в одно время).

Теперь посмотрите на скриншот оригинального «Исаака».

Да это же сраная (буквально, Эдмунд добавил препятствия в виде какашек) «Зельда»! Боевая система, ивентарь, вид подземелья, да даже внутриигровой интерфейс – все скопировано практически 1 в 1. Разве что, в отличии от «Исаака», в «The Legend of Zelda» открытый мир, а не линейные уровни.

И все же они сильно отличаются друг от друга. Разницу можно сформулировать в виде двух слов: «RNG» (элементы случайности) и «метагейм» (действия вне игрового процесса, вкратце).

Изначально «The Binding of Isaac» состоял из 4-х частей по 2 уровня, но по мере выхода обновлений рос вширь и вглубь, так что на данный момент частей уже 6 (с хвостиком, если считать «Greed Mode»), и у каждой как минимум есть одна альтернативная версия.

На самом деле, это не такое большое разнообразие, потому что все части если не идентичны, то очень похожи между собой.

Генерация уровней, к слову, является чисто косметическим эффектом, потому что не смотря на большое количество (тысячи их) вариантов комнат, структура самого уровня всегда жестко регламентирована: босс, магазин, призовая, несколько испытаний (опционально) и два секрета.

Комнаты, естественно, могут ветвиться и вести в тупики, но даже расположение секретов легко угадать. Так в чем же тогда суть «RNG»? В предметах!

Путь до босса всегда открыт, и прохождение уровня требует только зачистки попутных монстров. А вот с тем, чтобы получить улучшение или найти пару лишних монет для магазина, могут возникнуть проблемы. Генератор не рассчитывает на то, что уровень будет «решаемым», что для каждого сундука или двери где-то лежит ключ, а ко всем недоступным местам есть малозаметный путь. Пройти же игру без улучшений будет довольно трудно.

Если что-то находится вне досягаемости, у игрока действительно нет никаких шансов.

Стратегия состоит в том, чтобы правильно сопоставить ресурсы в вашем распоряжении и возможные решения доступа к нужным предметам для получения выгодной комбинации. В играх с похожей прогрессией уровень сложности по мере прохождения лишь понижается, потому что вы находите все больше апгрейдов. В «Binding of Isaac» он резко обрывается вниз, когда игрок достигает правильной синергии предметов. Впрочем, даже удачный «билд» легко испортить, взяв улучшение, которое могло бы быть полезным в другой ситуации.

Вообще, поиск «ломающих» игру комбинаций – древнее развлечение, присутствующее практически во всех РПГ, но в «Исааке» автор, похоже, специально добивался такого эффекта.

И здесь мы плавно переходим ко второму аспекту, «мете».

Binding of Isaac и её ремейк Binding Of Isaac: Rebirth — одни из самых любимых для меня игр. Они относятся к жанру roguelite twin stick shooter и очень похожи на Enter the Gungeon.

Особенно знамениты подземелья, генерируемые этими играми. В Интернете я видел бесчисленное количество туториалов о том, как создавать генерацию в стиле Isaac, но меня заинтересовало, как она реализована в оригинале. К моему удивлению, в большинстве туториалов процесс описывается неверно. В этой статье я расскажу о том, как работает генерация, и покажу её пример в демо на Javascript.

Хоть мне и пришлось провести декомпиляцию, а также освежить свои покрывшиеся пылью знания о Flash (когда-то я написал собственный декомпилятор Actionscript), мне ещё и очень повезло: разработчик Isaac Флориан Химсл и один из основных разработчиков Rebirth Саймон Парзер с радостью ответили на мои вопросы. На самом деле, Флориан даже недавно записал видео с описанием алгоритма. На его канале можно также узнать подробности разработки его новой игры Squid Invaders.

Учитывая наличие его рассказа, моя статью можно считать избыточной, но если вам хочется кровавых подробностей, то продолжайте чтение.

Базовый алгоритм

Разработчики Isaac активно вдохновлялись играми серии Zelda в 2D и генерировали карты, похожие на их подземелья.


Это набор квадратных комнат, соединённых краями друг с другом. Некоторые комнаты являются особенными — на каждом этаже всегда есть лавка
, комната сокровищ
и босс
; кроме того, случайным образом выбираются несколько других особых комнат. За исключением секретной комнаты
, в подземелье нет петель.

Сама игра заключается в линейном прохождении таких уровней, обычно их бывает по два на «главу». В процессе прохождения карты становятся чуть больше, а содержимое комнат меняется, но алгоритм создания их структуры, по сути, каждый раз остаётся одинаковым.

Первую версию Isaac разработали менее, чем за 3 месяца, поэтому Химслу приходилось невероятно эффективно использовать своё время. Фундаментальный дизайн игры изящен и прост. Сначала генерируется план этажа (уровня). Затем некоторые комнаты выбираются в качестве особых. Потом из соответствующего пула выбирается интерьер каждой комнаты.

План этажа

Isaac генерируется на сетке размером 9×8. Для удобства ячейки обозначаются числами — единицами обозначают позицию по X, десятками — позицию по Y. Это означает, что можно двигаться вверх, вниз, влево и вправо, просто прибавляя +10, -10, +1 и -1. Ячейки с позицией по X, равной 0, не используются (всегда пусты), и это значит, что большей части кода не нужно беспокоиться о границах карты. То есть верхняя левая ячейка карты имеет обозначение 01, а нижняя правая — 79.

План этажа всего лишь определяет, в каких ячейках будут содержаться комнаты — содержимое комнаты выбирается позже.

Сначала по формуле random(2) + 5 + level * 2.6 определяется количество комнат. Т.е. уровни начинаются с 7 или 8 комнат, и каждый раз увеличиваются на 2 или 3 комнаты.

Затем игра помещает начальную комнату (ячейка 35) в очередь. Далее она циклически обходит очередь. Для каждой ячейки в очереди она циклически обходит 4 основных направления и делает следующее:

  • Определяет соседнюю ячейку, прибавляя к текущей ячейке +10/-10/+1/-1.
  • Если соседняя ячейка уже занята, то игра ничего не делает.
  • Если сама соседняя ячейка имеет более одного заполненного соседа, то игра ничего не делает.
  • Если на уровне уже достаточно комнат, игра ничего не делает.
  • Игра ничего не делает с вероятностью в 50%.
  • В противном случае игра помечает соседнюю ячейку как содержащую комнату, и добавляет её в очередь.

Если ячейка не добавляет комнату ни в одну из соседних ячеек, то это тупик и её можно добавить в список конечных комнат для дальнейшего использования.

В случае, если на картах требуется больше 16 комнат, начальную комнату периодически снова помещают в очередь, чтобы стимулировать рост.

Так как описанный выше алгоритм начинается с единственной комнаты и многократно расширяется наружу, он, по сути, является исследованием в ширину (breadth first exploration). Ограничение, не позволяющее добавить комнату, если уже есть два соседа, разделяет комнаты на отдельные коридоры, которые никогда не объединяются в петли.

Затем план этажа проверяется на согласованность. В нём должно содержаться нужное количество комнат, а комната босса не должна находится рядом с начальной комнатой. В противном случае генерация начинается заново.

Особые комнаты

Комнаты боссов размещаются считыванием последнего элемента из списка конечных комнат. Из-за того, что генерация выполняется как рост наружу, это всегда будет одна из комнат, расположенных на наибольшем расстоянии от начальной комнаты.

Затем указывается положение секретной комнаты. Эти комнаты добавляются в план этажа; они являются одними из немногих исключений из правила, запрещающего располагать комнаты рядом с несколькими уже существующими. На самом деле, алгоритм наоборот, предпочитает их размещать их так. Генератор случайным образом ищет пустую ячейку, находящуюся рядом с не менее чем тремя комнатами и не рядом с любой из конечных комнат. Если он не находит её спустя 300 попыток, то слегка ослабляет критерий поиска, а после 600 попыток ослабляет его ещё больше. Эта процедура гарантирует, что секретная комната всегда будет размещена на уровне, но обычно они зажаты рядом с перекрёстками, то есть рядом с ними всегда много комнат.

Почти все остальные особые комнаты располагаются в случайных конечных комнатах. Некоторые комнаты создаются гарантированно, другие имеют небольшой шанс или критерий. Например, комнаты жертвоприношений появляются в одном из семи раз; если у игрока полное здоровье, то они возникают примерно в одном из трёх раз.

Обычные комнаты

Соседние комнаты всегда имеют дверь (или разрушаемую стену) ровно по центру, и каждая комната спроектирована так, чтобы быть доступной со всех четырёх направлений. Следовательно, при выборе комнат не требуется каких-то особых рассуждений — подойдёт любая комбинация.

Комнаты случайным образом выбираются из пула. Информация о комнатах содержит и структуру (ямы, огонь, камни и т.п.), и монстров. И те, и другие подвержены случайным вариациям, например, появлению монстров-чемпионов и красных каминов.

Для обычных комнат существует три пула: лёгкий, средний и сложный. Первый этап главы выбирает из простых и средних комнат, а второй — из средних и сложных. Первая глава (Basement) содержит в пулах 174 обычных комнат. «Альтернативные главы», например, Cellar, которая случайным образом может заменить Basement, имеют немного отличающийся набор комнат.

Проклятие лабиринта

Одна из самых интересных дополнительных особенностей кода — это карты двойного размера. Они создаются случайно и только для некоторых режимов испытаний. Кроме очевидного удвоения количества особых комнат и двух соседних комнат с боссами они имеют и множество мелких деталей:

  • На 80% больше обычных комнат (максимум 45)
  • Для особых комнат используются только 6 дальних конечных комнат
  • Уровни выбирают комнаты из пулов простых, средних и сложных комнат.
  • В план этажа случайно добавляются дополнительные обычные комнаты с логикой размещения, как у секретных комнат.

Я создал на Javascript упрощённый пример генератора, чтобы можно было с ним поэкспериментировать. Полный код можно найти здесь, а работающий пример — в оригинале статьи.

Rebirth


Binding of Isaac: Rebirth — это ремейк оригинального Binding of Isaac, созданный компанией Nicalis, которая в то время была известна своими портами VVVVV и Cave Story. Игру портировали на C++ и переделали все звуки и графику. За годы существования игра получила множество DLC, добавивших новых предметов и врагов к и так уже достаточно впечатляющему списку оригинала.

Хотя в Rebirth есть куча интересных нововведений, основным вкладом в генерацию уровней стало добавление более крупных комнат неправильной формы.


С полным набором DLC (на момент написания статьи это Afterbirth+) в игре есть 11 больших комнат: 2×2, 2×1, L-образные и узкие коридоры в разных вариантах поворота.


Типичная L-образная комната, в три раза больше обычной комнаты. Она была реализована Саймоном Парзером благодаря аккуратной модификации исходного кода Химсла.

Вместо обхода в цикле всех направлений алгоритм обходит все выходы из комнаты. В комнате размером 2×2 их может быть до восьми.

Когда дело доходит до вставки комнаты, он случайным образом пытается вставить вместо неё большую комнату. Проверки соседей по-прежнему применяются, но только к первой ячейке, находящейся рядом за дверью; однако алгоритм проверяет, есть ли достаточно места для остальной части комнаты. Это означает, что большие комнаты могут создавать на уровне петли. Обычно две крупные комнаты генерируются рядом друг с другом и дополняются парой соединяющих их дверей.

Если для комнаты не хватает пространства, то алгоритм пытается вставить другого кандидата. При успешной вставке больших комнат есть вероятность 95%, что они будут удалены из пула.

Ещё больше кода нужно для обработки больших комнат с боссами. Вспомним, что комнаты с боссами всегда располагаются как можно дальше от начальной комнаты. Если желательна большая комната, генератор заменяет намеченную одиночную комнату. Так как комнаты с боссами всегда являются тупиками, при замене алгоритм проверяет, не являются ли они смежными с какими-то дополнительными комнатами. Иногда замена всё равно невозможна, поэтому проверяются все конечные точки на максимальном расстоянии от начальной комнаты, и если они не подходят, то алгоритм сдаётся.

Что касается секретных комнат, то для их размещения рассматриваются смежные комнаты на плане этажа, и комнаты выбираются только тогда, когда алгоритм определяет, что двери не нужны.


В Isaac пропасти обычно пересекать невозможно

Вывод

Генератор уровней Isaac — не самый сложный из тех, которые я видел, но несмотря на такой малый объём кода, работает он невероятно хорошо. Вероятно, именно поэтому его так часто пытаются воссоздать. Его простота позволяет вносить изменения и расширения, и мы видим это на примере Rebirth. Невероятный результат.

Также можно заметить, что эта игра продолжает тенденцию, в соответствии с которой план этажа генерируется отдельно от деталей комнаты. В своих статьях о Diablo 1 [перевод на Хабре] и Enter the Gungeon [перевод на Хабре] я говорил, почему такой подход может быть очень мощным.

При декомпиляции кода я не нашёл каких-то особо интересных подробностей. Самое интересное, о чём я могу сказать — расположение комнаты сокровищ хранится в переменной с именем «boner» — вероятно, сокращение от Bonus Room. Также в коде присутствуют тонкости относительно незначительных побочных эффектов различных предметов, но эту тему я оставлю анализаторам.

Далее вы можете посмотреть серию видео Химсла о внутреннем устройстве игры или даже сыграть в Isaac и увидеть все уровни вживую. Я слышал, что новый DLC Repentance выйдет в этом году. Также я рекомендую сыграть в другие игры главного дизайнера Эдмунда Макмиллена (особенно в Super Meat Boy).

Читайте также: