Game-1 dashboard fix: reassign 5 objectives off specialist-agent names onto valid team-leads so objectives-report.py regenerates (it aborts on any owner lacking a .project/team-leads/<owner>.md identity): p1-61 game-data->terraformer, p1-57 game-systems->envoy, p2-73/p2-60/p2-74 godot-engine|godot-ui->wireguard. Underground (Game 2, stays OOS): decompose g2-12 umbrella into 8 ordered phase objectives g2-12a..h (data model+save, worldgen, excavation, cross- layer movement+pathfinding, per-layer fog, collapse, layer UI, AI awareness); g2-11 blocked_by tightened to [g2-12a, g2-12c]. Dashboard regenerated: 319 objectives, README.md + objectives.json. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
| id | title | priority | status | scope | category | owner | created | updated_at | blocked_by | follow_ups | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| g2-12b | Underground — worldgen for L1/L2/L3 + cavern terrain (Game 2) — OOS | p3 | oos | game2 | terrain | unassigned | 2026-06-06 | 2026-06-06 |
|
Context
Generates the underground layers authored by VERTICAL_LAYERS.md + UNDERGROUND.md. Underground starts as Solid Rock everywhere (no hollow space), with pre-existing natural caverns scattered through the rock, plus the underground terrain palette (Cavern, Lava Tube, Underground River, Deep Ore Vein, Ancient Ruins, Mushroom Forest, Collapsed Tunnel).
Depends on the layer data model (g2-12a). No excavation here (that's g2-12c) — this seeds the static underground at map-gen time.
Acceptance (Game 2)
- Worldgen populates layers L1/L2/L3 with
Solid Rockdefault tile state. - Natural Raw Caverns generated as connected networks (per
UNDERGROUND.md"Natural Caverns"), some extending beyond surface borders into neutral/enemy territory. - Underground terrain types authored from JSON:
cavern,lava_tube,underground_river,deep_ore_vein,ancient_ruins,mushroom_forest,collapsed_tunnel— each with movement/yield/combat-modifier fields. - Deposit placement extended to underground (Deep Ore Vein production deposits) without altering surface deposit distributions.
- Deterministic: per-layer generation seeded via the existing
SeedDomain/PCG64 pin (WORLDGEN_RNG.md); same seed → byte-identical layers.
Source-of-truth rails
- Rust crate:
mc-mapgen(per-layer generation pass),mc-core(underground terrain registry). - JSON path:
public/resources/terrain/underground/*.json(reserved ing2-12). - mc-core wrapper: reuse
TileStatecavern-state field added ing2-12c; terrain ids via the biome/terrain registry.
Out of scope (for any milestone)
- Game 1 surface-only worldgen output must be unchanged (underground layers only generated when the layer stack is enabled).
- Excavation, claiming, and runtime cavern-state transitions →
g2-12c.
References
public/games/age-of-dwarves/docs/terrain/UNDERGROUND.md(Natural Caverns, Underground Terrain Types)public/games/age-of-dwarves/docs/terrain/WORLDGEN_RNG.md- Parent:
g2-12· Blocked by:g2-12a