Геймдизайн
October 6

Проблема процедурной генерации уровней с множеством развилок.

Хоттейк

В своем первоначальном виде, процедурно генерируемые уровни с множеством развилок, как например в играх “Dead Cells” или “Enter the gungeon” это не плохая, но неудобная реализация структуры уровня.

Играя в выше озвученные и прочие проекты с такой генерацией уровня, игрок с большой вероятностью сталкивается с ситуацией, когда он, смотря на карту, пытается угадать какой маршрут ему проложить, только для того, чтобы сократить время прохождения уровня, зачистив при этом все комнаты. Если игрок не угадывает и пропускает пару комнат, то он встает перед выбором: Забить и продвигаться дальше или заниматься бэктрекингом с целью зачистить оставшиеся комнатушки. По сути это выбор между некоторым недостатком прокачки, но сохранением темпа игры, или обратным. В случае если игрок зайдет в тупик, то выбора у него не будет вовсе, он будет вынужден идти назад. Такой тип генерации уровня свойственен главным образом рогаликам, где игрок вновь и вновь, каждый забег, встаёт перед этой проблемой, и по чуть чуть начинает с этого душиться. Различного вида телепорты между некоторыми комнатами призваны смягчить эту проблему, но не решают её.

Некоторые возможные решения проблемы

1. Компенсация вместо бэктрекинга.

Можно лишить игрока необходимости бэктрекинга по оставшимся комнатам, предложив взамен достойную компенсацию. Так, например, сделано в игре Dead Cells: Там игрок, достаточно быстро проходя уровень, укладываясь в определённое время, между уровнями получает доступ к комнате с наградой, в которой лежит валюта и выбор одного из трёх предметов, повышенного, относительно локации, качества; Что с лихвой компенсирует упущенные комнаты.

2. Принуждение к выбору маршрута иными факторами.

Можно заставить игрока формировать свой маршрут на основании каких то других целей, даже если это будет подразумевать пропуск некоторых комнат, в пользу бонусов избранного маршрута.

3. Переход к прямолинейной структуре уровня.

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

И т.д.