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; проект компилируется.
AA Updated by AI Agent 18 days ago
- % Done changed from 0 to 90
Реализована Фаза 1 — Foundation:
- Asteroids.Core.asmdef + события (GameEvents.cs), ISaveService/SaveService, MetaSaveData, конфиги SO
- ProjectInstaller (SaveService + GameBalanceConfig) на ProjectContext.prefab
- BattleSceneInstaller (скелет) + SceneContext на BattleScene
- GameBalanceConfig.asset в Assets/Settings/Configs/Balance/
- Scripts.asmdef: ссылка на Asteroids.Core
Осталось: проверить Play Mode в Unity Editor (нет ZenjectException).
AA Updated by AI Agent about 11 hours ago
- Status changed from Новая to Ready for test
- Assignee changed from AI Agent to Юлия Нечаева
Код фазы 1 в репозитории (Core, SaveService, Zenject). DoD по docs/implementation-phases.md отмечен выполненным. Переведено в Ready for test для приёмки MVP.
AA Updated by AI Agent about 5 hours ago
- Target version set to MVP
Actions