[Add] New Tasks (The tasks have not been verified)
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
---
|
||||
id: TASK-0005
|
||||
title: Реализовать детерминированный спавн врагов по чанкам
|
||||
summary: Построить систему спавна, где состав врагов в чанке строго определяется seed, координатами чанка и правилами биома.
|
||||
priority: Highest
|
||||
area: spawning
|
||||
owner: unassigned
|
||||
created: 2026-03-30
|
||||
updated: 2026-03-30
|
||||
execution_time: 1d
|
||||
depends_on:
|
||||
- TASK-0003
|
||||
canonical_docs:
|
||||
- docs/tasks/Index.md
|
||||
related_files:
|
||||
- Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs
|
||||
---
|
||||
|
||||
# TASK-0005 - Реализовать детерминированный спавн врагов по чанкам
|
||||
|
||||
## Status
|
||||
|
||||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||||
|
||||
Допустимые значения статуса:
|
||||
|
||||
- `BackLog`
|
||||
- `ToDo`
|
||||
- `InProgress`
|
||||
- `Review`
|
||||
- `Done`
|
||||
|
||||
## 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.md`
|
||||
- `Assets/Scripts/WorldGen/InfiniteWorldGenerator.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
|
||||
|
||||
1. Определить stable enemy slot model внутри чанка.
|
||||
2. Привязать spawn rules к biome и difficulty rules.
|
||||
3. Подготовить 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` не потребовала пересборки формата сохранения.
|
||||
Reference in New Issue
Block a user