Упорядоченный хаос: как устроена система генерации карты в The Riftbreaker
Тайлы подбираются по принципу плиток Вана, из-за чего вся карты напоминает гигантскую мозаику.
The Riftbreaker — это экшен-RPG с элементами выживания и строительства, в которой игрок должен исследовать неизвестный мир. Комьюнити-менеджер EXOR Studios Пётр Бомак опубликовал на сайте Gamasutra текст, в котором рассказал о принципах генерации игровой карты. Мы выбрали из текста самое интересное.
Главное преимущество Riftbreaker заключается в том, что каждое прохождение уникально — игра каждый раз создаёт новый мир, поэтому пользователь никогда точно не знает, что его ждёт. Эта особенность реализована при помощи процедурной генерации — процесс создания карты разбит на несколько фаз.
Рандомизация биомов. Биом определяет тип врагов, с которыми столкнётся пользователь, набор погодных условий, а также доступность ресурсов. Для самой игры биом влияет на набор параметров, которые определяют процесс генерации мира. Каждый биом содержит информацию о параметрах освещения, скайбокса, а также набор материалов, которые будут использоваться в качестве базовых текстур для местности. Кроме того, это влияет на набор тайлов, которые используются при создании карты.
У биомов нет фиксированной конфигурации параметров, поэтому две карты одной среды могут сильно отличаться. Это достигается при помощи рандомизации биома — у игры есть не набор параметров, а предварительно настроенный набор опций для генерации. В результате крайне маловероятно, что игра выберет набор одинаковых материалов, скайбоксов и освещения для двух разных прохождений.
Создание тайлов. Тайлы — это фрагменты, из которых собирается вся игровая карта. Их размер — 128х128 метров.
Поверхность может быть покрыта одним из трёх глобальных материалов. Они выбираются случайно в процессе рандомизации биома. Дизайнеры просто обозначают зоны, где будет располагаться тот или иной материал, но сами не выбирают его.
Затем дизайнер размещает точки спауна игровых элементов — стартовой точки, ресурсов и NPC.
Рандомная сборка уровня. Префабы — это заранее созданные наборы свойств, которые игра размещает в окружении. Дизайнеры самостоятельно выбирают эти зоны, а игра случайно размещает объекты.
Генерация карты при помощи тайлов. Сперва игра проверяет, насколько большой должна быть карта — есть несколько размеров карт: от одного тайла до огромных площадей размером 12х12 тайлов. Размер локации влияет на геймплей — для разведки нужна большая карта, а для обороны базы — маленькая.
В каждом тайле содержится информация об их краях — это позволяет игре корректно ставить тайлы рядом друг с другом. В процессе рандомизации игра выбирает, какие тайлы будут использоваться для генерации карты, где будут точки спауна, и как тайлы будут повёрнуты.
Локация генерируется по упрощённому принципу плиток Вана — игра сопоставляет тайлы так, чтобы они подходили друг к другу. При этом она может их поворачивать на 90, 180 и 270 градусов. Также автор добавил, что далеко не все тайлы должны быть размером 128х128 — исключение касается рек, озёр и больших скал. Недостающие части карты заполняются случайными тайлами.
Рандомизация точек возрождения и ресурсов. Размещение ресурсов происходит рандомно, а их количество зависит от того, какую миссию проходит игрок. Местоположение ресурсов зависит от множества правил.
Когда точка размещения ресурса выбрана, определяется его объём.
После того, как все ресурсы распределены, игра проверяет все точки спауна пользователя и выбирает ту, которая ближе всего к минимальным базовым ресурсам. После этого можно начинать прохождение.
Компания заявила, что инвестирует в игру «больше, а не меньше».
Компания уже ведёт переговоры с партнёрами и разработчиками игр.