Перейти к основному содержимому

Создание новой карты

Добавление совершенно новой локации — задача на стыке гейм-дизайна и левел-дизайна, тяжелее, чем расстановка точек на существующей карте. Ниже — процесс, восстановленный по структуре репозиториев pda-assets и pda.

1. Нарисовать локацию в Tiled

Новая карта — это .tmx-файл, отредактированный во внешнем бесплатном редакторе Tiled Map Editor:

  1. Создайте новую карту с ортогональной проекцией и размером тайла 8×8px.
  2. Используйте существующий тайлсет maps/tiles/tiles.tsx из pda-assets — или расширьте его собственными тайлами (текстуры кладутся в maps/tiles/).
  3. Слой tiles — сама сетка ландшафта (дороги, трава, болото, стены и т.д. — из палитры тайлсета).
  4. Слой 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.