Система, меняющая уровень на ходу — описание принципов процедурной ре-генерации

Алгоритм способен анализировать, насколько хорошо играет пользователь, а затем менять локацию, отталкиваясь от сделанных выводов.

Инди-разработчица Хезер Робертсон на GDC 2018 выступила с докладом о концепции генератора уровней, который меняет пространство по ходу прохождения, реагируя на действия игрока. Она рассказала, в каких играх уже можно встретить подобную ре-генерацию локаций, а также кратко объяснила принципы устройства этой системы. Мы выбрали из лекции главное.

В таких играх как Minecraft и Spelunky процедурная генерация применяется для создания контента — система самостоятельно генерирует мир по определённым правилам и условиям. Но такие алгоритмы можно использовать не только для создания контента с нуля — они могут применяться для того, чтобы изменять окружение в соответствии с происходящими событиями.

Робертсон назвала такую систему — процедурная ре-генерация. Эта система менее очевидна для пользователя, и она отлично подходит для того, чтобы незаметно направлять его и балансировать игру.

Один из наиболее ярких примеров с подобной системой — Left 4 Dead. В этом зомби-шутере ходом боя управляет искусственный интеллект, который называется The Director. Эта система анализирует, насколько успешно игрок проходит уровень, и, в соответствии с этим, определяет:

  • где спаунятся зомби;
  • в каком количестве;
  • как часто появляются боссы;
  • где располагаются полезные предметы;
  • как размещены некоторые физические препятствия.

The Director всегда стремится сделать так, чтобы прохождение было напряжённым. Система совмещает в себе динамические аспекты — расположение зомби, и статические — выбор алгоритма между несколькими скриптами. Динамические черты сложнее реализовать, но они могут давать более впечатляющие результаты — с их помощью игроки никогда не знают, каким именно будет прохождение уровня. Эта система реагирует на то, насколько хорошо игрок проходит локацию.

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

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

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

Secret Spaces
Secret Spaces

Другая игра Робертсон под названием ETERNITY имеет похожие черты. Это стелс-хоррор про монстра, который умеет изменять прошлое — из-за этого всё окружение перестраивается каждые 20 секунд. Поэтому дом, по которому перемещается герой, превращается в настоящий лабиринт.

По словам Робертсон, в Left 4 Dead и Secret Spaces используется внешний тип ре-генерации. Это значит, что игра анализирует результаты пользователя и меняет следующую часть уровня. А в ETERNITY применяется внутренняя ре-генерация — окружение меняется даже тогда, когда игрок находится внутри него.

Система, меняющая уровень на ходу — описание принципов процедурной ре-генерации

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

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

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

Система, меняющая уровень на ходу — описание принципов процедурной ре-генерации

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

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

8282
32 комментария

лишь бы реализация не стала аналогом автолевелинга, когда играть плохо становится выгоднее

16
Ответить

Всё так и будет )

1
Ответить

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

Ответить

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

1
Ответить

Смысл в том, чтобы подстраиваться под игрока и давать ему нужный экспириенс с учетом его действий. Для игрока это не будет путаницей, а просто обычным уровнем со свими путями, он даже не поймет почему все так как оно есть :)

14
Ответить

Комментарий недоступен

2
Ответить

В Left 4 Dead 2 это крайне положительно сказывалось на реиграбельности каждого уровня. До сих пор нет-нет, да и пройдем с друзьями пару кампашек ещё разок.

Ответить