Files

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-0003
docs/tasks/Index.md
Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.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/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

  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 не потребовала пересборки формата сохранения.