5.0 KiB
5.0 KiB
id, title, summary, priority, area, owner, created, updated, execution_time, depends_on, canonical_docs, related_files
| id | title | summary | priority | area | owner | created | updated | execution_time | depends_on | canonical_docs | related_files | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-0021 | Привести проект в порядок (asmdef и базовые тесты) | Разнести код по asmdef (Runtime/Editor/Tests), навести структуру каталогов и добавить минимальный набор автотестов, чтобы развитие воксельного мира и сетевого слоя не превращалось в хаос. | High | architecture | unassigned | 2026-03-31 | 2026-03-31 | 2d |
|
|
|
TASK-0021 - Привести проект в порядок (asmdef и базовые тесты)
Status
Статус задачи ведется в docs/tasks/Index.md и является каноническим там.
Допустимые значения статуса:
BackLogToDoInProgressReviewDone
Why
Сейчас проект развивается сразу в нескольких направлениях (воксельный worldgen, FishNet, AI/NavMesh, спавн/сейвы). Без нормальной структуры сборки и минимальных тестов любые изменения начинают ломать соседние подсистемы, а время на интеграцию растет.
Expected Outcome
- Код разделен на asmdef по доменам и по границе Runtime/Editor.
- Editor-утилиты не тянут Runtime зависимости и наоборот.
- Есть базовые автотесты, которые фиксируют ключевые контракты (например, детерминизм вычислений и формат времени/парсинг задач можно оставить на потом).
Current Context
В репозитории уже появились editor-инструменты (Task Board) и есть воксельный генератор (VoxelWorldGenerator). На текущем этапе важнее обеспечить предсказуемую сборку и быстрый фидбек, чем расширять функционал без контроля.
Source Of Truth
- текущие канонические задачи в
docs/tasks/Index.md - существующие asmdef (если появятся) и фактические зависимости в проекте
Read First
docs/tasks/Index.mdAssets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Scope In
- добавить asmdef для ключевых Runtime доменов: voxel worldgen, networking, gameplay-core, ai
- добавить asmdef для Editor tooling
- добавить test assemblies (EditMode) и минимальные smoke tests
- привести нейминг и папки к стабильной структуре (Runtime/Editor/Tests)
Scope Out
- полный рефактор всех namespaces
- покрытие тестами всей игры
Constraints
- не менять поведение runtime систем без отдельного решения и проверки
- не ломать существующий пайплайн Unity compilation
Suggested Approach
- Снять карту зависимостей: какие папки и системы действительно связаны.
- Ввести asmdef минимальным числом сборок, но с четкими границами Runtime/Editor.
- Добавить 3-5 тестов: сборка, создание генератора, базовый deterministic шаг (если есть чистые функции).
- Зафиксировать правила добавления новых скриптов в нужные assembly.
Acceptance Criteria
- проект компилируется без циклических ссылок между asmdef
- Editor скрипты не попадают в Runtime сборки
- тесты запускаются (EditMode) и дают полезный сигнал
Verification
- Unity compilation без ошибок
- запуск
EditModeтестов
Risks / Open Questions
- возможны скрытые зависимости через
Resources/AssetDatabaseи прямые ссылки на UnityEditor
Human Decisions Needed
- none currently
Decision Log
2026-03-31- задача создана как техническая стабилизация перед расширением worldgen/AI.
Handoff Notes
Легаси Assets/Scripts/WorldGen/* удален. Дальнейшие изменения стоит делать только внутри актуальных feature-папок, не возвращая старую 2D-ветку в общий runtime.