18-engine.md границы Tile2D, проекции 2D, формат проекта, второй проект 19-agent.md инструменты --tool, скиллы, терминал в редакторе 20-gdd.md акты, петли, рост отряда, закон масштаба, бюджет 200 часов 21-damage.md семь стихий, статусы, десять реакций, формулы, триггеры 22-loot.md редкости, аффиксы, артефакты, зачарования, материалы 23-endgame.md Бездна, мутации, лидерборды, 262 ачивки Плюс правки 01/02/07/15/16/17 под переехавшие пути и новые правила забега. Дизайнерская часть держится на одном законе: угроза растёт квадратично, сила отряда — линейно с затуханием, разрыв закрывается ЗНАНИЕМ, а не числами. Из него выведены и экономика опыта (41 млн против 44 млн дохода), и то, почему реакции считаются от глубины, а не от урона оружия, и почему в Бездне множитель HP разрешён, а во всём авторском контенте запрещён. .claude/commands: скиллы /tile2d, /room, /floor — правила этого движка, которые нельзя вывести из кода. Главное записано первым: не отчитываться об успехе без прохода --tool validate. Числа в этих документах — вход для инструментов, а не украшение. Расхождение между таблицей и выводом инструмента означает, что неправ документ. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
|