Честно говоря, сначала я думал, что статья уместится в коротком посте, но по мере работы над ней я понял, что это слишком много. Поэтому я решил разделить ее на две части; в следующей части мы рассмотрим еще один элемент игры, о котором вы можете ничего не знать, но который может продлить ваши приключения в TBoI на много-много часов.
Генерация подземелий в Binding of Isaac
The Binding of Isaac и ремейк Binding Of Isaac: Rebirth — одни из моих любимых игр. Они относятся к жанру roguelite twin stick shooter и очень похожи на Enter the Gungeon.
Особенно знамениты подземелья, созданные в этих играх. Я видел в Интернете бесчисленное количество руководств по созданию генерации в стиле Айзека, но мне было интересно, как это было применено к прототипу. К моему удивлению, большинство руководств описывают этот процесс неправильно. В этой статье я объясню, как работает генерация, и покажу пример на демонстрационном примере Javascript.
Хотя мне пришлось распаковать и освежить свои пыльные знания о Flash (когда-то я написал собственный декомпилятор Actionscript), мне также очень повезло: разработчик Isaac Флориан Химсле и соразработчик Rebirth Саймон Парцер охотно отвечали на мои вопросы. Более того, Флориан недавно записал видео с описанием алгоритма. На его канале вы также можете узнать подробности о разработке его новой игры Squid Invaders.
Учитывая существование его истории, мою статью можно считать излишней, но если вам нужны ужасные подробности, продолжайте читать.
Базовый алгоритм
Разработчики Isaac были сильно вдохновлены серией 2D-игр Zelda и создали карты, похожие на их подземелья.
Они представляют собой набор квадратных комнат, соединенных гранями. Некоторые комнаты особенные — на каждом этаже всегда есть магазин и босс, а в подземелье нет петель.
Сама игра состоит из линейного прохождения этих уровней, обычно по два на «главу». По мере продвижения карты становятся немного больше, содержание комнат меняется, но алгоритм создания их структуры каждый раз остается по сути одним и тем же.
Первая версия Isaac была разработана менее чем за 3 месяца, поэтому Химслу пришлось использовать свое время очень эффективно. Основной дизайн игры элегантен и прост. Сначала создается проект пола (уровня). Затем определенные комнаты выбираются как специальные. Затем для интерьера каждой комнаты подбирается подходящий аквариум.
1階
Исаакий создан на сетке 9×8. Для удобства ячейки обозначаются числами — единицы представляют позицию X, десятки — позицию Y. Это означает, что вы можете перемещаться вверх, вниз, влево и вправо, просто добавляя +10, -10, +1 и -1. Ячейки с X позицией 0 не используются (они всегда пусты), что означает, что большая часть кода не должна беспокоиться о границах карты. То есть, левая верхняя клетка карты обозначена 01, а правая нижняя — 79.
План этажа просто определяет, в каких ячейках будут находиться комнаты — содержимое комнат выбирается позже.
Первоначально количество комнат определяется по формуле random(2) + 5 + flat * 2.6. Это означает, что уровни начинаются с 7 или 8 комнат и увеличиваются на 2 или 3 комнаты за раз.
Затем игра помещает начальную комнату (ячейка 35) в очередь. Затем он обходит очередь. Для каждой ячейки в очереди он делает круг по 4 основным направлениям и выполняет следующие действия:
- Определяет соседнюю ячейку путем добавления +10/-10/+1/-1 к текущей ячейке.
- Если соседняя клетка уже занята, игра ничего не делает.
- Если есть несколько соседних клеток, прилегающих к самой соседней клетке, игра ничего не делает.
- Если на уровне уже достаточно места, игра ничего не делает.
- Игра ничего не делает 50% времени.
- В противном случае игра характеризует соседние клетки как комнаты и добавляет их в очередь.
Для карт, требующих более 16 комнат, исходные комнаты периодически возвращаются в очередь, чтобы стимулировать рост.
Приведенный выше алгоритм начинает с одной комнаты и расширяется несколько раз, поэтому по сути это поиск на основе диапазона. Из-за ограничения, что комната не может быть добавлена, если уже есть две соседние комнаты, комнаты разделяются на отдельные коридоры и никогда не соединяются в цикл.
Затем проверяется целостность поэтажных планов. Должно быть включено соответствующее количество комнат, и комната босса не может находиться рядом с оригинальной комнатой. В противном случае генерация начинается с самого начала.
Специальные помещения
Комнаты боссов размещаются путем чтения последнего пункта в списке финальных комнат. Поскольку создание выполняется как продолжение внешнего помещения, оно всегда будет одним из помещений, наиболее удаленных от исходного помещения.
Rebirth
Binding of Isaac: Rebirth — это ремейк оригинальной BindingofIsaac, созданной компанией Nicalis, известной в то время своими метафорами VVVVVVVV и Cave Story. Игра была переведена на C++, все звуки и графика были переделаны. За прошедшие годы игра получила множество DLC, добавляющих новые предметы и врагов к уже впечатляющему списку оригинальной игры.
В Rebirth много интересных нововведений, но главным ее вкладом в левелинг стало добавление больших комнат неправильной формы.
С полным набором DLC (на момент написания этих строк это Afterbirth +) в игре есть 11 больших комнат: 2 x 2, 2. 1, L-образные узкие коридоры различной конфигурации.
Типичная С-образная комната, в три раза больше обычной комнаты. Реализовано SimonParzer благодаря тщательной модификации исходного кода Himsle.
Вместо того чтобы поворачиваться во всех направлениях, алгоритм поворачивал все выходы из комнаты. В комнате 2 x 2 может быть до восьми человек.
Когда он пытается войти в комнату, он случайно пытается войти в большую комнату. Проверки соседей продолжают действовать, но только в отношении первой клетки рядом с дверью. Однако алгоритм проверяет, достаточно ли места в остальной части комнаты. Это означает, что на уровне контура можно генерировать большие помещения. Как правило, рядом друг с другом создаются две большие комнаты, дополненные парой соединительных дверей.
Если в комнате недостаточно места, алгоритм попытается ввести другого кандидата. Если большие комнаты успешно введены, существует 95% вероятность того, что они будут удалены из пула.
Для обработки больших комнат с боссами требуется больше кода. Обратите внимание, что комнаты боссов всегда располагаются как можно дальше от исходной комнаты. Если требуется более просторная комната, генератор заменит предполагаемую одноместную комнату. Поскольку комнаты боссов всегда являются тупиковыми, во время замены алгоритм проверяет, не являются ли они смежными с другими комнатами. Поскольку заменить их в любом случае не представляется возможным, алгоритм проверяет все столбы, находящиеся как можно дальше от исходной комнаты, и если они не совпадают, алгоритм сдается.
Для секретных помещений они размещаются с учетом соседних помещений на плане этажа, и помещения выбираются только в том случае, если алгоритм определяет, что дверь не требуется.
В Исаакии этот пробел обычно не заполняется!
И о таких людях свидетельствуют не только вышеупомянутые grindcore-группы, но и, например, знаменитый комик JoanCornelia. Но несмотря на грязь и, местами, абсолютный ужас, «Исааку» удается оставаться, в некотором роде, милым и непосредственным.
The Binding of Isaac: Rebirth
The Binding of Isaac: Rebirth — это переиздание оригинальной игры Эдмунда МакМиллена (создателя Super Meat Boy), вышедшей на ПК в 2011 году. Графика была изменена на 16-битную, а сама игра включает в себя весь контент оригинала (дополнение Wrath of the Lamb, новые главы, новые персонажи и враги, новые предметы и комнаты для исследования).
Это игра, в которой игрок управляет персонажем по имени Айзек или одним из шести разблокируемых персонажей, чтобы исследовать страшное подземное подземелье и темных существ, которых необходимо разгрузить. Игровая механика и графика напоминают The Legend of Zelda, но с добавлением случайных, процедурно генерируемых уровней.
Трейлер и скриншоты
Видеоматериалы по TheBindingofIsaac: Rebirth от блоггера Youtube. Вы можете добавлять свои собственные или найденные вами видеоролики.
Ниже приведены десятки различных сообщений в Интернете, включая выдержки из рецензий на книгу «TheBindingofIsaac:Rebirth». Мы не добавляем отзывы без оценки, так как не можем определить оценку на основании написанного текста, равно как и сделать это от имени автора. Мы стремимся к тому, чтобы оценка была максимально объективной, исходя из фактически выставленного балла.
Даже беглого взгляда на Rebirth достаточно, чтобы подтвердить его родство с оригиналом. Фирменный стиль Макмиллена никуда не делся. Монстры настолько же милы, насколько и невероятно ужасны, и меланхоличная атмосфера вскоре овладевает ими. Несомненно, обновление стало нормальным. The Legend of Isaac: Rebirth — это самая полная и просто лучшая версия истории Айзека. Будьте готовы к неожиданностям, контролируйте свои действия и ни в коем случае не оглядывайтесь назад.
Переплет Исаака оставляет сложное впечатление. С одной стороны, Макмиллен вроде бы ничего не утверждает (за исключением того, что длительный просмотр религиозных телеканалов может навредить психически неуравновешенным людям) и открыто ни о чем не просит. Но после просмотра почему-то приходит мысль, что в мире много брошенных детей, плачущих в подвалах под игом несоразмерных опекунов и собственных комплексов — и вы хотите сделать мир немного лучше, и это здорово.
Каков конечный результат? Окончательный уничтожитель свободного времени для всех поклонников олдскульных хардкорных аркад. Bind of Isaac либо захватит вас и удержит на крючке, либо, после нескольких смертей, заставит вас понять, что «это не ваша чашка чая». В любом случае, не стоит ожидать откровений свыше… И даже если вы это сделаете, я советую вам прислушаться к себе, а не к голосам с потолка. Вы никогда не знаете, громко ли разговаривает ваш сосед.
На PlayStation 4 изображение выглядит очень впечатляюще. При необходимости вы также можете активировать сглаживание для спрайтов. Несмотря на свой минимализм, «The BindingofIsaac» полна интересных деталей. В первые 10-20 сезонов это нереально, но вы захотите найти их все.
Поначалу вы будете своим единственным союзником — игроки-ветераны, потратившие сотни часов на оригинал, могут потратить игру на первую попытку ограничения Исаака, но новички любопытны и могут экспериментировать с комбинациями предметов. изучая повадки своих врагов. По совпадению, последнее было сделано много раз. Новые вариации старых монстров и еще больше новостей — некоторые даже научились покрывать стены комнаты паутиной. Каждая игровая сессия отличается от предыдущей.
Если вы уже прошли игру Isaac: Rebirth binding, поделитесь с нами своим мнением об игре. Расскажите нам о ее плюсах и минусах, о ее преимуществах и недостатках — помогите другим, кто хочет в нее поиграть. Прежде чем писать, ознакомьтесь с нашими правилами.
Рандом
Многое в игре основано на случайном производстве, но ошибочно полагать, что оно играет решающую роль. Чтобы преуспеть в очередной гонке TBOI, вам нужно создавать случайные задания и извлекать максимум из того, что вы можете предложить. Это достигается путем понимания различных тонких аспектов игры.
Некоторые стримеры решили создать подробное руководство по игре в виде полного прохождения с подробными комментариями. Каждый эпизод длится в среднем 30 минут, и на данный момент вышло уже 95 эпизодов. Она еще не закончена.
ОЧЕНЬ много внутриигрового контента
Прежде всего, в игре много объектов. Судя по дополнительному содержанию, в TBOI их более 500. Но это не единственное, что ограничивает богатство игры. Есть множество монстров, которые наполняют вашу собственную ветеринарную клинику, специальные комнаты, интересные предметы, будь то игровые автоматы или туалетные столики.
Так выглядит ветеринарная клиника. Если вы найдете всех монстров в игре, вы получите соответствующее достижение.
Алхимия
Они появляются из предыдущего пункта. Предметы редко делают что-то серьезное против врагов, но в комбинации они дают действительно интересные результаты. Помимо очевидного тройного выстрела + лазер = тройной лазер, существует и более необычная структура, которая является интересной находкой для игроков.
Вот скриншот одного из моих ранений — до конца игры здесь я получил самонаводящееся кольцо, которое блокирует вражеские выстрелы и распространяется на ближайшего монстра. Характер оказался неуравновешенным. Дойти до конца с этим билдом легко, но такое безумие случается нечасто.
Они представляют собой набор квадратных комнат, соединенных гранями. Некоторые комнаты особенные — на каждом этаже всегда есть магазин и босс, а в подземелье нет петель.
В The Binding of Isaac очень просто втянуться
Эдмунд Макмиллен вместе со своим старым партнером Флорианом Химслом создали очень важные «бублики» на поверхностном уровне. Чтобы не вводить слишком много информации в игру, обстановка минимальна. Даже органы управления расположены просто на полу багажного отделения. И поначалу вам не нужно ничего знать об игре. Мы можем бежать в созданное подземелье, стрелять слезами и использовать найденные предметы — вот и все. Как и в оригинальной destiny: если вы помните, какой кнопкой стрелять, вы не заблудитесь.
И этот элемент имеет четкие корни. Макмиллен создал намеренную оду старой школе, во главе которой стоит первое легендарное подземелье Зельды. Что касается сюжета, то, как бы странно это ни звучало, он был вдохновлен «Зельдой». Как Миямото был вдохновлен своим детским опытом нахождения целого мира под каждым камнем, так и Макмиллен решил обратиться к своему детству.
Я хотел сделать что-то очень старое, очень экспериментальное. Очень опасные, темные и странные игры. В нем я рассказывал о своей жизни и религиозных вопросах. Население, им это понравится. Поэтому я был обеспокоен». — Эдмунд Макмиллен
Простым» является все в игре — не только интерфейс. Уровни — это половина комнаты. Здесь могут быть ямы, камни, кучи мусора и другие препятствия, но нет никаких блестящих конструкций или внутренних украшений. Все внимание сосредоточено на героях и врагах. Именно поэтому они все такие большие и контрастные. Да, в некоторых местах есть избыток сложности, но Айзек не имеет ничего общего с победой, как и с процессом. Краткость всего этого придает некое инстинктивное возбуждение и затягивает вас — так что мы остаемся на уровне древней классики, такой как Crimsonland.
The Binding of Isaac пропитана неповторимым юмором Эдмунда Макмиллена
А его юмор в некоторых местах не так уж далек от творчества Anal Canto, группы, о которой мы недавно рассказывали. Будучи подростком, Макмиллен понимает, что это крик, мультфильм, переполненный насилием и оскорбительным юмором. Мы можем пойти дальше по книге в отношении мертвых младенцев. Dead Baby отражает свою суть в названии — как пристроить мертвого младенца в дом (например, сделать из него тапочки). То же самое относится и к его первой флеш-игре. Он нарисовал мертвого ребенка синим цветом. По словам Макмиллена, в то время он был известен как Эдмунд Блю Бэби Макмиллен. Голубой ребенок позже стал одним из сдерживающих персонажей Исаака. Макмиллен сам лучше всех объяснил свое чувство юмора.
Я использовал игрушки только для создания оскорбительных и причудливых сцен. В Meat Boy была сцена, где мастер-зло вытаскивает свои брюки и опускается на дно. Просто так, без причины, я хотел делать именно это — рисовать глупые анимации. ‘
Пришли ограничители Айзека. Стиль флеш-игры, сюрреализм, насилие, отвратительное уродство, провокационные сцены, слишком много дерьмовой анимации. Как будто это написано слишком продуктивным ребенком из детского сада — таков стиль автора.
И о таких людях свидетельствуют не только вышеупомянутые grindcore-группы, но и, например, знаменитый комик JoanCornelia. Но несмотря на грязь и, местами, абсолютный ужас, «Исааку» удается оставаться, в некотором роде, милым и непосредственным.
У The Binding of Isaac несколько уровней восприятия
Это задало тон всем отличным Roguelikes (таким как Game of the 2020 -Hades), но именно McMillen и Himsle Games задали тенденцию. Сначала вы прыгаете в грязь вместе с Исааком. Вы бежите почти вслепую, разгадываете все способности и используете все предметы — вы буквально бросаетесь играть в игру, о которой ничего не знаете. Даже в таком стиле вы можете наслаждаться им в течение десяти часов, если не больше.
К следующему этапу вы уже знаете, что представляет собой подземелье и большинство тактик врагов и боссов. Но самое главное, вы запоминаете визуальные объекты и бонусы. Часто эффективность «лута» фактически проверяется, так как игра не предоставляет подробных описаний. И на данный момент вы уже знаете, что хорошо, что плохо и что может быстро разрушить маршрут. Баланс игры продуман с самого начала, что делает ее интересной для изучения. На этом уровне вы можете буквально угасать десятки часов.
Ну, а последний уровень понимания — это Гуру, Гуру. Они знают об игре все. Это этап, на котором вы боретесь с трудностями и целенаправленно пытаетесь бороться со случайными механизмами, собирая определенные «билды». И именно здесь люди проводят сотни часов.