4.6 KiB
4.6 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-0006 | Реализовать побитовую систему состояния врагов в чанке | Сохранить состояние врагов чанка через int или расширяемую bitmask, где каждый бит соответствует конкретному deterministic enemy slot. | Highest | persistence | unassigned | 2026-03-30 | 2026-03-30 | 1d |
|
|
|
TASK-0006 - Реализовать побитовую систему состояния врагов в чанке
Status
Статус задачи ведется в docs/tasks/Index.md и является каноническим там.
Допустимые значения статуса:
BackLogToDoInProgressReviewDone
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.mddocs/tasks/items/TASK-0005.md- runtime code сохранений мира после внедрения
Read First
docs/tasks/items/TASK-0004.mddocs/tasks/items/TASK-0005.mdAssets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Scope In
- формат битовой маски для enemy slots
- правила чтения и записи маски в world save
- применение маски при загрузке и регенерации чанка
- расширяемость на случай числа врагов больше емкости одного int
Scope Out
- миграции формата сохранений между версиями
- сложная аналитика по прогрессу зачистки мира
Constraints
- индекс бита должен жестко соответствовать deterministic enemy slot
- нельзя терять совместимость между спавном и сохранением
If You Find Drift
- если реализация спавна не дает стабильного соответствия slot -> bit, нужно остановиться и исправить основу
Suggested Approach
- Определить каноническое значение бита: жив/мертв и правила инициализации.
- Описать сериализацию маски в world save.
- Применить маску при загрузке чанка до фактического 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.