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>
2.3 KiB
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
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
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.