Петли против ветвей: как работает генерация цикличных локаций в Unexplored

Обычно у сгенерированных уровней ветвящаяся структура, но студия Ludomotion решила пойти иным путём.

Блогер и исследователь игр Томми Томпсон опубликовал в своём блоге текст, в котором рассказал о принципах генерации игрового мира в роуглайк данжен-кроулере Unexplored. Он объяснил, как система самостоятельно собирает окружение и делает локации интересными и удобными для прохождения. Мы выбрали из текста главное.

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

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

Для локаций, сгенерированных системами, свойственно ветвление, а не зацикленность — начиная в стартовой точке, игрок натыкается на разветвления, каждое из которых может привести к выходу, боссу, награде или тупику. Конечно, такая тенденция заметна исключительно на крупных картах с множеством развилок. Тем не менее разработчики научились делать так, чтобы подобная структура ничуть не раздражала пользователей. К примеру, в Dead Cells в тупиках чаще встречаются порталы, возвращающие героя к последней развилке.

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

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

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

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

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

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

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

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

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

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

Конечно, на локации не должна быть только одна петля — разработчики могут встраивать новые циклы в уже существующие. Паттерны задаются при помощи системы под названием Ludoscope — специального инструмента, который позволяет создавать миссии, используя определённый набор правил и шаблонов. Сам Ludoscope представляет собой абстрактную среду, которая никак не привязана к Unexplored — в инструмента задаётся определённая грамматика, а игра интерпретирует её в виде конкретного уровня.

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

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

В основе всех уровней в Unexplored лежит сетка, состоящая из взаимосвязанных пустых узлов. Затем генератор запускает процесс создания петли на уровне. После этого начинается итеративный процесс превращения этой структуры в тайловую карту — сперва карта низкого разрешения, но постепенно оно возврастает.

Петли против ветвей: как работает генерация цикличных локаций в Unexplored

После этого на уровне размещаются остальные элементы — враги, сундуки, ловушки, двери, ключи.

3232
Начать дискуссию