Files
TheDeclineOfWarriors/docs/tasks/items/TASK-0021.md
T

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-0001
docs/tasks/Index.md
Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Assets/Features/Tasks/Editor/TaskBoardWindow.cs

TASK-0021 - Привести проект в порядок (asmdef и базовые тесты)

Status

Статус задачи ведется в docs/tasks/Index.md и является каноническим там.

Допустимые значения статуса:

  • BackLog
  • ToDo
  • InProgress
  • Review
  • Done

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.md
  • Assets/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

  1. Снять карту зависимостей: какие папки и системы действительно связаны.
  2. Ввести asmdef минимальным числом сборок, но с четкими границами Runtime/Editor.
  3. Добавить 3-5 тестов: сборка, создание генератора, базовый deterministic шаг (если есть чистые функции).
  4. Зафиксировать правила добавления новых скриптов в нужные 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.