Enter the gungeon приложение для айбомбы
После того, как мы разобрались с терминами, можно, нет, не можно, а я бы даже сказал нужно изменить управление. На заводских настройках игра смотрится очень необычно и специфично.
Для начала выбросьте свой геймпад/контроллер/картошку/бананы/барабаны (или на чём там Dark Souls проходят?) куда подальше. Можно и в сторонку отложить но так текст будет менее брутальным. В Enter The Gungeon абсолютно другая механика начиная от необходимо строгого наведения прицела на врага, до перекатов. Вам будет просто напросто неудобно, и можно будет спокойно хоронить свой разбившийся об стенку со злости геймпад.
На клавиатуре управление крайне неудобное, ведь «прыжок» выполняющий роль переката, стоит на «ПКХ» (Правую Кнопку Хомяка), на которую обычно ставят прицеливание с оружий.
Стрельба: «ЛКХ» (Левая Кнопка Хомяка) что очень даже обычно и понятно;
Перекат: «Пробел» (Space). Дело в том, что какие-либо перекаты у меня ассоциируются с прыжком и всяким таким. Прыжки почти во всех играх назначены на «Пробел«, вот я и принял решение поставить здесь также;
Перезарядка: «R«. Тут всё понятно;
Карта: «Tab«. Такая же ситуация, что и с перекатом: карту во многих играх ставят на «Tab» или на «M«, но «Tab» гораздо ближе, да и никаких более важных кнопок не занимает;
Следующий предмет: «Left Shift» (Левый Шифт или в простонародье Шифт). Пояснять тут нечего, просто вкусовщина. Единственное, что стоит пояснить, так это отсутствие бинда на функцию «Предыдущий предмет«. 3 активных предмета собрать очень сложно, не говоря уже о предметах, дающих дополнительный слот для активок. Поэтому достаточно переключения «вперёд«, чтобы иметь быстрый доступ к обоим активным предметам;
Бросить предмет: (press) «F«. Кнопка не далёкая от «G«: можно легко запомнить значение, да и удобно находится на клавиатуре;
Чтобы открыть Робота, необходимо починить лифт на второй этаж, спуститься в шахту, взять там сгоревший телевизор и дать украсть его крысе донести его до кузнеца в Вы не поверите, Кузне. Однако стоит сказать, что этот телевизор времён Второй Мировой выпадает после каждого переката и занимает слот «Активного Предмета«. К счастью, телевизором можно бросаться и перекидывать его через пропасти. Самый сложный оружелец как в плане открытия (у меня ушло попыток 20, чтобы открыть эту жестяную банку), так и в геймплейном плане.
Вы могли заметить, что я нигде не упоминал такой параметр как «Урон». дело в том, что у всего стартового «Оружия» (кроме «Обреза» и «Арбалета«) урон одинаковый. Если какой-то человек говорит, что начальная пушка Десантника дамажит больше, чем пушка Пилота, то шлите его куда подальше, ведь опять же, урон у всех стартовых пушек одинаковый.
Ещё один наглядный пример: атака второй фазы Босса 5-ого этажа (проклятая версия, смотреть раздел «Проклятие и Крутость»), от которой можно уклониться только путём перекатов:
Проклятие усложняет игру искусственным путём, а именно усилением оруживших мертвецов. Как я уже упоминал, при высоком показателе «Проклятий» (достаточно даже одной единицы :P) монстры (и не только монстры, но и Боссы. Пример показан в прошлом разделе «Искусство переката. Дзюцу уклонения.») будут становиться «Проклятыми» (Заклиненными), получая в 2 раза больше здоровья, урона, скорость атаки и передвижения. Если количество проклятий будет равно, или же перевалит за 10, то появится «Повелитель Заклинивших«, который мало того, что будет преследовать Вас везде и атаковать, пусть и маленькими по площади атаками, но очень надоедливыми, заставляет Вашего основного торговца («Белло«) в спешке покидать магазин при входе «Повелителя Заклинивших», оставляя Вас ни с чем, благо, «Белло» снова появится на следующим этаже.
Параметр «Проклятий» повышается подбором некоторых предметов, использовании статуй, взаимодействием с некоторыми предметами и. Живыми объектами?!
И вот долгожданный способ стрельбы без перезарядки. Этим методом могут пользоваться даже те люди, которые не очень любят пользоваться багами или читами, ведь в этом способе используется, пусть и немного странная, но механика игры.
Стоит сказать, что он занимает слот активного предмета, так что для его подбора советуется брать Пилота.
Когда Вы донесёте хотя бы один компонент «Пули, убивающей прошлое», в «Бреши» появится стенд пули, на которой будут отображаться все принесённые предметы.
Возможно, Вы заметили что в игре есть несколько видов сундуков и все эти ранги предметов не просто так. С каждого сундука выпадает предмет соответствующего ранга. А именно:
Оружие обладает высокой точностью, боезапасом и неплохой скорострельностью.
Также даёт 3 дополнительных слота под активные предметы.
При сборе всех четырёх предметов Вы превращаетесь в Крысу, а Н.К. (Находчивый Крыс) больше не будет у Вас воровать.
Как генерируются подземелья в Enter The Gungeon
В последнее время я много играл в Enter The Gungeon. Это потрясающая, ужасно сложная игра в жанре bullet hell, сильно напомнившая мне Binding of Isaac. Но чем больше я играл в неё, тем больше осознавал малозаметную гениальность дизайна подземелий.
Существует много процедурных генераторов, создающих логичные схемы уровней, обеспечивающие правильный темп игры и вознаграждение игроков, и есть другие генераторы, создающие уровни с петлями и компактные схемы. Но редко можно встретить в одной игре оба типа. Единственная известная мне игра, в которой была попытка реализации подобного — это Unexplored.
Поэтому я, естественно, запустил декомпилятор, чтобы Gungeon раскрыла мне все свои секреты. В этой статье я поделюсь с вами тем, что мне удалось найти.
На первый взгляд уровни Gungeon кажутся довольно простыми. Вот типичный пример карты.
Карта типичного уровня 1
Игрок начинает со входа , пробегает через сундуки и лавочника , чтобы собрать лут, а затем, наконец, побеждает босса . Если вы уткнулись в длинный тупик, то для быстрого возврата в комнаты можно пользоваться телепортами. Очевидно, что отдельные комнаты созданы вручную, и населены различными врагами, которых нужно расстреливать. При продвижении к следующим уровням игры игрок видит тот же паттерн снова и снова, только этапы становятся больше.
Пока кажется, что в этом нет ничего интересного. В Интернете можно найти множество генераторов, соединяющих проходами случайные комнаты.
Особенность генератора становится заметной, когда вы начинаете играть. Уровни кажутся… чуть более спланированными, чем можно ожидать от случайности. Комната с боссом всегда находится на разумном расстоянии от начала. Комнаты с врагами всегда разумно перемежаются спокойными комнатами, лавками и перекрёстками. И самое важное — многие сундуки расположены за петлями с односторонней проходимостью.
Красная линия — это односторонний коридор. Если вы хотите попасть в комнату с сундуком, то нужно проделать долгий путь. Основное большинство сундуков расположено или в конце односторонней петли, или достаточно глубоко внутри уровня, что заставляет игрока с боем проходить множество комнат, просто достичь сундука. Без риска нет награды.
Секрет такого прохождения заключается в том, что общие схемы создаются вручную. Вот схема, использованная для генерации показанного выше уровня.
Обычные комнаты (Normal room) — это случайно выбираемые комнаты с врагами, комнаты-перекрёстки или большие комнаты с несколькими выходами. Награды (Reward) и босса (boss) объяснять не нужно. Здесь не показаны «соединительные» комнаты, то есть комнаты без врагов, часто с природными опасностями. Остальные комнаты или задаются заранее, или выбираются из особой таблицы комнат.
В Gungeon существует довольно мало таких схем, называемых «потоками» (flow). На уровнях Hollow их меньше всех (всего 4), а в Gungeon Proper — больше всех (8). Это не простые схемы, их дизайн создан на основе определённой особенности, которую можно заметить при многократном прохождении. Это может быть гигантская петля, или важная развилка из множества путей, или необходимость добраться до лавки, чтобы пройти уровень. Они настолько заметны, что спидраннеры заметили различия и составили графики, по которым можно максимально быстро найти босса. Я подготовил полный список схем, который можно скачать отсюда.
Вы могли заметить, что схема потока и карта совпадают не полностью. Под лавкой есть дополнительная комната. не соответствующая схеме, и странные комнаты-коридоры . Давайте изучим процесс в целом, он содержит множество умных идей.
Процесс начинается со случайного выбора файла потока наподобие показанного выше. Это структура данных «граф», то есть в ней хранятся взаимосвязи комнат, но не их расположение. Каждая комната содержит метаданные о типе комнаты и соединениях, которые она должна иметь. Соединения имеют направление — каждая схема потока начинается с корневого узла, а затем образует дерево дочерних узлов. Затем дополнительные соединения разбивают структуру дерева для создания петель. Я думаю, что это в основном вызвано особенностями разработки игры, но это упрощает процедуры анализа карты, ведь все петли имеют чётко определённые начало и конец.
Преобразование потока
Файл потока может преобразовываться ограниченным количеством способов. Во-первых, некоторые специфические комнаты заменятся сериями комнат случайной длины. Эта функция используется только в поздних, более крупных уровнях. Кроме того, некоторые части файла потока имеют альтернативные пути, и один из них выбирается случайным образом. Эта функция используется только дважды.
Затем «инъектируются» ещё несколько дополнительных узлов. Эта функция довольно гибка и используется для множества разных целей.
Каждая «инъекция» содержит данные, определяющие, какой тип объекта должен быть вставлен, где он должен быть вставлен, вероятность создания и любые условия, которые должны быть выполнены (например, наличие master round, высокого curse или то, что игрок пока не спас персонажа). Например, секретные комнаты обычно создаются в тупиках, но имеют вероятность 1/5 быть присоединёнными к любой комнате. Они имеют вероятность появления 90% и не требуют никаких дополнительных условий.
Почти каждая специальная комната в игре определяется инъекцией узла, в том числе и торговцы (не включая основную лавку), тюрьмы, комнаты с каминами и лифтами.
Одна из тюремных камер, которая может быть инъектирована в уровень
На этом же этапе генератор выбирает конкретную комнату для каждого узла. В основном это зависит от текущего этапа и необходимого типа комнаты. Существует огромный список комнат — почти 300 для первого этапа — но генератор старается не выбирать одинаковую комнату дважды.
Узлы типа «соединитель» работают иначе. Их комнаты выбираются позже, пока создаётся схема. Часто это длинные и узкие комнаты, поэтому очень важно выбрать комнату с правильной ориентацией.
Составные объекты
После завершения создания потока он разбивается на «составные объекты». Каждый составной объект — это или отдельная петля из комнат, или набор связанных комнат без петель (т.е. дерево). Это реализуется поиском наименьшей петли на карте и вырезанием её как составного объекта. Операция повторяется, пока на карте не останется петель. Остальная часть карты становится набором разделённых деревьев и соединениями между отдельными составными объектами.
Тот же самый поток после инъектирования и разделения на составные объекты
Схема составных объектов
Затем каждый составной объект создаётся по отдельности, на отдельной карте. Соединены вместе они будут позже.
Для планирования составного объекта первая комната размещается в произвольном месте. Затем к схеме одна за другой добавляются комнаты выбором пары выходов, один из которых относится к новой комнате, а другой — к имеющейся схеме. Выходы — это заранее заданные локации в метаданных каждой комнаты. Затем новая комната размещается так, чтобы её выход непосредственно соединялся с выходом из предыдущей комнаты. Потом процесс повторяется.
Если конкретнее, то составные объекты деревьев размещаются при помощи обхода дерева поиском в глубину. Алгоритм выбирает только те пары выходов, которые приводят к появлению новой комнаты без пересечения с предыдущими. В общем случае алгоритм предпочитает выбирать выходы, расположенные далеко от уже существующих. Если разместить комнату невозможно, то он вернётся назад и заново сгенерирует выбор комнат, повторяя этот процесс до трёх раз.
Тем временем составные объекты-петли размещаются добавлением элементов из петли по очереди с обеих сторон линии. Для начала пары выходов выбираются случайно (предпочтение отдаётся противоположным стенам, восток-запад или север-юг). Когда петля создана наполовину, она начинает отдавать предпочтение парам выходов, сближающим два разомкнутых края петли. После создания всех комнат алгоритму нужно добавить ещё одно соединение между последними двумя комнатами. Он выбирает ещё одну пару выходов. При возможности он конструирует между этими выходами небольшую прямоугольную комнату. В противном случае он выполняет поиск пути между выходами и создаёт «комнату», представляющую собой просто узкий коридор. Длина коридора должна составлять от 4 до 30 единиц (в шахтах до 50).
Окончательная сборка
На этом этапе небольшие отдельные части подземелья соединены друг с другом, но сами составные объекты нужно связать для создания полной карты.
Та же самая карта в виде составных объектов перед окончательной сборкой
Как видите, оставшиеся соединения в данном случае дают не особо большой выбор. Но могут встречаться и более сложные случаи, чем ранее. Алгоритм обходит карту, начиная с комнаты с наибольшим количеством соединений. Как и раньше, для каждого создаваемого соединения выбирается пара выходов. Если две комнаты находятся в разделённых частях карты, то эти две части карты выравниваются для создания короткого пути. В противном случае для создания маршрута используется поиск пути.
И на этом создание схемы уровня заканчивается. Остаётся только выбрать врагов и декорации для комнат, и это уже совершенно другая тема.
В заключение
Похоже, что основная цель разработчиков заключалась в создании процедурного генератора, обеспечивающего удовлетворительный игровой процесс. Очевидно, что для его правильной реализации им пришлось выполнить множество итераций — я нашёл большой объём кода генерации, который, похоже, не используется, потому что разработчики в поисках совершенства изменяли свою процедурную формулу.
Любопытный трюк заключается в том, что они генерируют первыми самые сложные/важные части карты. Генератор делает упор на создание узких петель и коротких коридоров в самых центральных частях уровня, а затем пытается соединить с ними всё остальное.
Как и в случае с моим исследованием генерации уровней Diablo 1, меня поразило, насколько эффективно оказывается генерировать часть подземелья в абстрактном виде — в данном случае это граф без информации о расположении. Более конкретным всё становится только позже. Функция «инъектирования» была бы попросту невозможной, если бы мы сразу перешли к работе с тайловой картой. Благодаря абстрагированию от подробностей размещения комнат она позволяет контролировать стиль прохождения игры и масштаб уровня.
Кроме того, меня восхитила расширяемость системы в целом. Unity стимулирует активно применять управляемый данными подход. Добавление новой комнаты, схемы или даже особого поведения возможно реализовать простым добавлением в соответствующие таблицы новых объектов. Должно быть, это стало сильным подспорьем, потому что Dodge Roll уже выпустила несколько бесплатных DLC и, без всяких сомнений, поддерживает создание модов.
Бонусы
Изучение этого генератора стало моим первым шансом на исследование создания профессиональной игры в Unity. Разработчики из Dodge Roll постарались и написали хороший код. Он хорошо читаем, а в некоторых местах довольно забавен — похоже, их любовь к каламбурам распространилась и на код. Мне понравились вот такие:
Guide for Enter the Gungeon 12+
Your Gungeon reference guide
João Silveira
Screenshots
Description
All the information about Enter the Gungeon you will ever need. Updated with the latest game content.
Quickly find all the information you need about the game Enter the Gungeon. Includes a global search where you can rapidly find the detailed info about the items and enemies you encounter during your gameplay.
* This guide shows you comprehensive information about:
— Guns
— Items
— Pickups
— Achievements
— Gungeoneers
— Enemies (Cult of the Gundead)
— Bosses
— Npcs
— Shrines
— Chambers
*Multiple visualisation modes
*Ability to apply filters to Gun and Item lists:
— Gun Type (Automatic, Beam, Burst, Charged, Semiautomatic)
— Item Type (Active or Passive)
Disclaimer:
This application is an unofficial guide for Enter the Gungeon
This app is not associated, affiliated, endorsed, sponsored or approved by Dodge Roll or Devolver Digital.
Guide + for Enter the Gungeon 12+
Your Gungeon reference guide
João Silveira
Screenshots
Description
All the information about Enter the Gungeon you will ever need. Updated with the latest game content.
Quickly find all the information you need about the game Enter the Gungeon. Includes a global search where you can rapidly find the detailed info about the items and enemies you encounter during your gameplay.
* This guide shows you comprehensive information about:
— Guns
— Items
— Pickups
— Achievements
— Gungeoneers
— Enemies (Cult of the Gundead)
— Bosses
— Npcs
— Shrines
— Chambers
*Multiple visualisation modes
*Ability to apply filters to Gun and Item lists:
— Gun Type (Automatic, Beam, Burst, Charged, Semiautomatic)
— Item Type (Active or Passive)
Disclaimer:
This application is an unofficial guide for Enter the Gungeon
This app is not associated, affiliated, endorsed, sponsored or approved by Dodge Roll or Devolver Digital.