Упорядоченный хаос: как устроена система генерации карты в The Riftbreaker

Тайлы подбираются по принципу плиток Вана, из-за чего вся карты напоминает гигантскую мозаику.

The Riftbreaker — это экшен-RPG с элементами выживания и строительства, в которой игрок должен исследовать неизвестный мир. Комьюнити-менеджер EXOR Studios Пётр Бомак опубликовал на сайте Gamasutra текст, в котором рассказал о принципах генерации игровой карты. Мы выбрали из текста самое интересное.

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

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

Набор текстур для джунглей
Набор текстур для джунглей
Четыре разных биома: джунгли, пустыня, кислота, магма
Четыре разных биома: джунгли, пустыня, кислота, магма

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

Создание тайлов. Тайлы — это фрагменты, из которых собирается вся игровая карта. Их размер — 128х128 метров.

Дизайнер покрывает местность разными типами маски. Текстуры наносятся автоматически из доступного набора

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

Если дизайнер решит использовать обычную текстуру вместо маски, то эта область не будет затронута процессом рандомизации

Затем дизайнер размещает точки спауна игровых элементов — стартовой точки, ресурсов и NPC.

Рандомная сборка уровня. Префабы — это заранее созданные наборы свойств, которые игра размещает в окружении. Дизайнеры самостоятельно выбирают эти зоны, а игра случайно размещает объекты.

Пример использования префабов
Префабы позволяют создать уникальный тайл в кратчайшие сроки
Несколько вариантов префабов

Генерация карты при помощи тайлов. Сперва игра проверяет, насколько большой должна быть карта — есть несколько размеров карт: от одного тайла до огромных площадей размером 12х12 тайлов. Размер локации влияет на геймплей — для разведки нужна большая карта, а для обороны базы — маленькая.

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

Локация генерируется по упрощённому принципу плиток Вана — игра сопоставляет тайлы так, чтобы они подходили друг к другу. При этом она может их поворачивать на 90, 180 и 270 градусов. Также автор добавил, что далеко не все тайлы должны быть размером 128х128 — исключение касается рек, озёр и больших скал. Недостающие части карты заполняются случайными тайлами.

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

Рандомизация точек возрождения и ресурсов. Размещение ресурсов происходит рандомно, а их количество зависит от того, какую миссию проходит игрок. Местоположение ресурсов зависит от множества правил.

Пример набора правил для распределения ресурсов. Для каждого режима и карты есть свой набор установок
Пример набора правил для распределения ресурсов. Для каждого режима и карты есть свой набор установок

Когда точка размещения ресурса выбрана, определяется его объём.

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

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

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