- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
11 KiB
11 KiB
Roadmap
Документ описывает актуальную дорожную карту Danro Jump по состоянию на 2026-06-15.
Статусы:
- ✅ реализовано и уже есть в проекте
- 🟡 частично реализовано или требует проверки на целевом автомате
- ⚪ запланировано
Что уже реализовано
В текущей рабочей версии завершены основные подсистемы: gameplay loop, экономика, призовой flow, сервисное меню, аппаратная интеграция, базовый QR-контур призов, runtime-аудиосистема и базовая защита призовой сессии.
- ✅ QR-призы: для
PrizeRewardKind.QRCodeсоздаётся QR-код со ссылкой Telegram поprizes.phoneNumber, используется шаблонprizes.qrMessageTemplate, QR-блок показывается только на экране QR-приза. - ✅ Сервисное редактирование QR-сообщения: действие
btn.qr_settingsоткрывает ввод шаблона через сервисное меню и поддерживает управление клавиатурой/дискретным джойстиком с одной кнопкой. - ✅ Runtime-аудиосистема: добавлены аудиосервис, настройки, микшер и базовые placeholder-клипы для игровых, UI- и призовых событий.
- ✅ Защита призовой сессии: добавлен runtime-журнал призовых сессий, блокировка повторного старта выдачи в рамках одной игровой сессии, persistent recovery между перезапусками и сводка в сервисной статистике.
- ✅ Стабилизация: свежие EditMode/PlayMode-проверки проходили без игровых ошибок, выполнен Windows64 Development build.
- ✅ Текущее визуальное состояние модальных окон главного меню зафиксировано как правильный baseline. Без отдельного запроса не менять их внешний вид, размеры, цвета, фокусные состояния, текстуры и раскладку.
Ниже перечислены оставшиеся незавершённые задачи по каждому этапу.
Этап 1. Стабилизация основного gameplay loop
- 🟡 🧯 Провести длительные ручные прогоны gameplay loop с реальной скоростью, большим числом платформ и несколькими подряд джетпаками
Этап 2. Развитие контента платформера
- 🟡 ✨ Звуковой слой уже подготовлен; дальше нужно заменить placeholder-клипы на финальные SFX, настроить уровни микшера и добавить VFX-реакции на прыжки, подбор предметов, урон, смерть, бонусы и работу оборудования
- ⚪ 🎨 Расширить набор игровых тем, анимаций и VFX для ощущения готового продукта
Этап 3. Экономика, призы и правила сессии
- 🟡 📲 Базовый контур выдачи призов через QR-коды реализован: генерация QR, экран показа, связь с призовой логикой и редактирование шаблона Telegram-сообщения через сервисное меню работают; широкая кастомизация сценариев и визуала ещё впереди
- 🟡 💾 Статистика и история сессий: сервисная статистика уже показывает сводку по настройкам, стоимости старта и runtime-журналу призовых сессий; полная долговременная история, результаты аппаратной выдачи и спорные ситуации пока не реализованы
- ✅ 🛡️ Защита от повторной выдачи призов: runtime-журнал, блокировка повторного старта одной игровой сессии, persistent recovery после перезапуска и фиксация аварийно оборванной выдачи уже реализованы; следующий шаг здесь — связать это с подтверждением фактической hardware-выдачи
Этап 4. Сервисный режим и настройки персонала
- 🟡 🔐 Startup protection есть, но роли/пароль/ограничение доступа к служебным настройкам ещё не выделены как отдельный сервисный контур
- ✅ 🪟 Модальные окна главного меню визуально доведены до текущего целевого состояния; дальнейшие изменения здесь делать только точечно и только после отдельного подтверждения
Этап 5. Аппаратная интеграция и эксплуатационная готовность
- 🟡 🔌 COM-система интегрирована с реальным протоколом на уровне транспорта, ролей, входов, ADC, денежного баланса, витрины и подсветки; нужна проверка полного сценария на целевом автомате
- 🟡 🧯 Обработка ошибок связи, таймаутов и reconnect частично реализована, но graceful shutdown фоновых COM-задач и длительные стресс-прогоны ещё нужны
- 🟡 🔗 Игровые события связаны с аппаратным контуром через денежный баланс, ввод, витрину и подсветку; призовая экономика завершена на уровне решения о призе, QR-контур подключён, но hardware-выдача и подтверждение фактической выдачи ещё требуют отдельной интеграции
- ⚪ 🏁 Провести длительные прогоны на целевом устройстве: утечки, перегрев, стабильность COM, восстановление после отключения устройств и поведение после аварийного закрытия
Приоритетный план
Приоритет 1. Надёжность призовой выдачи и эксплуатационная статистика
- ✅ Добавить persistent recovery для призовых сессий: активная/выданная/ошибочная призовая сессия сохраняется между перезапусками, незавершённая выдача после аварийного закрытия автоматически переводится в ошибку recovery, а повторная выдача той же игровой сессии остаётся заблокированной.
- Расширить статистику сервисного экрана: долговременная история игровых сессий, результаты выдачи призов, QR-показы, ошибки, спорные состояния, сбои связи и эксплуатационные счётчики.
- Подключить фактическое подтверждение hardware-выдачи призов: связать решение о призе, состояние автомата, ошибки выдачи и журнал призовой сессии.
- Расширить QR-контур без смены источника контакта: оставить
prizes.phoneNumberединственным контактом владельца, но добавить настройку визуала QR-экрана, ограничений и поведения при ошибках.
Приоритет 2. Feedback-система, тесты и полировка
- Довести аудио до финального состояния: заменить placeholder-клипы, отстроить громкости микшера, добавить пользовательские/сервисные настройки громкости и проверить поведение на целевом автомате.
- Подготовить VFX-слой по аналогии с аудио: единые события для прыжков, подборов, монет, урона, смерти, бонусов, джетпака, врагов, UI-кнопок, выдачи призов, ошибок и QR-сценариев.
- Расширить тестовое покрытие по всем аспектам игры: gameplay, баланс, старт/continue, настройки, сервисные кнопки, модальные окна, scene flow, COM input, призовой flow, QR, защиту от повторной выдачи, game over, джетпак, врагов и аварийные сценарии.
- Полировать визуал, звук и ощущения gameplay, не меняя текущий визуальный baseline модальных окон главного меню без отдельного запроса.
Пониженный приоритет
- Отдельный большой экран диагностики COM пока не делать. На текущем этапе достаточно debug-каналов, служебных действий и точечных модальных окон. Отдельную диагностику стоит выделять позже, если появится реальная эксплуатационная необходимость или требования целевого автомата.
- Провести длительные ручные и аппаратные прогоны на целевом автомате после завершения QR-сценариев и защиты призовой сессии.