112 lines
5.0 KiB
Markdown
112 lines
5.0 KiB
Markdown
---
|
||
id: TASK-0019
|
||
title: Добавить генерацию данжей-предфабов поверх биомов мира
|
||
summary: Реализовать BackLog-задачу на детерминированное размещение dungeon prefab в voxel-мире: одинаковая позиция по seed, встраивание через stamp/carve и сохранение результата.
|
||
priority: High
|
||
area: worldgen
|
||
owner: unassigned
|
||
created: 2026-03-30
|
||
updated: 2026-03-30
|
||
execution_time: 1d6h
|
||
depends_on:
|
||
- TASK-0003
|
||
canonical_docs:
|
||
- docs/tasks/Index.md
|
||
related_files:
|
||
- Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs
|
||
- Assets/ChunkTemplate.asset
|
||
---
|
||
|
||
# TASK-0019 - Добавить генерацию данжей-предфабов поверх биомов мира
|
||
|
||
## Status
|
||
|
||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||
|
||
Допустимые значения статуса:
|
||
|
||
- `BackLog`
|
||
- `ToDo`
|
||
- `InProgress`
|
||
- `Review`
|
||
- `Done`
|
||
|
||
## Why
|
||
|
||
Dungeon prefab должны одинаково размещаться по seed и быть частью мира, а не отдельной "декорацией". Для voxel-мира это означает stamp/carve в данных чанков (и, при необходимости, пересборку визуального меша/коллайдеров).
|
||
|
||
## Expected Outcome
|
||
|
||
Система worldgen умеет по seed и biome rules выбрать место для dungeon prefab, встроить его в voxel-мир (stamp/carve в воксельных данных чанков), удалить конфликтующие воксели и воспроизвести тот же результат у всех клиентов.
|
||
|
||
## Current Context
|
||
|
||
В проекте есть `VoxelWorldGenerator` с chunked runtime loop. Dungeon placement должен строиться поверх deterministic world coordinates и biome sampling, но применять изменения на уровне voxel chunk data.
|
||
|
||
## Source Of Truth
|
||
|
||
- `docs/tasks/items/TASK-0003.md`
|
||
- готовые dungeon prefab assets
|
||
- future dungeon placement code
|
||
|
||
## Read First
|
||
|
||
- `docs/tasks/items/TASK-0003.md`
|
||
- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs`
|
||
- `Assets/ChunkTemplate.asset`
|
||
|
||
## Scope In
|
||
|
||
- deterministic placement dungeon prefab по seed и biome rules
|
||
- выбор world-space/voxel-space якоря (anchor) и bounded volume для stamp/carve
|
||
- stamp/carve в voxel chunk data и пересборка меша/коллайдера
|
||
- одинаковое размещение у всех игроков
|
||
|
||
## Scope Out
|
||
|
||
- процедурная сборка самих данжей из модулей
|
||
- сложная логика лута и боссов внутри данжа
|
||
|
||
## Constraints
|
||
|
||
- данж не должен существовать только как отдельный GameObject без интеграции в voxel данные мира
|
||
- размещение должно быть детерминированным и совместимым с chunked worldgen
|
||
|
||
## If You Find Drift
|
||
|
||
- если prefab placement требует недетерминированного ручного runtime-подбора, это drift
|
||
|
||
## Suggested Approach
|
||
|
||
1. Определить правила выбора позиции данжа по biome/world rules.
|
||
2. Определить формат dungeon stamp (например: набор voxel изменений, высотная маска, volume SDF или готовый "voxel brush").
|
||
3. Реализовать применение stamp/carve в voxel chunk data и пересборку визуала.
|
||
4. Подготовить интеграцию с chunk loading и world save.
|
||
|
||
## Acceptance Criteria
|
||
|
||
- один и тот же seed размещает один и тот же dungeon prefab в одном и том же месте
|
||
- данж встраивается в voxel-мир через stamp/carve и изменяет voxel chunk data
|
||
- результат одинаков у всех игроков и повторяем после загрузки мира
|
||
|
||
## Verification
|
||
|
||
- повторная генерация одинакового мира и сверка положения данжа
|
||
- ручная проверка отсутствия "парящих" коллайдеров/дыр после stamp/carve
|
||
|
||
## Risks / Open Questions
|
||
|
||
- нужно решить, как хранить пересечение данжа с несколькими чанками и как кэшировать/сохранять stamp results
|
||
|
||
## Human Decisions Needed
|
||
|
||
- none currently
|
||
|
||
## Decision Log
|
||
|
||
- `2026-03-31` - задача переписана под voxel worldgen: stamp/carve вместо grid/tile carving.
|
||
|
||
## Handoff Notes
|
||
|
||
При переводе в `ToDo` желательно отдельно перечислить доступные dungeon prefab и biome placement rules.
|