--- id: TASK-0003 title: Построить детерминированную voxel-генерацию мира с биомами summary: Развить воксельный worldgen до детерминированной генерации мира по seed с поддержкой биомов и стабильной структуры чанков. priority: Highest area: worldgen owner: unassigned created: 2026-03-30 updated: 2026-03-30 execution_time: 1d6h depends_on: - TASK-0001 canonical_docs: - docs/tasks/Index.md related_files: - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs - Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs --- # TASK-0003 - Построить детерминированную voxel-генерацию мира с биомами ## Status Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там. Допустимые значения статуса: - `BackLog` - `ToDo` - `InProgress` - `Review` - `Done` ## Why Диаблоид с процедурным миром требует воспроизводимого результата по seed. Биомы влияют не только на визуал, но и на правила спавна, лута и будущих данжей. ## Expected Outcome Один и тот же seed всегда строит одинаковый набор воксельных чанков и биомных зон. У мира есть понятный API для запроса biome data и chunk data. ## Current Context В проекте уже есть `VoxelWorldGenerator`, который строит чанки и управляет их lifecycle. Канонический код мира находится в `Assets/Features/VoxelWorld/*`. ## Source Of Truth - `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` - `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` - решения из `TASK-0001` ## Read First - `docs/tasks/items/TASK-0001.md` - `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` - `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` ## Scope In - нормализовать seed-driven worldgen - определить модель биома на уровне чанка и под-областей - выделить стабильные world coordinates и chunk coordinates - подготовить world query API для спавна и данжей ## Scope Out - логика врагов и битовые маски убийств - размещение готовых данж prefab ## Constraints - генерация должна быть одинаковой для всех клиентов и сервера - нельзя строить ключевые правила мира только на клиенте ## If You Find Drift - если существующий worldgen зависит от недетерминированных источников, это нужно исправлять или явно документировать ## Suggested Approach 1. Зафиксировать структуру seed, biome sampling и координатную систему. 2. Вынести deterministic chunk generation API. 3. Подготовить точки интеграции для spawn, saves и dungeon placement. ## Acceptance Criteria - одинаковый seed порождает одинаковые чанки и биомы - есть способ получить biome/chunk data без прямой привязки к визуальному рендеру - downstream systems могут использовать мир как deterministic source of truth ## Verification - прогон нескольких одинаковых seed и сравнение результатов - ручная проверка стабильности при повторной загрузке мира ## Risks / Open Questions - потребуется решить, хранится ли биом целиком как функция seed или частично кэшируется в save ## Human Decisions Needed - none currently ## Decision Log - `2026-03-30` - поддержка биомов зафиксирована как часть ядра worldgen, а не как декоративное расширение. ## Handoff Notes Задачи по спавну, сохранениям и данжам должны ссылаться на deterministic world query API из этой задачи.