Техническая документация

Moon Courier Crisis

Архитектура, сценарии, code-map и эксплуатация.
Версия b6b24e121536 · подготовлено 7 сентября 2026

Назначение и границы

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

Браузерная игра о курьерской миссии на Луне: выбор уровня, брифинг, управление маршрутом, радиособытия и результат смены.

  • Управление маршрутом рассчитано на мышь и клавиатуру. Мобильные экраны адаптированы, полноценное touch-управление маршрутом не заявляется.
  • Первый доступный commit — baseline готовой стадии, поэтому он не определяет начало разработки.
  • Нет внешних интеграций или серверной БД: миссия выполняется в браузере.

Архитектура и схемы

  • React отвечает за интерфейс, Phaser — за canvas и игровой цикл.
  • Состояния выбора уровня, брифинга, миссии и результата разделены.
  • После поражения повтор возвращает в брифинг; новая смена запускается явным действием.
Компоненты опубликованного демо
Компоненты опубликованного демо · Mermaid ↓
Основной сценарий
Основной сценарий · Mermaid ↓
Размещение опубликованной версии
Размещение опубликованной версии · Mermaid ↓

Code-map: от функции к коду

Карта привязана к версии b6b24e121536. Она помогает проследить изменение через интерфейс, API, модуль, данные и проверку.

ФункцияЭкран / APIМодульДанные / проверка
ЗапускВыбор / брифингsrc/ui/store/gameStore.ts; src/game/createGame.tslevel config; production browser QA
МаршрутCanvassrc/game/MapScene.ts; simulation/routing/confirmRouteDraft.tsrouteDraft / findWeightedRoute; фактический маршрут
СобытияРадиопанельsimulation/radio/createRadioJournal.tsformatRadioEvent; игровая история
СимуляцияМиссия / результатsimulation/createSimulationEngine.ts; clock/fixedStepClock.tsсостояния курьеров и центров; unit suite
Мобильный видPreflight / radioReact styles / src/ui390px; no-overflow QA

Как работать с картой

  1. Перед изменением найти функцию и пройти связи до API, состояния и хранилища.
  2. Проверить входы, ошибки, повторные события и зависимые сценарии.
  3. После изменения обновить карту и затронутые схемы вместе с кодом.
  4. Выполнить связанные проверки и привязать новые материалы к версии исходников.

Сценарии и API

  1. Выберите уровень и прочитайте брифинг.
  2. Начните смену, выберите курьера и назначьте маршрут.
  3. Откройте радиопанель и проследите событие миссии.
  4. Дождитесь результата, нажмите повтор и запустите новую смену из брифинга.

Проверка опубликованной версии

  • Исходный полный набор: 464 unit-теста, 20 E2E и один skip. После CSS-правки повторены production build, assets и мобильный QA.
  • Production build / assets
  • Desktop route and actual defeat/replay
  • Mobile levels, briefing, radio; no overflow
  • Подтверждённого GitHub CI для этого SHA нет; перечислены выполненные локальные проверки и сценарии опубликованной версии. Исторические CI-ссылки, если есть, отмечены отдельно.

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

Измерения

Общий ресурсный контекст VPS для статического демо · 2026-09-07T01:08:27 — 01:11:22 UTC
Общий ресурсный контекст VPS для статического демо · 2026-09-07T01:08:27 — 01:11:22 UTC · Исходные данные ↓
Измеренные повторения сценария через HTTPS · 2026-09-07T01:08:36 UTC; ограничения методики в JSON
Измеренные повторения сценария через HTTPS · 2026-09-07T01:08:36 UTC; ограничения методики в JSON · Исходные данные ↓
  • Сохранено 15 содержательных кадров фактического интерфейса.
  • Дата, сценарий и версия указаны у каждого кадра.
  • Отдельного backend-процесса на VPS нет: Nginx раздаёт статику. Ресурсы общего Nginx нельзя честно приписать одному сайту.
  • Измерено 6 повторений сценария; медиана 61.0 мс, максимум 1770 мс. Время включает браузер и HTTPS; методика и ограничения приложены.

Запуск и эксплуатация

Публичное демо сохраняет игровой runtime исходного проекта. Здесь нет моков платёжных или AI-сервисов: вся демонстрируемая игра выполняется локально в браузере.

Production-сборка с проверкой TypeScript и ассетов выполняется вне VPS. На сервере Nginx отдаёт готовый каталог; постоянного backend нет.

Для проверки пройти реальные состояния миссии, не подменяя результат через test hooks. В evidence сохранены фактическое поражение и повтор. Кадры разных релизов отмечены индивидуально; мобильная правка меняет layout, а не игровую механику.

Общие правила эксплуатации: готовые файлы и закреплённые образы собираются вне VPS; секреты не входят в артефакты. Общесерверный docker prune не применяется. Логи backend ограничены ротацией, изменения log options требуют пересоздания контейнера.

Перед изменением пройти code-map от функции к экрану/API, модулю и данным. После изменения обновить карту и схемы, выполнить связанные сценарии, включая ошибку, повтор и сброс. Источник истины — конкретная версия кода, а не старая диаграмма.

Откат проверен 2026-09-07T00:59:40.423436+00:00: 20260907-verified → 20260907b → 20260907-verified. После каждого переключения подтверждены HTTPS, readiness и SHA. Это проверка конфигурации и артефактов на одном проверенном SHA; обратная миграция БД не выполнялась.

Стек

ReactБрифинг, панели, подсказки и результат миссии.
PhaserCanvas, игровой цикл, сцены, маршруты и объекты.
TypeScript / ViteМодель игры, production-сборка и проверка ресурсов.

Материалы и исходники

Сохранённая история стадий: август 2026; начало разработки не установлено. Публикация демо: 7 сентября 2026.