4.1 KiB
4.1 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-0005 | Реализовать детерминированный спавн врагов по чанкам | Построить систему спавна, где состав врагов в чанке строго определяется seed, координатами чанка и правилами биома. | Highest | spawning | unassigned | 2026-03-30 | 2026-03-30 | 1d |
|
|
|
TASK-0005 - Реализовать детерминированный спавн врагов по чанкам
Status
Статус задачи ведется в docs/tasks/Index.md и является каноническим там.
Допустимые значения статуса:
BackLogToDoInProgressReviewDone
Why
Пользователь явно требует, чтобы в одном и том же чанке всегда спавнились одинаковые враги. Это ключевой контракт для save/load и синхронизации между клиентами.
Expected Outcome
Для любого (worldSeed, chunkCoord) сервер всегда может вычислить один и тот же набор spawn slots: тип врага, позицию, уровень и другие deterministic параметры.
Current Context
Мир уже разбит на чанки, но у врагов еще нет deterministic spawn layer, связанного с seed и биомами.
Source Of Truth
docs/tasks/items/TASK-0003.md- будущий spawn runtime code
Read First
docs/tasks/items/TASK-0003.mdAssets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
Scope In
- deterministic enemy roster на чанк
- привязка к seed, biome и chunk coords
- deterministic spawn positions внутри чанка
- генерация стабильного enemy slot index для битовой маски жив/мертв
Scope Out
- AI и боевое поведение врагов
- сохранение kill-state после убийства
Constraints
- состав врагов не должен зависеть от порядка загрузки чанков
- клиент не должен быть каноническим источником расчета спавна
If You Find Drift
- если расчет спавна использует runtime randomness без фиксированного seed, это нарушение задачи
Suggested Approach
- Определить stable enemy slot model внутри чанка.
- Привязать spawn rules к biome и difficulty rules.
- Подготовить API для совместной работы с kill-state и save system.
Acceptance Criteria
- один и тот же чанк всегда получает одинаковый набор врагов
- у каждого врага есть стабильный slot/bit index
- система не ломается при повторной загрузке мира и чанков
Verification
- повторная генерация одинакового чанка и сравнение spawn roster
- ручная проверка нескольких биомов и разных chunk coordinates
Risks / Open Questions
- нужно заранее ограничить максимальное число спавнов на чанк для удобной bitmask модели
Human Decisions Needed
- none currently
Decision Log
2026-03-30- детерминированный спавн выделен в отдельную задачу до kill-state persistence.
Handoff Notes
При реализации закладывать стабильный enemySlotIndex, чтобы TASK-0006 не потребовала пересборки формата сохранения.