Подземелья

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

Быстрый старт

Чтобы сгенерировать подземелье:

  1. Имейте готовую карту, космическую или планетарную (через команду planet).
  2. Определитесь с пресетом, затем запустите команду подземелья. У неё есть автодополнение. dungen <MapId> <preset> <position X> <position Y> [Optional seed]. После этого будет запущена задача на генерацию подземелья.

Следует учесть, что на данный момент планеты сохраняют загруженными все посещённые области, поэтому если загрузить подземелье в уже посещённой области, оно смешается с сущностями биома. Чтобы этого избежать, загрузите его в другом месте (проще всего определить это, отдалившись и посмотрев, какие тайлы загружены).

Как это работает

DungeonPresetPrototype

V

DungeonRoomPackPrototype

V

DungeonRoomPrototype

Шаблоны подземелий

Комнаты подземелья указывают, какую карту использовать, и смещение тайлов внутри карты. Это уменьшает количество карт, ускоряет загрузку и позволяет всем комнатам быть видимыми одновременно.

Создавая новый шаблон, убедитесь, что вы сохранили его как карту и что у карты есть gridcomponent.

Пресет подземелья

Пресет подземелья содержит список областей, которые можно занимать с помощью наборов комнат. Также он содержит белый список комнат для использования. Пресет подземелья фиксирован и не задействует RNG.

Набор комнат подземелья

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

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

Комнаты подземелья

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

Дополнительные заметки

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

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

Создание нового контента

Для настройки прототипов требуются простые изменения yaml. Создайте карту в игре, проверьте правильность координат и посмотрите, как будет выглядеть ваша планировка.

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

Шаблон, который можно использовать, приведён ниже. Обратите внимание, что нет ограничений на размер или количество комнат.

dungeon_template.yml

Рекомендации по маппингу

  • На момент написания нет автоматической прокладки кабелей, поэтому если вы хотите, чтобы подземелье было запитанным, рекомендуется прикреплять провода в средних точках на каждом краю ваших комнат (по-прежнему внутри границ).

Subpages