[Add] New Tasks (The tasks have not been verified)
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
---
|
||||
id: TASK-0006
|
||||
title: Реализовать побитовую систему состояния врагов в чанке
|
||||
summary: Сохранить состояние врагов чанка через int или расширяемую bitmask, где каждый бит соответствует конкретному deterministic enemy slot.
|
||||
priority: Highest
|
||||
area: persistence
|
||||
owner: unassigned
|
||||
created: 2026-03-30
|
||||
updated: 2026-03-30
|
||||
execution_time: 1d
|
||||
depends_on:
|
||||
- TASK-0004
|
||||
- TASK-0005
|
||||
canonical_docs:
|
||||
- docs/tasks/Index.md
|
||||
related_files:
|
||||
- Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs
|
||||
---
|
||||
|
||||
# TASK-0006 - Реализовать побитовую систему состояния врагов в чанке
|
||||
|
||||
## Status
|
||||
|
||||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||||
|
||||
Допустимые значения статуса:
|
||||
|
||||
- `BackLog`
|
||||
- `ToDo`
|
||||
- `InProgress`
|
||||
- `Review`
|
||||
- `Done`
|
||||
|
||||
## Why
|
||||
|
||||
Пользователь описал конкретную механику хранения enemy state через биты. Это позволяет сохранять большой мир компактно и воспроизводимо.
|
||||
|
||||
## Expected Outcome
|
||||
|
||||
Для каждого чанка можно хранить compact mask, из которой однозначно определяется, какие deterministic slots еще живы, а какие уже убиты и не должны спавниться повторно.
|
||||
|
||||
## Current Context
|
||||
|
||||
Enemy slot model должна прийти из `TASK-0005`, а общая схема world save из `TASK-0004`.
|
||||
|
||||
## Source Of Truth
|
||||
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0005.md`
|
||||
- runtime code сохранений мира после внедрения
|
||||
|
||||
## Read First
|
||||
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0005.md`
|
||||
- `Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs`
|
||||
|
||||
## Scope In
|
||||
|
||||
- формат битовой маски для enemy slots
|
||||
- правила чтения и записи маски в world save
|
||||
- применение маски при загрузке и регенерации чанка
|
||||
- расширяемость на случай числа врагов больше емкости одного int
|
||||
|
||||
## Scope Out
|
||||
|
||||
- миграции формата сохранений между версиями
|
||||
- сложная аналитика по прогрессу зачистки мира
|
||||
|
||||
## Constraints
|
||||
|
||||
- индекс бита должен жестко соответствовать deterministic enemy slot
|
||||
- нельзя терять совместимость между спавном и сохранением
|
||||
|
||||
## If You Find Drift
|
||||
|
||||
- если реализация спавна не дает стабильного соответствия slot -> bit, нужно остановиться и исправить основу
|
||||
|
||||
## Suggested Approach
|
||||
|
||||
1. Определить каноническое значение бита: жив/мертв и правила инициализации.
|
||||
2. Описать сериализацию маски в world save.
|
||||
3. Применить маску при загрузке чанка до фактического spawn instantiate.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- убийство врага меняет корректный бит в состоянии чанка
|
||||
- повторный вход в мир не возрождает уже убитых врагов
|
||||
- система поддерживает сценарий с несколькими врагами на чанк без потери детерминизма
|
||||
|
||||
## Verification
|
||||
|
||||
- ручной тест: убить часть врагов, сохранить мир, перезагрузить и проверить состав чанка
|
||||
- сверка битовой маски с фактически заспавненными слотами
|
||||
|
||||
## Risks / Open Questions
|
||||
|
||||
- нужно определить политику для чанков, где врагов больше, чем можно удобно хранить в одном `int`
|
||||
|
||||
## Human Decisions Needed
|
||||
|
||||
- none currently
|
||||
|
||||
## Decision Log
|
||||
|
||||
- `2026-03-30` - пользовательское требование о bitmask сохранено как отдельный канонический task.
|
||||
|
||||
## Handoff Notes
|
||||
|
||||
Если реализация выберет не один `int`, а массив масок, нужно сохранить семантику user-facing идеи: состояние читается побитово и зависит от slot index.
|
||||
Reference in New Issue
Block a user