reikhelm/deepfall/configs/sample_dungeon.md
Parley Hatch 277c158378 feat(deepfall): board-game design + balance-by-bot simulator
DEEPFALL: a tabletop game mashing up 9 loved games (SmashUp, Dragon
Rampage, Blood Rage, Catan, EverQuest, Daggerfall, Eye of the Beholder,
Quarriors, SmallWorld). Core fusion = SmallWorld decline + Blood Rage
glorious death -> three exits (Cash Out / Press On / Worthy End) under a
rising Maw that collapses a reikhelm dungeon floor-by-floor.

- deepfall-core: pure deterministic engine (vendored ChaCha8, 11 tests)
- deepfall-sim: balance-by-bot sweeps -> CSV/JSON
- analysis/analyze.py: stdlib ASCII heatmap (no deps)
- DESIGN.md (rules + post-critique revisions), FINDINGS.md (9-iteration
  balance journey), README.md
- reikhelm-core/examples/sample_dungeon.rs: dumps a real generated board

Method: adversarial design critics -> build -> simulate -> tune. 9
iterations compressed combo spread 77.8 -> 32.5 pts (all 36 combos
viable). Fixed deep-content lockout (value rises with the Maw), the
multi-collapse feel-bad (1 collapse/round cap; feel-bad now 0.00/game),
and dead combos. Open finding: Cash-Out and Worthy-End are substitutes
for a glory-maximizing bot.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:49:33 -06:00

97 lines
3.9 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.

# Sample Dungeon — concrete example board
Generated by the reikhelm dungeon recipe
(`reikhelm-core/src/recipes/dungeon.rs`) and dumped by the throwaway example
`reikhelm-core/examples/sample_dungeon.rs`.
Reproduce exactly:
```sh
cargo run --example sample_dungeon -p reikhelm-core 42 48 32
```
- **Seed:** `42`
- **Canvas:** 48 x 32 cells
- **Config:** `DungeonConfig::default()` (just resized) — BSP `min_leaf 8`,
`max_depth 5`; rooms `5..=11`, margin 1; `extra_edge_ratio 0.30` (loop edges,
not a strict tree); `door_chance 0.5`.
- **Result:** 12 rooms, 14 corridors, deterministic for this seed.
## ASCII map
Legend: `#` wall &nbsp; `.` floor &nbsp; `+` door &nbsp; `o` pillar &nbsp; `~` water &nbsp; `!` lava
```
################################################
#################.....####################...###
#################.....###################.....##
#...........#####.....###########.######.......#
#...........#####.....###########.+....+.......#
#.............................+.....####.......#
#...........#####.....###########.#######.....##
#...........#####.....###########.#######....###
####.##############.#############+#######.######
####.##############.#############.#######.######
####.#########...##.#############.#######+######
####.########.....#.#############.####.......###
####.########.....#.#############.####.......###
####.########.....#.##########....####.......###
##...########.....#.##########...+...........###
###...+...........+.#######.........##....o..###
###.#.#######.....#########.........##.......###
#####.#######.....############...#####.......###
#####.#######.....############...########+######
#####.#######.....#######################.######
#####.########...########################.######
#####.#########+#########################.######
#####.#########.#########################.######
###.....#######.#########################.######
##.......######.########......###########.######
#.........#####+#######........##########+######
#.........+.+.....####..........####...........#
#.........###...................####...........#
##.......####.....####..........####...........#
###.....#####.....#####........#####...........#
#############.....######......######...........#
################################################
```
## Regions
Themes drive DEEPFALL room flavor. Only rooms carry a theme; corridors are
plain passages. `cells` is the room's floor area (a rough "size").
| Region | Kind | Theme | Cells (size) | Top-left (x,y) | W x H |
|-------:|------|-----------|-------------:|----------------|-------|
| 0 | Room | Stone | 55 | (1,3) | 11x5 |
| 1 | Room | Threshold | 35 | (17,1) | 5x7 |
| 2 | Room | Den | 9 | (31,3) | 5x5 |
| 3 | Room | Vault | 37 | (40,1) | 7x7 |
| 4 | Room | Den | 8 | (2,13) | 4x4 |
| 5 | Room | Library | 51 | (1,23) | 9x7 |
| 6 | Room | Crypt | 51 | (13,10) | 5x11 |
| 7 | Room | Den | 30 | (27,13) | 9x6 |
| 8 | Room | Hall | 49 | (38,11) | 7x7 |
| 9 | Room | Crypt | 25 | (13,26) | 5x5 |
| 10 | Room | Den | 58 | (22,24) | 10x7 |
| 11 | Room | Throne | 55 | (36,26) | 11x5 |
Plus 14 corridor regions (ids 1225) linking the rooms.
### Entities (overlay layer)
- **Entrance** @ (19,4) — sits in the `Threshold` room (region 1).
- **Exit** @ (41,28) — sits in the `Throne` room (region 11), the far end.
- **Treasure** x6 and **Monster** x14 scattered, biased by each room's theme
(e.g. `Vault`/`Library` loot-rich, `Den` monster-dense, `Throne` high-risk
high-reward, `Threshold` kept safe).
## Mapping to DEEPFALL
Each reikhelm **room** becomes a DEEPFALL room tile carrying its **theme**
(Vault, Library, Crypt, Den, Hall, Throne, Threshold...), which sets that tile's
loot/danger profile via the recipe's `(treasure_bias, monster_bias)`; corridors
are the connective passages between them. Depth = distance from the `Threshold`
entrance toward the `Throne` exit, so **deeper rooms are higher value** (and
higher risk) — the `Throne` boss seat at the far corner is the natural payoff
tile.