Files
fparkan/docs/specs/missions.md
Valentin Popov 31d849ddbf
Some checks failed
Test / Lint (push) Failing after 1m57s
Test / Test (push) Has been skipped
Test / Render parity (push) Has been skipped
updated docs
2026-02-19 16:10:57 +04:00

2.6 KiB
Raw Blame History

Missions

Подсистема Missions управляет сценарием:

  • стартовыми условиями;
  • триггерами;
  • победой/поражением;
  • синхронизацией с AI/Behavior/World.

1. Что уже зафиксировано

  1. Миссии связаны с картами (Land.msh/Land.map) и объектными категориями.
  2. Скриптовые ресурсы хранятся в архивных контейнерах (NRes) и участвуют в runtime-логике.
  3. Миссионные события влияют на AI и поведение объектов через общий gameplay-слой.

2. Минимальный runtime-контракт

  1. Детерминированный порядок обработки триггеров в кадре.
  2. Единая шкала времени миссии для всех подсистем.
  3. Согласованность идентификаторов объектов между mission-data и world-state.

3. Статус покрытия и что осталось до 100%

Закрыто:

  • связь миссионной подсистемы с форматом ресурсов и runtime-контуром.

Осталось:

  1. Полная спецификация форматов миссионных скриптов/таблиц.
  2. Полный перечень типов триггеров и их параметров.
  3. Формальные правила разрешения конфликтов триггеров в одном кадре.
  4. Набор replay parity-тестов «миссия от старта до завершения».

4. Mission -> Prototype -> Mesh bridge

Для 3D-объектов миссии обязательна промежуточная стадия objects.rlb:

  1. data.tma задаёт либо прямой ключ объекта, либо путь к *.dat.
  2. *.dat даёт model_key (в retail-наборе через objects.rlb).
  3. Ключ резолвится в запись прототипа внутри objects.rlb.
  4. Из прототипа выбирается фактический *.msh и архив (например bases.rlb, static.rlb, fortif.rlb).
  5. Только после этого запускается стандартная цепочка материалов и текстур.

Детальный формат и алгоритм вынесены в отдельную страницу: