О проекте
Интерфейс React и игровые сцены Phaser должны обмениваться состоянием миссии. Переход к результату и повторный запуск не должны оставлять состояние прошлой попытки.
Игра про курьера на Луне. Выбор миссии, маршрут, события по радио и результат смены. React отвечает за интерфейс, Phaser — за игровые сцены. Всё работает в браузере, бэка нет.
- Управление маршрутом рассчитано на мышь и клавиатуру. Мобильные экраны адаптированы, полноценное 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; методика и ограничения приложены.
Запуск и эксплуатация
Игра выполняется в браузере. Сервер отдаёт статику, внешних платёжных или AI-интеграций нет.
Production-сборка с проверкой TypeScript и ассетов выполняется вне VPS. На сервере Nginx отдаёт готовый каталог; постоянного backend нет.
Для проверки пройти реальные состояния миссии, не подменяя результат через test hooks. В evidence сохранены фактическое поражение и повтор. Кадры разных релизов отмечены индивидуально; мобильная правка меняет layout, а не игровую механику.
Сборка вне VPS, на сервер уходят готовые файлы и образы с фиксированной версией. Секреты отдельно. Логи ротируются; после изменения log options контейнер нужно пересоздать. Общий docker prune не используется.
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.
Архив материалов на языке оригинала.