--- 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.