111 lines
4.6 KiB
Markdown
111 lines
4.6 KiB
Markdown
---
|
|
id: TASK-0019
|
|
title: Добавить генерацию данжей-предфабов поверх биомов мира
|
|
summary: Реализовать BackLog-задачу на детерминированное размещение готовых dungeon prefab в мире так, чтобы они одинаково вставлялись по seed, вписывались в grid и вырезали мировой слой под собой.
|
|
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/WorldGen/InfiniteWorldGenerator.cs
|
|
- Assets/ChunkTemplate.asset
|
|
---
|
|
|
|
# TASK-0019 - Добавить генерацию данжей-предфабов поверх биомов мира
|
|
|
|
## Status
|
|
|
|
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
|
|
|
Допустимые значения статуса:
|
|
|
|
- `BackLog`
|
|
- `ToDo`
|
|
- `InProgress`
|
|
- `Review`
|
|
- `Done`
|
|
|
|
## Why
|
|
|
|
Пользователь явно описал сценарий с готовым prefab-данжем, который должен одинаково размещаться у всех игроков и не рисоваться поверх карты, а встраиваться в grid мира с вырезанием тайлов под собой.
|
|
|
|
## Expected Outcome
|
|
|
|
Система worldgen умеет по seed и biome rules выбрать место для dungeon prefab, встроить его в мир, удалить конфликтующий мировой слой под ним и воспроизвести тот же результат у всех клиентов.
|
|
|
|
## Current Context
|
|
|
|
В проекте уже есть grid/tile-based worldgen. Dungeon placement должен строиться поверх deterministic world coordinates и biome sampling.
|
|
|
|
## 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/WorldGen/InfiniteWorldGenerator.cs`
|
|
- `Assets/ChunkTemplate.asset`
|
|
|
|
## Scope In
|
|
|
|
- deterministic placement dungeon prefab по seed и biome rules
|
|
- привязка prefab к grid/tiles мира
|
|
- вырезание или замещение мировых тайлов под данжем
|
|
- одинаковое размещение у всех игроков
|
|
|
|
## Scope Out
|
|
|
|
- процедурная сборка самих данжей из модулей
|
|
- сложная логика лута и боссов внутри данжа
|
|
|
|
## Constraints
|
|
|
|
- данж не должен просто отрисовываться сверху без интеграции в мир
|
|
- размещение должно быть детерминированным и совместимым с chunked worldgen
|
|
|
|
## If You Find Drift
|
|
|
|
- если prefab placement требует недетерминированного ручного runtime-подбора, это drift
|
|
|
|
## Suggested Approach
|
|
|
|
1. Определить правила выбора позиции данжа по biome/world rules.
|
|
2. Описать grid-aligned placement и carve/replace world tiles под prefab.
|
|
3. Подготовить интеграцию с chunk loading и world save.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- один и тот же seed размещает один и тот же dungeon prefab в одном и том же месте
|
|
- данж встраивается в grid мира и заменяет конфликтующие тайлы под собой
|
|
- результат одинаков у всех игроков и повторяем после загрузки мира
|
|
|
|
## Verification
|
|
|
|
- повторная генерация одинакового мира и сверка положения данжа
|
|
- ручная проверка отсутствия наложения поверх неснятых мировых тайлов
|
|
|
|
## Risks / Open Questions
|
|
|
|
- нужно решить, как хранить пересечение данжа с несколькими чанками и как кэшировать carve results
|
|
|
|
## Human Decisions Needed
|
|
|
|
- none currently
|
|
|
|
## Decision Log
|
|
|
|
- `2026-03-30` - задача добавлена в `BackLog` по явному запросу пользователя и уточнена требованием grid-carving.
|
|
|
|
## Handoff Notes
|
|
|
|
При переводе в `ToDo` желательно отдельно перечислить доступные dungeon prefab и biome placement rules.
|