reikhelm/deepfall/README.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

85 lines
5.3 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.

# DEEPFALL
> *Reikhelm, the deep hold, is sinking into the Maw. Delve fast, hold ground, and
> know when to die. The deepest grave is the brightest glory.*
A tabletop game design + a **balance-by-bot** simulator, built as a self-contained
experiment in the `reikhelm` repo (sibling to `combat/`). It mashes up nine games
the designer loves and tries to keep their best parts while filing off their worst.
The dungeon you delve is not invented — it is a real **reikhelm** dungeon
(`reikhelm-core`'s room/theme/graph model), so a physical printing could ship
seeded, reproducible boards straight out of the generator.
---
## The one-paragraph pitch
You are rival **delve-companies** racing into a collapsing megadungeon. Each company
is a **Lineage × Calling** smash-up (your race × your class/faction) that defines a
**bag of dice** you build mid-game. You push your luck rolling that bag to descend,
fight, crack vaults, and seize **rooms** — which score for whoever holds them **when
their floor collapses**. The **Maw** devours the dungeon from the bottom up, so the
richest deep rooms die *first* and the clock is brutal. Every party faces one
decision, over and over: **cash out** (send them "to ground" — they keep their
territory as silent dead and you draft a fresh party), **press on** (greedy, keep the
engine, risk the Maw), or **go for a Worthy End** (dive suicidally deep and let the
Maw take you in a blaze for the single biggest payout in the game). Most glory wins.
## The nine games, and what we took / what we fixed
| Game | What we **kept** | What we **filed off** |
|---|---|---|
| **Smash Up** | Two-half faction mashup; control rooms (bases) that score at a breakpoint | The "take-that" hand hate & swing — conflict here is *positional*, never "discard your stuff" |
| **Small World** | Race×Power combo drafting; **the Decline mechanic** (its single best idea) | Crowded-map turn-order tyranny — the Maw, not opponents, is the pressure |
| **Blood Rage** | Card-drafted strategy per age; **escalating doom (Ragnarök)**; **dying is glorious** | Coin-flip combat reveals — outcomes here are dice you *build* and *mitigate* |
| **Quarriors** | **Dice-bag building**; in-game engine growth; push-your-luck | "Dice gods hate me" whiffs — the Decline safety valve + Faith mitigation soften variance |
| **Dragon Rampage** | Push-your-luck **escape** tension; one escalating shared threat | Player elimination — nobody is ever out; a dead party becomes glory |
| **Catan** | Tile **production** when you hold ground; spatial placement | The robber feel-bad & resource starvation — the Maw is the only "robber," and it's fair to all |
| **EverQuest** | Holy-trinity **party comp** (Steel/Cunning/Faith); faction reputation; loot chase | The grind & downtime — turns are fast, simultaneous-ish, no camping |
| **Daggerfall** | **Custom class** via Lineage×Calling with advantages **and** disadvantages; procedural world; faction web | Sprawl & getting lost — bounded floors, a shared revealed board |
| **Eye of the Beholder** | Grid dungeon of room tiles; party of four; **mechanism puzzles** gate the best loot | Mapping tedium — the board is shared and revealed, not memorized |
The **load-bearing fusion**: *Small World's Decline + Blood Rage's glorious death.*
That one combination kills the runaway leader, abolishes player elimination, and
inverts loss-aversion — three of these games' worst problems, solved at once.
## Layout (mirrors `combat/`)
```
deepfall/
README.md — this file
DESIGN.md — the full rules + the simulation model (the spec the sim implements)
Cargo.toml — self-contained workspace (does not touch the root reikhelm graph)
configs/default.json — the tunable balance table; editing it IS the balance act
deepfall-core/ — pure, deterministic, headless game engine (ChaCha8, no I/O)
deepfall-sim/ — batch harness: runs sweeps → CSV/JSON
analysis/ — Python (pandas/matplotlib) over the exported data
```
## Build & run
```bash
cd deepfall
cargo test # engine determinism + rules tests
cargo run -p deepfall-sim -- --out out # run the balance sweeps → out/*.csv, out/*.json
python analysis/analyze.py out # (optional) plots → out/plots/*.png
```
## What the simulator is for
It is not the game — it is a **truth serum** for the design. Bots play the three
exit strategies (Cash-Out, Press-On, Worthy-End) plus an adaptive Balanced bot,
across all 36 Lineage×Calling combos, thousands of seeded games. We read the data to
answer the only questions that matter for a design like this:
1. **Is there a dominant strategy?** (We want a rock-paper-scissors band, not a king.)
2. **Are any Lineage×Calling combos broken?** (Asymmetry should be *fair*, not solved.)
3. **Does the Maw end the game in a satisfying window?** (~814 rounds.)
4. **Is it a runaway?** (Margin of victory should be tight.)
5. **How often does a party die for *nothing*?** (The feel-bad rate — keep it low.)
6. **Is the Decline *decision* real?** (Do winners vary their cash-out timing, or is
there one provably-correct moment?)
See `DESIGN.md` §"Simulation model" for exactly how the sim abstracts the rules, and
the committed sweep notes for what the data actually said.