Создание новой карты
Добавление совершенно новой локации — задача на стыке гейм-дизайна и левел-дизайна, тяжелее, чем расстановка
точек на существующей карте. Ниже — процесс, восстановленный по структуре репозиториев pda-assets и pda.
1. Нарисовать локацию в Tiled
Новая карта — это .tmx-файл, отредактированный во внешнем бесплатном редакторе
Tiled Map Editor:
- Создайте новую карту с ортогональной проекцией и размером тайла 8×8px.
- Используйте существующий тайлсет
maps/tiles/tiles.tsxизpda-assets— или расширьте его собственными тайлами (текстуры кладутся вmaps/tiles/). - Слой
tiles— сама сетка ландшафта (дороги, трава, болото, стены и т.д. — из палитры тайлсета). - Слой
objectgroup "objects"— коллизии: полилиниями обозначьте стены и границы проходимости, прямоугольниками — хитбоксы препятствий. При необходимости добавьте объекты со свойствомfire=trueдля точек костров.
2. Положить карту в pda-assets
- Сохраните
.tmx-файл вmaps/под понятным именем (например,zaton.tmx). - Добавьте превью/миниатюру локации в
maps/textures/map_<name>.png— используется в интерфейсе выбора локации и на мини-карте.
3. Локализация
Добавьте название локации в файл локализации (locale/ui.properties). Если вы хотите, чтобы локация
участвовала в фоновом «радиоэфире» случайных сообщений сталкеров, добавьте фразы-привязки к месту в
templates/locations (например, «возле блокпоста на Затоне»).
4. Зарегистрировать карту в игре
Сама игра (pda) не хардкодит список локаций в коде — карты представлены записью GameMap (данные, а не код):
id, title, level, имя .tmx-файла, стартовая позиция игрока (defPos). Добавление новой карты в реестр
доступных локаций — это правка данных на стороне игры/backend'а; на момент написания документации точный
формат этого реестра (где именно физически хранится список GameMap) не был до конца прояснён исследованием
и требует уточнения у разработчиков pda/pdanetwork перед тем, как рассчитывать добавить карту
полностью самостоятельно.
5. Наполнить историей
Когда локация зарегистрирована, дальнейшее — уже полностью в руках сюжетописателя, без участия программистов:
- Добавьте точки через свою главу истории (
points.<id_карты>). - Добавьте отряды фракций (
spawns.<id_карты>). - Свяжите точку перехода (
type: 7) на существующей соседней локации с новой картой, чтобы игрок мог до неё добраться.
6. Добавить точку перехода с соседней карты
Чтобы попасть на новую локацию, на существующей соседней карте должна появиться точка типа 7 (переход), а
на новой карте — обратная точка перехода к соседней. Оба перехода обычно добавляются одной и той же главой
истории, которая вводит новую локацию в игру.
Этот раздел собран по данным о структуре ресурсов и модели данных карты, но не проверен «вживую» через
добавление новой карты в собранную игру. Если что-то из шагов 4/6 не сработает как описано — см.
«Открытые вопросы» и сверяйтесь с актуальным кодом pda.