Циклическая генерация подземелий на примере Unexplored

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
image

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

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

В dungeon crawler'е Unexplored использован фундаментально иной подход (см. рисунок 1). Вместо линейных путей в качестве самой базовой структуры он изначально использует циклы. Разница оказывается поразительной: при старом подходе хорошие и интересные циклы могли возникать случайно, а в Unexplored они являются запланированной особенностью результата работы генератора.

https://i1.wp.com/ctrl500.com/wp-content/uploads/2016/07/basic-cyclic-explantion.png

Рисунок 1 — циклы против деревьев.

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

Каждый цикл имеет путь A, ведущий от входа к конечной точки, и путь B, ведущий назад. В зависимости от абсолютной и относительной длины путей A и B можно превращать каждый цикл в паттерн дизайна (см. Рисунок 2). Например, когда A короткий, а B длинный, можно разместить в конечной точке цикла закрытую дверь, а ключ расположить в конце B, прямо перед тем, как можно будет вернуться к основному пути. Так будет создан уровень, где игрок сначала видит запертую дверь, а когда он находит подходящий ключ, то ему не нужно идти далеко, чтобы найти открываемую им дверь. Очевидно, что для этого требуется, чтобы игрок не мог достичь B прямо из входа в цикл, хотя может оказаться интересно, если он сможет сразу видеть B и ключ.

Ещё один пример, хорошо работающий с длинным A и коротким B — можно поместить между входом и B потайную дверь, создавая скрытый срез. Или B может просто быть более рискованным маршрутом, чем A, потому что на нём находится опасный враг или комната со множеством ловушек. Существует множество возможностей, на рисунке 2 показаны некоторые из них.


Рисунок 2 — примеры паттернов циклического дизайна.

Результаты оказываются потрясающими. На рисунке 3 показан уровень, сгенерированный игрой Unexplored. Он состоит из большого цикла «замок-ключ» с циклом, заполненным большой пропастью. Чтобы добавить немного интересности, добавлен небольшой цикл гамбита. Конструкция проста, но эффективна. На самом деле, мы осознали, что для большинства уровней часто достаточно всего пары циклов; уже при паре циклов уровни приобретают уникальную структуру и характер.

https://i1.wp.com/ctrl500.com/wp-content/uploads/2016/07/the-ring-level.png

Рисунок 3 — прохождение уровня.

Благодарности: идея циклического создания подземелий возникла во время исследовательского воркшопа в канадском Banff Center. Я не могу присвоить себе авторство этой идеи, поэтому делюсь этой честью со всеми, кто был в нашей рабочей группе.
Источник: https://habr.com/ru/post/468957/


Интересные статьи

Интересные статьи

Статья о том, как упорядочить найм1. Информируем о вакансии2. Ведём до найма3. Автоматизируем скучное4. Оформляем и выводим на работу5. Отчитываемся по итогам6. Помогаем с адаптацией...
Если Вы читаете данную статью, значит, скорее всего, Вы в курсе что такое JSON и картинка ниже Вам знакома. Но в любом случае советую посетить эту страничку, если Вы там еще не были, а так же пер...
Привет Хабр! В голову мне закралась мысль, и я ее думаю. И придумал. Все дело в жуткой несправедливости производителя, которому абсолютно ничего не стоило добавить модули в UEFI Bios для поддержк...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...
На сегодняшний день у сервиса «Битрикс24» нет сотен гигабит трафика, нет огромного парка серверов (хотя и существующих, конечно, немало). Но для многих клиентов он является основным инструментом ...