115 lines
5.3 KiB
Markdown
115 lines
5.3 KiB
Markdown
---
|
|
id: TASK-0001
|
|
title: Зафиксировать MVP-архитектуру диаблоида на FishNet
|
|
summary: Описать каноническую архитектуру MVP, включая разделение player/world, authority, сетевые границы, детерминизм и связи между подсистемами.
|
|
priority: Highest
|
|
area: architecture
|
|
owner: unassigned
|
|
created: 2026-03-30
|
|
updated: 2026-03-30
|
|
execution_time: 1d
|
|
depends_on: []
|
|
canonical_docs:
|
|
- docs/tasks/Index.md
|
|
- docs/tasks/_template.md
|
|
related_files:
|
|
- Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs
|
|
- Assets/Scripts/WorldGen/WorldAutotileProfile.cs
|
|
- Assets/Scripts/Player/SimplePlayerInputMover.cs
|
|
---
|
|
|
|
# TASK-0001 - Зафиксировать MVP-архитектуру диаблоида на FishNet
|
|
|
|
## Status
|
|
|
|
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
|
|
|
Допустимые значения статуса:
|
|
|
|
- `BackLog`
|
|
- `ToDo`
|
|
- `InProgress`
|
|
- `Review`
|
|
- `Done`
|
|
|
|
## Why
|
|
|
|
Без общей архитектуры легко получить несовместимые решения между генерацией мира, сетевым кодом, сохранениями, персонажами, инвентарем и AI. Эта задача должна зафиксировать правила MVP до начала активной реализации.
|
|
|
|
## Expected Outcome
|
|
|
|
Появляется документ или набор canonical notes, где определены: модель мира и игрока, границы ответственности сервера и клиента, правила детерминизма по seed, формат идентификаторов чанков и сущностей, а также зависимости между будущими системами.
|
|
|
|
## Current Context
|
|
|
|
В проекте уже есть рабочий слой генерации мира в `Assets/Scripts/WorldGen/*`, но нет зафиксированной архитектуры под сетевую игру, классы персонажей, боевую систему и сохранения.
|
|
|
|
## Source Of Truth
|
|
|
|
- `docs/tasks/Index.md`
|
|
- код в `Assets/Scripts/WorldGen/*`
|
|
- явные решения человека по MVP после создания этой задачи
|
|
|
|
## Read First
|
|
|
|
- `docs/tasks/Index.md`
|
|
- `Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs`
|
|
- `Assets/Scripts/WorldGen/WorldAutotileProfile.cs`
|
|
- `Assets/Scripts/Player/SimplePlayerInputMover.cs`
|
|
|
|
## Scope In
|
|
|
|
- зафиксировать high-level архитектуру MVP
|
|
- описать authority model для FishNet
|
|
- определить канонические идентификаторы игрока, мира, чанка, врага и предмета
|
|
- определить границы между runtime world data, player save data и session state
|
|
|
|
## Scope Out
|
|
|
|
- полноценная реализация подсистем
|
|
- контентная балансировка
|
|
|
|
## Constraints
|
|
|
|
- сохраняйте существующий worldgen как стартовую точку, если человек явно не меняет направление
|
|
- предпочитайте минимальную архитектуру, достаточную для MVP
|
|
- все последующие задачи должны опираться на решения из этой задачи
|
|
|
|
## If You Find Drift
|
|
|
|
- если текущий код worldgen конфликтует с новой сетевой моделью, фиксируйте конфликт отдельно
|
|
- не ломайте существующий editor tooling без отдельного решения
|
|
|
|
## Suggested Approach
|
|
|
|
1. Описать целевой gameplay loop MVP и обязательные подсистемы.
|
|
2. Зафиксировать границы server authority, client prediction и persistence.
|
|
3. Связать решения с конкретными task-файлами и артефактами кода.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- есть каноническое описание архитектуры MVP с понятными границами подсистем
|
|
- определено, где живут данные мира, игрока, сессии и чанка
|
|
- определено, какие части обязаны быть детерминированными по seed
|
|
|
|
## Verification
|
|
|
|
- вычитка документа на непротиворечивость с `Index.md`
|
|
- проверка, что все downstream task-файлы опираются на решения из этой задачи
|
|
|
|
## Risks / Open Questions
|
|
|
|
- без раннего решения по authority возможно придется переписывать боевую систему и AI
|
|
|
|
## Human Decisions Needed
|
|
|
|
- none currently
|
|
|
|
## Decision Log
|
|
|
|
- `2026-03-30` - архитектурную задачу вынесли в отдельный highest-priority task перед реализацией сетевых и боевых систем.
|
|
|
|
## Handoff Notes
|
|
|
|
После фиксации архитектуры обновить `canonical_docs` в downstream task-файлах, если появится новый канонический документ.
|