Генерация уровней на основе шаблонов

Генерация уровней на основе шаблонов

Шаблонный алгоритм генерации уровней (Template Dungeon generation) представляет собой универсальный алгоритм процедурной генерации уровней, который может быть адаптирован под большое количество различных сценариев.


Идея генератора взята из статьи на сайте roguebasin.roguelikedevelopment.org.

Проект на Uneral Engine 4 (4.25.4) доступен по ссылке.

Краткое описание алгоритма:

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

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

Лаборатории

Блоки лаборатории (краткий список):

Коридор (прямой, поворот, перекрёсток), малая комната, большая комната. Такая конфигурация может быть также использована для генерации, например, деревни: коридоры нужно заменить на дороги, а комнаты - на дома.

Подземка

Блоки подземки (параметры генератора):

Начальный блок - 1шт, Перекрёсток и Коридор - от 4 до 6, Тупик - все возможные позиции.

Начальный блок
Образец:
XXXX
XXXX
XXXX
XXXX
Результат:
?++?
+##+
+##+
?##?

Коридор
Образец:
XXXX
XXXX
XXXX
?++?
Результат:
?++?
?##?
?CC?
?CC?

Перекрёсток
Образец:
?XX?
XXXX
XXXX
?++?
Результат:
?++?
+##+
+##+
?##?

Тупик
Образец:
?++?
?##?
????
????
Результат:
?##?
?##?
????
????

Возврат к списку