Назначение и границы
Игровая миссия должна связывать решения игрока, движение, события и итог, сохраняя понятную обратную связь.
Браузерная игра о курьерской миссии на Луне: выбор уровня, брифинг, управление маршрутом, радиособытия и результат смены.
- Управление маршрутом рассчитано на мышь и клавиатуру. Мобильные экраны адаптированы, полноценное touch-управление маршрутом не заявляется.
- Первый доступный commit — baseline готовой стадии, поэтому он не определяет начало разработки.
- Нет внешних интеграций или серверной БД: миссия выполняется в браузере.
Архитектура и схемы
- React отвечает за интерфейс, Phaser — за canvas и игровой цикл.
- Состояния выбора уровня, брифинга, миссии и результата разделены.
- После поражения повтор возвращает в брифинг; новая смена запускается явным действием.
Code-map: от функции к коду
Карта привязана к версии b6b24e121536. Она помогает проследить изменение через интерфейс, API, модуль, данные и проверку.
| Функция | Экран / API | Модуль | Данные / проверка |
|---|---|---|---|
| Запуск | Выбор / брифинг | src/ui/store/gameStore.ts; src/game/createGame.ts | level config; production browser QA |
| Маршрут | Canvas | src/game/MapScene.ts; simulation/routing/confirmRouteDraft.ts | routeDraft / findWeightedRoute; фактический маршрут |
| События | Радиопанель | simulation/radio/createRadioJournal.ts | formatRadioEvent; игровая история |
| Симуляция | Миссия / результат | simulation/createSimulationEngine.ts; clock/fixedStepClock.ts | состояния курьеров и центров; unit suite |
| Мобильный вид | Preflight / radio | React styles / src/ui | 390px; no-overflow QA |
Как работать с картой
- Перед изменением найти функцию и пройти связи до API, состояния и хранилища.
- Проверить входы, ошибки, повторные события и зависимые сценарии.
- После изменения обновить карту и затронутые схемы вместе с кодом.
- Выполнить связанные проверки и привязать новые материалы к версии исходников.
Сценарии и API
- Выберите уровень и прочитайте брифинг.
- Начните смену, выберите курьера и назначьте маршрут.
- Откройте радиопанель и проследите событие миссии.
- Дождитесь результата, нажмите повтор и запустите новую смену из брифинга.
Проверка опубликованной версии
- Исходный полный набор: 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-ссылки, если есть, отмечены отдельно.
Результаты описывают проверенные сценарии и конкретную версию. Они не являются оценкой коммерческого успеха или качества моделей на независимой выборке.
Измерения
- Сохранено 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 | Брифинг, панели, подсказки и результат миссии. |
|---|---|
| Phaser | Canvas, игровой цикл, сцены, маршруты и объекты. |
| TypeScript / Vite | Модель игры, production-сборка и проверка ресурсов. |
Материалы и исходники
Сохранённая история стадий: август 2026; начало разработки не установлено. Публикация демо: 7 сентября 2026.