Danro-Jump/README.md
Danil Iarosh c1b72854f4 Implement prize QR and service UI polish
Подробные изменения:

- Добавлена система призовых уровней и выдачи призов с QR-контуром Telegram, шаблоном сообщения и генерацией QR без внешних библиотек.

- Доработаны сервисные настройки: действия кнопок, модальные окна, ввод с джойстика/клавиатуры, статистика, настройки призов и маршрутизация QR.

- Переработаны gameplay HUD и overlay-панели на UI Toolkit со спрайтовыми плашками, DEV BUILD-статистикой, экраном продолжения и экраном результата приза.

- Исправлены сценарии смерти, GameOver, продолжения игры, начисления очков за высоту и перехода в главное меню.

- Перенесены UI-шаблоны из Resources в Assets/UI, подключена Addressables-загрузка шаблонов настроек и standalone-стили для MainMenuModals.

- Добавлены EditMode/PlayMode тесты для призов, QR, arcade input, UI-модалок, scene flow, HUD и gameplay-сессии.

- Обновлены сцены, настройки Addressables, service settings database, документация и дорожная карта.

Проверки:

- Targeted EditMode QR/UI/settings: 23/23 passed

- Targeted UI templates/EditMode: 17/17 passed

- MainMenuUxmlTests: 3/3 passed

- Full EditMode: 129/129 passed

- PlayMode: 6/6 passed

- Runtime Addressables template load check: loaded=5

- Unity Console после финального refresh: 0 errors
2026-06-12 16:43:28 +03:00

10 KiB
Raw Blame History

Danro Jump

Danro Jump — Unity-проект вертикального платформера в духе Doodle Jump, развиваемый как коммерчески применимая игровая система с аппаратной интеграцией, денежным балансом, призовой витриной, выдачей QR-призов и сервисным контуром для обслуживающего персонала.

Проект ориентирован не только на аркадный игровой цикл, но и на эксплуатацию на целевом автомате: запуск через защищённый startup-flow, работу с внешними устройствами по COM, настройку экономики без пересборки, диагностику, выдачу призов и сохранение важных эксплуатационных данных.

Целевая концепция

Основные направления продукта:

  • быстрый вертикальный платформер с короткой игровой сессией;
  • рост высоты, набор очков, монет и прогрессирующая сложность;
  • денежный баланс для платного старта и continue;
  • интеграция с внешним оборудованием по COM-порту;
  • выдача малых и больших призов через призовую витрину;
  • выдача призов или бонусов через QR-коды;
  • сервисное меню для персонала с настройками, статистикой и служебными действиями;
  • подготовка к длительной работе на целевом автомате.

Текущий статус

Текущая рабочая версия содержит широкий gameplay-, экономический и infrastructure-контур:

  • Unity 6000.4.9f1;
  • сцены Bootstrap, MainMenu и Game добавлены в Build Settings;
  • старт приложения проходит через Bootstrap и сервисные runtime-системы;
  • настроены Extenject, ProjectContext, scene installers и SceneFlowService;
  • есть главное меню на UI Toolkit с правилами, настройками, фокусом клавиатуры/геймпада и переходом в игру;
  • реализован вертикальный gameplay loop: игрок, камера, прыжки, платформы, смерть, respawn, game over и возврат в меню;
  • есть HUD для счёта, высоты, рекорда, жизней, монет, смертей и состояния сессии;
  • реализованы платформы, оборудование, коллектаблы, враги, weighted-spawn и ScriptableObject-прогрессия сложности;
  • реализован и стабилизирован джетпак с подъёмом, блокировкой контактов, attach/detach, падением и VFX;
  • есть COM-система: serial-транспорт, авторизация, роли устройств, входные биты, ADC, платёжные импульсы, денежный баланс, статусы призовых ячеек и команды открытия;
  • есть кастомное устройство Input System для COM-контроллера;
  • платный старт и continue через денежный баланс со списанием и проверкой достаточности;
  • призовой flow: PrizeFlowService оценивает сессию по таблице призовых уровней и определяет тип награды;
  • экраны continue (ContinueGameOverlayWindow) и результата приза (PrizeResultOverlayWindow);
  • таблица призовых уровней с JSON-сериализацией и CRUD через сервисное меню;
  • сервисное меню с маршрутизацией кнопок: статистика, настройки призов, QR, витрина, телефон, суперприз, поддержка, валюта, тест выдачи;
  • модальные окна: настройки, правила, информационные, текстовый ввод, таблица и добавление призовых уровней;
  • сервисные настройки загружаются через Addressables/fallback, сохраняются в JSON и доступны через UI;
  • есть debug-модуль с каналами логирования, Unity Console/file handlers и development overlay;
  • заведены EditMode и PlayMode-тесты для ключевых подсистем.

