Files
TheDeclineOfWarriors/docs/tasks/items/TASK-0003.md
T

111 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs
- Assets/Scripts/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/Scripts/WorldGen/*` не является фокусом проекта.
## Source Of Truth
- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs`
- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs`
- решения из `TASK-0001`
## Read First
- `docs/tasks/items/TASK-0001.md`
- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs`
- `Assets/Scripts/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 из этой задачи.