49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
|
|
# Tune the difficulty curve
|
||
|
|
|
||
|
|
Request: `$ARGUMENTS`
|
||
|
|
|
||
|
|
The whole slope of the game lives in one place: `projects/<project>/project.txt`. The shape
|
||
|
|
of the curve is code (`engine/progression.cpp`), its coefficients are data. Read
|
||
|
|
`docs/16-descent.md` for what each number means and why it is shaped that way.
|
||
|
|
|
||
|
|
## Measure before changing
|
||
|
|
|
||
|
|
```bash
|
||
|
|
tile2d_editor --tool curve 1 20 # what depth means today, floor by floor
|
||
|
|
tile2d_editor --tool floor <depth> 1 # one floor: budget spent, population, loot
|
||
|
|
tile2d_editor --tool floor <depth> 42 # same depth, another seed — variance matters
|
||
|
|
```
|
||
|
|
|
||
|
|
Change one line of `project.txt`, run the same commands, and compare. A tuning change with
|
||
|
|
no before/after numbers is an opinion.
|
||
|
|
|
||
|
|
## What the numbers are for
|
||
|
|
|
||
|
|
| key | meaning | the trap |
|
||
|
|
|---|---|---|
|
||
|
|
| `danger` | base, linear growth, quadratic tail | pure linear reads as "same, but more"; pure exponential ends the run where the player just started understanding the rules |
|
||
|
|
| `density` | how often spawn points fire, and the cap | above the cap every point always fires, so floors stop differing |
|
||
|
|
| `loot` | drops and how fast tier climbs | tier must lag danger, or the squad is dressed for the rest of the game by floor ten |
|
||
|
|
| `sight` | how fast vision shrinks, and the floor | below the floor it stops being frightening and becomes "can't see where to go" |
|
||
|
|
| `xp` | experience multiplier per floor | must grow slower than danger, or skipping floors becomes the only sane play |
|
||
|
|
| `themes` | where each finish band starts | must ascend; the last band is open-ended on purpose |
|
||
|
|
|
||
|
|
Do **not** add creature HP or damage multipliers to make depth harder. "The same shambler
|
||
|
|
with triple HP" is not scarier, it is longer. Depth changes *who* comes out and how many.
|
||
|
|
|
||
|
|
## Verify
|
||
|
|
|
||
|
|
```bash
|
||
|
|
tile2d_editor --tool validate # set still covers the depths you moved
|
||
|
|
squad_proto --project <name> --descend 8 # the curve survives an actual run
|
||
|
|
```
|
||
|
|
|
||
|
|
Watch for `ЗАМЕЧАНИЕ` in validate: the floor assembled correctly but the room set no longer
|
||
|
|
keeps up with the curve. That means "draw more rooms", not "lower the curve" — unless the
|
||
|
|
curve is what you were asked to change.
|
||
|
|
|
||
|
|
## Report
|
||
|
|
|
||
|
|
The exact lines you changed, and the `curve` table before and after for the depths that
|
||
|
|
matter. Name the floors where behaviour changed most.
|