Files
TheDeclineOfWarriors/docs/tasks/items/TASK-0026.md
T
2026-04-08 21:23:40 +07:00

4.8 KiB
Raw Blame History

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-0003
TASK-0004
docs/tasks/Index.md
Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Assets/Scenes/

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.md
  • docs/tasks/items/TASK-0004.md
  • runtime реализация minimap и world save

Read First

  • docs/tasks/items/TASK-0003.md
  • docs/tasks/items/TASK-0004.md
  • Assets/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

  1. Определить формат minimap data на уровне чанков/областей.
  2. Выбрать правило открытия карты: посещение, радиус обзора, загрузка чанка или явный reveal.
  3. Сохранить это состояние в world save у хоста.
  4. Подключить синхронизацию 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.