4.8 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-0026 | Реализовать миникарту и сохранение карты у хоста | Добавить миникарту и хранить ее открытое состояние у хоста так, чтобы карта была общей для всех игроков мира и сохранялась вместе с world-state. | High | ui | unassigned | 2026-03-31 | 2026-03-31 | 2d |
|
|
|
TASK-0026 - Реализовать миникарту и сохранение карты у хоста
Status
Статус задачи ведется в docs/tasks/Index.md и является каноническим там.
Why
Миникарта нужна как gameplay и navigation feature, но ее состояние не должно жить только локально у клиента. Хост должен быть источником истины для открытой карты мира, чтобы все игроки видели согласованное состояние.
Expected Outcome
В игре есть миникарта, а открытые области карты сохраняются в состоянии мира у хоста и корректно восстанавливаются для всех игроков при повторном входе в мир.
Current Context
Воксельный мир уже генерируется чанками, а world persistence выделен в отдельные задачи. Миникарта должна опираться на те же координаты чанков и храниться как часть world-state, а не как чисто локальный UI cache.
Source Of Truth
docs/tasks/items/TASK-0003.mddocs/tasks/items/TASK-0004.md- runtime реализация minimap и world save
Read First
docs/tasks/items/TASK-0003.mddocs/tasks/items/TASK-0004.mdAssets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Scope In
- базовое UI отображение миникарты
- определение, какие области карты считаются открытыми
- host-authoritative хранение открытой карты мира
- восстановление состояния миникарты для всех игроков
Scope Out
- полнофункциональная world map с маркерами, пингами и пользовательскими заметками
- сложная система fog-of-war по каждому игроку отдельно
Constraints
- источник истины по открытой карте у хоста
- состояние карты должно быть частью world-state, а не только локального клиента
- решение должно быть совместимо с chunked voxel world
Suggested Approach
- Определить формат minimap data на уровне чанков/областей.
- Выбрать правило открытия карты: посещение, радиус обзора, загрузка чанка или явный reveal.
- Сохранить это состояние в world save у хоста.
- Подключить синхронизацию minimap state для новых и уже подключенных игроков.
Acceptance Criteria
- миникарта отображает мир в согласованной форме
- открытая карта сохраняется у хоста
- новые игроки и повторно подключившиеся игроки получают актуальное состояние карты
Verification
- ручной тест: открыть часть мира, перезапустить мир и проверить восстановление
- ручной тест: второй игрок подключается и получает ту же карту
Risks / Open Questions
- нужно решить, хранить ли карту как coarse chunk-state, bitmap или другой компактный формат
Human Decisions Needed
- none currently
Decision Log
2026-03-31- задача добавлена как backlog feature с host-authoritative persistence minimap state.
Handoff Notes
Если позже понадобится отдельная личная карта игрока, не ломать эту задачу: вынести per-player overlays поверх общего world minimap state.