Архитектура

Gameplay

  • GameplaySession — управляет состоянием забега: очки, монеты, жизни, смерти, высота, рекорд, continue и призовой flow
  • PlatformSpawner / PlatformContentSpawner — спавн платформ и контента по весовым профилям
  • GameplayDifficultyProgression — ScriptableObject-прогрессия сложности по этапам
  • JumpPlayerController — управление игроком, прыжки, смерть, respawn
  • VerticalCameraFollow — вертикальное слежение за игроком

Экономика и призы

  • PrizeFlowService / IPrizeFlowService — оценка завершённой сессии и определение типа награды
  • PrizeLevelTable — таблица призовых уровней с привязкой к порогам очков (JSON)
  • PrizeRewardKind — типы наград: None, Small, Big, QRCode, Hopper, PrizeStand
  • PrizeResultOverlayWindow — полноэкранный результат выдачи приза
  • ContinueGameOverlayWindow — экран предложения продолжить игру за баланс

Сервисное меню

  • SettingsModalWindow — динамическое построение UI настроек из ServiceSettingsDatabase
  • ServiceSettingsActionRouter — маршрутизация кнопок сервисного меню в действия
  • PrizeLevelsModalWindow / PrizeLevelAddModalWindow — управление таблицей призовых уровней
  • ServiceTextInputModalWindow — текстовый ввод для телефонов и строковых настроек
  • ServiceInfoModalWindow — отображение результатов сервисных действий
  • ModalStackController — управление стеком модальных окон

Аппаратура

  • ComSystem — управление COM-устройствами: авторизация, кредиты, ввод, подсветка, призовая витрина
  • ComLightingSystem — аппаратная подсветка: board effects, hat blink, prize showcase
  • ComControllerInputBridge — кастомное устройство Input System для COM-контроллера
  • ReflectionSerialComTransport / ReflectionComPortProvider — транспортный слой через System.IO.Ports

Инфраструктура

  • BootstrapEntryPoint / StartupProtectionService — защищённый startup-flow
  • SceneFlowService — централизованная загрузка сцен
  • ServiceSettingsService — чтение, применение и сохранение сервисных настроек
  • DebugLogService — каналы логирования, Unity Console и файловый handler

Технологическая база

  • Unity 6;
  • Universal Render Pipeline для 2D;
  • Input System;
  • UI Toolkit;
  • Test Framework;
  • Extenject;
  • UniTask;
  • Addressables;
  • DOTween;
  • NuGet for Unity;
  • локальная документация и проектные гайды в GUIDES.

Структура репозитория

  • Assets/Scripts/Runtime/ — runtime-код, разбитый по подсистемам: Gameplay, Hardware/Com, Prizes, Settings, UI, Bootstrap, SceneFlow, Debugging;
  • Assets/Scripts/Editor/ — редакторские расширения;
  • Assets/Tests/ — EditMode и PlayMode тесты;
  • Assets/Scenes/ — сцены Bootstrap, MainMenu, Game;
  • Packages/ — зависимости проекта и пакетная конфигурация Unity;
  • ProjectSettings/ — настройки Unity-проекта;
  • GUIDES/ — проектные гайды по архитектуре, пакетам, workflow и инфраструктуре;
  • ROADMAP.md — актуальная дорожная карта проекта;
  • .codex/ — локальные настройки агентной работы и RAG/MCP-инфраструктуры.

Legacy reference

В Assets/Temp/Legacy сохранён архив старых материалов, которые используются как reference для миграции идей, API и сценариев. Этот код не следует подключать к runtime целиком.

Наиболее ценные направления для аккуратного переиспользования:

  • аппаратный слой и COM-протокол;
  • призовая витрина;
  • QR-выдача;
  • сервисные настройки;
  • статистика и эксплуатационные UI-сценарии.

Перенос должен идти через новые интерфейсы, сервисы и UI-представления проекта, а не через прямой импорт старых managers/controllers.