Процедурная генерация карты в Covenanted

Привет, на связи Coscom art group. Мы продолжаем развивать проект, о котором писали ранее. Сегодня расскажем о том, как процедурно генерируемая карта в нашей игре отвечает за rogue-like механики.

Процедурная генерация карты в Covenanted

Механика карты в играх с rogue-like элементами — это основной инструмент, с помощью которого генерируются условия под каждый забег. Опытные игроки знают правила генерации и выбирают свой путь более оптимально. Комната с боссом уровня, как правило, самая удаленная от старта игрока. Даже расположение тайных комнат опытный игрок узнает без подсказок.

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

Карта из прототипа Covenanted. Отрисована вручную, потому все локации смотрятся гармонично и на своем месте. Задача - сохранить эту ламповость при переходе к процедурной генерации. 
Карта из прототипа Covenanted. Отрисована вручную, потому все локации смотрятся гармонично и на своем месте. Задача - сохранить эту ламповость при переходе к процедурной генерации. 

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

При всем при этом в нашей концепции главная героиню игры преследует инквизиция. На карте это преследование отображается в виде портрета протагониста, блокирующего локацию. Каждый ход ведьмы инквизиция в биоме блокирует все больше локаций. Встреча с инквизицией сулит героине битву, за которую она не получит наград. Таким образом игрок постоянно находится в дилемме: отправиться в следующий биом или рискнуть своим HP и задержаться подольше на этапе исследования биома, локации в котором заняты инквизицией.

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

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

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

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

Локации в соседних биомах, куда ведьма перемещается накопив достаточно маны на заклинание, на карте скрыты облаками. Это сделано для того, чтобы игрок не знал ничего о наполнении биома до того момента, как переместился туда. Прогресс инквизиции сохраняется в каждом биоме, то есть если ведьма решит вернуться в биом в котором уже была — движение инквизиции там начнется с того хода, на котором остановилось.

Вот что в итоге у нас получилось. Кажется, цель достигнута. Предстоит еще проделать немало работы для того чтобы "оживить" карту, добавив на нее движущиеся и интерактивные объекты.
Вот что в итоге у нас получилось. Кажется, цель достигнута. Предстоит еще проделать немало работы для того чтобы "оживить" карту, добавив на нее движущиеся и интерактивные объекты.

Игра Covenanted в steam сейчас доступна для добавления в wish-list. Какие интересные механики работы с картой в играх вы помните?

5656
7 комментариев

Красивая карта

8
Ответить

Индржих, это не та игра, только облака похожи, не улыбайся так ехидно

3
Ответить

Нарисовано красиво, но не совсем понятен геймплей можно ролик? Действие игры происходит ночью?

1
Ответить

Геймплейный ролик на подходе!

Ответить

Мне очень понравилась тема с ведьмой и инквизицией. И сам подход к карте для сохранения атмосферы пера.

1
Ответить

Отлично отрисовано! Только за визуал в вишлист добавлю.

Надеюсь, будет больше шаблонов (чтобы не всегда морской биом был в углу), ну и, наверное, следить, чтобы новая игра гарантированно давала морской биом в другом месте

1
Ответить

А мне все нраица))) красавчики

Ответить