Actions
Task #1
open
AA
ЮН
Feature #2: MVP Asteroids — полная реализация
Фаза 1 — Foundation (Core, DI, SaveService, Zenject)
Task #1:
Фаза 1 — Foundation (Core, DI, SaveService, Zenject)
Start date:
06/30/2026
Due date:
% Done:
100%
Estimated time:
Description
Цель¶
Реализовать технический фундамент MVP согласно Фазе 1 из docs/implementation-phases.md, следуя AGENTS.md, docs/architecture-foundation.md и ADR-0002.
Контекст¶
Unity 2D top-down roguelike auto-shooter (Android). Фаза 1 — обязательный prerequisite для Combat slice. Не перескакивать на бой, RunController и UI.
Обязательные ADR и конвенции¶
-
ADR-0002: события —
readonly struct, публикация черезMessageBroker.Default(UniRx). Подписки —CompositeDisposable+IDisposable. Не использовать Zenject Signals. -
Namespace:
Asteroids.Coreдля Core-модуля -
DI: сервисы
AsSingle(); MonoBehaviour через installer (architecture-foundation.md§1) -
Scope: минимальный diff; не трогать unrelated файлы; не трогать
.codebase-memory/,.cursor-plugin/
Definition of Done (чеклист)¶
-
Asteroids.Core.asmdefсоздан; события вAssets/Scripts/Core/Events/какreadonly struct -
ISaveService/SaveServiceсохраняет и загружает JSON вApplication.persistentDataPath(architecture-foundation.md§6) -
ProjectInstallerрегистрируетSaveService,GameBalanceConfig(architecture-foundation.md§1) -
Скелет
BattleSceneInstallerбез compile errors -
Zenject resolves в Play Mode (нет
ZenjectExceptionв Console при старте сцены)
Детали реализации¶
Core / Events¶
- Создать
Asteroids.Core.asmdefс references:UniRx(architecture-foundation.md§7) - События в
Assets/Scripts/Core/Events/— immutable struct'ы по паттерну изarchitecture-foundation.md§2 - Core содержит: события, интерфейсы (
ISaveService, …), модели, enum'ы
Save System¶
-
MetaSaveData+ISaveService/SaveService— JSON вApplication.persistentDataPath/meta_save.json - Заменяет заглушку
SettingsController(полная миграция — в следующих фазах; на Foundation достаточно рабочего сервиса)
Zenject Installers¶
-
ProjectInstaller(ProjectContext):SaveService,GameBalanceConfigчерезFromInstance -
BattleSceneInstaller(SceneContext на BattleScene): скелет без compile errors (полные биндинги RunController и др. — Фаза 3)
Assembly Definitions¶
- Обновить
Scripts.asmdef: добавить ссылкиAsteroids.Core,Zenject,UniRx(architecture-foundation.md§7)
Документация для чтения перед стартом¶
AGENTS.md-
docs/implementation-phases.md— Фаза 1 -
docs/architecture-foundation.md— §1 DI, §2 Event Bus, §6 Save, §7 asmdef docs/adr/0002-messagebroker-vs-zenject-signals.md-
docs/setup-unity.md— при настройке сцен и контекстов в Editor
Не входит в фазу¶
-
RunController, бой, UI,WeaponSystem, враги, пулы (кроме заготовок в installer если нужны для compile) - Zenject Signals
- Post-MVP из GDD
Критерий приёмки¶
Все пункты чеклиста DoD отмечены; Play Mode в BattleScene стартует без ZenjectException; проект компилируется.
Actions