Процедурная генерация карты в Covenanted
Привет, на связи Coscom art group. Мы продолжаем развивать проект, о котором писали ранее. Сегодня расскажем о том, как процедурно генерируемая карта в нашей игре отвечает за rogue-like механики.
Механика карты в играх с rogue-like элементами - это основной инструмент, с помощью которого генерируются условия под каждый забег. Опытные игроки знают правила генерации и выбирают свой путь более оптимально. Комната с боссом уровня, как правило, самая удаленная от старта игрока. Даже расположение тайных комнат опытный игрок узнает без подсказок.
На изображении выше - карта из Enter The Gungeon
В нашем проекте мы столкнулись с рядом трудностей с процедурной генерацией. Мы хотели, чтобы карта выглядела так, будто была вручную отрисована под каждый забег. Вот как она выглядела в прототипе. Все локации смотрятся гармонично и на своем месте. Задача - сохранить эту ламповость при переходе к процедурной генерации.
Вводные такие: каждый уровень игры - это отдельная карта. На карте генерируются биомы, в биомах локации. Под каждый биом пул локаций уникальный. В рамках каждой локации существуют варианты наполнения - некоторые локации с большей вероятностью предложат игроку сразиться с монстром, другие чаще содержат в себе мирные события или торговца. Вероятность наткнуться на противника при посещении, примеру, рынка. должна быть довольно низкая, но и такие шансы нужно вводить в игру, если мы хотим достигнуть высокого уровня реиграбельности.
При всем при этом в нашей концепции главная героиню игры преследует инквизиция. На карте это преследование отображается в виде портрета протагониста, блокирующего локацию. Каждый ход ведьмы инквизиция в биоме блокирует все больше локаций. Встреча с инквизицией сулит героине битву, за которую она не получит наград. Таким образом игрок постоянно находится в дилемме: отправиться в следующий биом или рискнуть своим HP и задержаться подольше на этапе исследования биома, локации в котором заняты инквизицией.
Учтя все вводные, мы перешли к работе над картой. Перебрав несколько вариантов программной генерации мы решили, что нарисуем несколько шаблонов карты, расставим заранее на ней точки генерации локаций, а наполнение и тип этих локаций оставим за кодом. Так мы рассчитываем избежать корявой генерации по секторам или гексам - место для каждого спрайта локации заранее определено.
Вот как это выглядит в движке. Черные точки - это места под будущие локации. Красные точки - центры биомов. Сами биомы, за исключением морского, универсальны - это значит что они подходят под любой пул локаций.
Каждый шаблон может быть отражен вертикально, горизонтально, или обоими способами. Выходит что нарисовав один шаблон мы получаем четыре варианта генерации. Таким образом, карта каждый раз выглядит по-новому.
Локации в соседних биомах, куда ведьма перемещается накопив достаточно маны на заклинание, на карте скрыты облаками. Это сделано для того, чтобы игрок не знал ничего о наполнении биома до того момента, как переместился туда. Прогресс инквизиции сохраняется в каждом биоме, то есть если ведьма решит вернуться в биом в котором уже была - движение инквизиции там начнется с того хода, на котором остановилось.
Вот что в итоге у нас получилось. Кажется, цель достигнута. Предстоит еще проделать немало работы для того чтобы "оживить" карту, добавив на нее движущиеся и интерактивные объекты.
Игра Covenanted в steam сейчас доступна для добавления в wish-list. Какие интересные механики работы с картой в играх вы помните?
Лига Разработчиков Видеоигр
8.5K пост23.1K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"