hayao 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/design/00-process/README.md +49 -0
  2. package/design/00-process/composition.md +148 -0
  3. package/design/00-process/core-loop.md +146 -0
  4. package/design/00-process/intent-to-brief.md +128 -0
  5. package/design/00-process/pillars.md +139 -0
  6. package/design/00-process/refine-and-handoff.md +156 -0
  7. package/design/00-process/the-twist.md +108 -0
  8. package/design/10-anchors/README.md +99 -0
  9. package/design/10-anchors/age-of-empires.md +103 -0
  10. package/design/10-anchors/baba-is-you.md +127 -0
  11. package/design/10-anchors/balatro.md +132 -0
  12. package/design/10-anchors/celeste.md +136 -0
  13. package/design/10-anchors/civilization.md +101 -0
  14. package/design/10-anchors/dead-cells.md +125 -0
  15. package/design/10-anchors/factorio.md +100 -0
  16. package/design/10-anchors/hades.md +127 -0
  17. package/design/10-anchors/into-the-breach.md +125 -0
  18. package/design/10-anchors/it-takes-two.md +104 -0
  19. package/design/10-anchors/loop-hero.md +131 -0
  20. package/design/10-anchors/nuclear-throne.md +130 -0
  21. package/design/10-anchors/outer-wilds.md +107 -0
  22. package/design/10-anchors/overcooked.md +102 -0
  23. package/design/10-anchors/peggle.md +133 -0
  24. package/design/10-anchors/reigns.md +99 -0
  25. package/design/10-anchors/return-of-the-obra-dinn.md +108 -0
  26. package/design/10-anchors/rimworld.md +101 -0
  27. package/design/10-anchors/shadow-of-mordor.md +106 -0
  28. package/design/10-anchors/slay-the-spire.md +127 -0
  29. package/design/10-anchors/starcraft.md +98 -0
  30. package/design/10-anchors/stardew-valley.md +103 -0
  31. package/design/10-anchors/tetris.md +122 -0
  32. package/design/10-anchors/vampire-survivors.md +122 -0
  33. package/design/20-genres/README.md +62 -0
  34. package/design/20-genres/action-adventure.md +126 -0
  35. package/design/20-genres/auto-battler.md +121 -0
  36. package/design/20-genres/bullet-hell.md +123 -0
  37. package/design/20-genres/city-builder.md +124 -0
  38. package/design/20-genres/coop-chaos.md +124 -0
  39. package/design/20-genres/deckbuilder.md +122 -0
  40. package/design/20-genres/exploration.md +131 -0
  41. package/design/20-genres/farming-sim.md +122 -0
  42. package/design/20-genres/grid-puzzle.md +126 -0
  43. package/design/20-genres/horde-survival.md +128 -0
  44. package/design/20-genres/incremental.md +120 -0
  45. package/design/20-genres/match3.md +120 -0
  46. package/design/20-genres/metroidvania.md +132 -0
  47. package/design/20-genres/narrative-decisions.md +122 -0
  48. package/design/20-genres/physics-arcade.md +124 -0
  49. package/design/20-genres/precision-platformer.md +127 -0
  50. package/design/20-genres/racing.md +126 -0
  51. package/design/20-genres/rhythm.md +125 -0
  52. package/design/20-genres/roguelike.md +122 -0
  53. package/design/20-genres/rts.md +169 -0
  54. package/design/20-genres/stealth.md +125 -0
  55. package/design/20-genres/survival-horror.md +124 -0
  56. package/design/20-genres/tactics.md +123 -0
  57. package/design/20-genres/tower-defense.md +120 -0
  58. package/design/30-systems/README.md +69 -0
  59. package/design/30-systems/accessibility.md +110 -0
  60. package/design/30-systems/boss-design.md +126 -0
  61. package/design/30-systems/build-diversity.md +120 -0
  62. package/design/30-systems/collectibles.md +108 -0
  63. package/design/30-systems/combat-model.md +113 -0
  64. package/design/30-systems/coop-and-competition.md +118 -0
  65. package/design/30-systems/counter-systems.md +115 -0
  66. package/design/30-systems/crafting.md +115 -0
  67. package/design/30-systems/difficulty-and-dda.md +114 -0
  68. package/design/30-systems/economy.md +117 -0
  69. package/design/30-systems/emergent-systems.md +114 -0
  70. package/design/30-systems/encounter-design.md +107 -0
  71. package/design/30-systems/enemy-ai.md +121 -0
  72. package/design/30-systems/enemy-archetypes.md +117 -0
  73. package/design/30-systems/faction-asymmetry.md +144 -0
  74. package/design/30-systems/grace.md +124 -0
  75. package/design/30-systems/mastery-curve.md +116 -0
  76. package/design/30-systems/meta-progression.md +114 -0
  77. package/design/30-systems/onboarding.md +115 -0
  78. package/design/30-systems/procgen-design.md +118 -0
  79. package/design/30-systems/progression.md +120 -0
  80. package/design/30-systems/resource-loops.md +112 -0
  81. package/design/30-systems/reward-schedules.md +124 -0
  82. package/design/30-systems/save-and-checkpoint.md +113 -0
  83. package/design/30-systems/session-structure.md +113 -0
  84. package/design/30-systems/skill-trees.md +111 -0
  85. package/design/30-systems/status-effects.md +111 -0
  86. package/design/30-systems/tech-tree.md +112 -0
  87. package/design/30-systems/telegraphs.md +106 -0
  88. package/design/30-systems/unit-rosters.md +123 -0
  89. package/design/40-worldbuilding/README.md +49 -0
  90. package/design/40-worldbuilding/aesthetic-direction.md +155 -0
  91. package/design/40-worldbuilding/faction-identity.md +136 -0
  92. package/design/40-worldbuilding/naming-and-tone.md +130 -0
  93. package/design/40-worldbuilding/narrative-delivery.md +129 -0
  94. package/design/40-worldbuilding/theme-vectors.md +134 -0
  95. package/design/40-worldbuilding/worldbuilding-scaffold.md +132 -0
  96. package/design/50-patterns/README.md +54 -0
  97. package/design/50-patterns/anti-frustration.md +121 -0
  98. package/design/50-patterns/emergence.md +121 -0
  99. package/design/50-patterns/feedback-loops.md +121 -0
  100. package/design/50-patterns/juice-choreography.md +124 -0
  101. package/design/50-patterns/mastery-and-flow.md +121 -0
  102. package/design/50-patterns/pacing-and-tension.md +120 -0
  103. package/design/50-patterns/readability.md +121 -0
  104. package/design/50-patterns/risk-reward.md +120 -0
  105. package/design/CONTRIBUTING.md +183 -0
  106. package/design/INDEX.md +133 -0
  107. package/design/README.md +86 -0
  108. package/design/_TEMPLATE.md +69 -0
  109. package/design/index.json +2720 -0
  110. package/package.json +2 -1
@@ -0,0 +1,132 @@
1
+ ---
2
+ id: anchor-balatro
3
+ title: Balatro
4
+ kind: anchor
5
+ tags: [deckbuilder, score-multiplier, joker, synergy, poker, escalation, juice]
6
+ summary: A score-multiplier deckbuilder where poker hands feed a chips×mult engine and stacked jokers make the number explode — the fantasy is watching it go up.
7
+ use-when: Designing a game whose payoff is a runaway score-multiplier engine and the juice of numbers detonating past a threshold.
8
+ composes-with: [genre-deckbuilder, system-build-diversity, pattern-feedback-loops, pattern-juice-choreography]
9
+ anchors: [anchor-balatro]
10
+ verify-with: docs/FUN.md#11-·-roguelike-deckbuilder
11
+ ---
12
+
13
+ # Balatro
14
+
15
+ **What it is.** A roguelike deckbuilder built on poker. Each hand scores
16
+ `chips × mult`; you must beat a rising blind. Between rounds you buy
17
+ **jokers** — passive modifiers that warp the scoring — until a well-built
18
+ engine turns a modest pair into a seven-figure detonation.
19
+
20
+ **Player fantasy / why it's fun.** *Number. Goes. Up.* The pull is **the
21
+ multiplier crossover**: for a while you scrape past blinds, then the right
22
+ jokers click and your score leaps an order of magnitude in one hand. It's the
23
+ deckbuilder distilled to its purest dopamine — synergy discovery plus the
24
+ physical joy of a big number landing.
25
+
26
+ ## Design DNA
27
+
28
+ Take the [[anchor-slay-the-spire]] draft-refine loop and **replace "survive
29
+ combat" with "beat a score threshold."** Now the whole design points at one
30
+ exposed number, and every card and joker is a term in its equation. The
31
+ two-part scoring — **additive chips × multiplicative mult** — is the secret:
32
+ mult scales multiplicatively, so builds don't climb, they *explode*. Fun is
33
+ finding which jokers multiply each other and watching the feedback loop run
34
+ away.
35
+
36
+ The two-axis split is the load-bearing invention, and it's worth dwelling on.
37
+ If score were a single additive number, a good build would beat a bad one by
38
+ *some percentage* — satisfying but flat. By separating *chips* (additive,
39
+ grows the base) from *mult* (multiplicative, grows the scaling), Balatro makes
40
+ the two combine into a *product*, so investments in different axes multiply
41
+ each other's value. A joker that adds mult is worth more the more chips you
42
+ have, and vice versa — every piece raises the ceiling of every other piece.
43
+ That's what turns "number goes up" into "number *detonates*," and it's the
44
+ single most transplantable idea in the game.
45
+
46
+ The engine is legible and the payoff is loud: you can *see* the equation
47
+ resolve, term by term, and the juice choreographs the explosion. Legibility
48
+ isn't a nicety here — it's how the player learns synergy. Watching each joker
49
+ fire in sequence *teaches* you which pieces compound, so the celebration and
50
+ the tutorial are the same animation.
51
+
52
+ ## Load-bearing structures
53
+
54
+ | Structure | Why it works |
55
+ |---|---|
56
+ | **`chips × mult` two-axis scoring** | Additive base × multiplicative scaling means good builds go *superlinear* — the source of the "number explodes" feel. [[pattern-feedback-loops]]. |
57
+ | **Jokers = stacking passive multipliers** | Persistent modifiers that combo *with each other*; the meta-game is finding multiplicative synergies. [[system-build-diversity]] / [[pattern-emergence]]. |
58
+ | **The score threshold as the exposed goal** | One rising number to beat, one growing number you build — the entire decision surface is legible. FUN.md §17's "exposed score," applied to a deckbuilder. |
59
+ | **Visible term-by-term resolution** | The scoring animation *shows* each card and joker firing — the juice IS the feedback, and it teaches synergy. [[pattern-juice-choreography]]. |
60
+ | **Draft + shop between blinds** | Buy jokers / add / delete cards — draft-refine with money as the constraint. [[system-economy]] / [[system-reward-schedules]]. |
61
+ | **Escalating blinds** | A superlinear score target forces the engine to keep growing — the rising tide of a deckbuilder. [[system-difficulty-and-dda]]. |
62
+ | **Rare wild synergies** | A few joker combos break the game open — the discovery of a "broken" build is the peak. [[pattern-risk-reward]]. |
63
+
64
+ ## What to steal
65
+
66
+ - **Point the whole game at one exposed, growing number**, and make every
67
+ piece a term in its equation. Legibility + the number-goes-up hook in one
68
+ move.
69
+ - **Split scoring into additive + multiplicative axes.** Multiplicative
70
+ scaling is what makes builds *explode* instead of climb. This is the
71
+ reusable trick.
72
+ - **Passive modifiers that multiply *each other*.** Synergy between jokers,
73
+ not just with cards, is where the depth and the "broken build" joy live.
74
+ - **Resolve the score visibly, term by term.** The scoring choreography is the
75
+ reward — the juice *is* the feedback loop. See
76
+ [[pattern-juice-choreography]] and `docs/JUICE.md`.
77
+ - **Escalate the threshold superlinearly** so the engine must keep growing
78
+ (and inherit the deckbuilder verify: win-rate window + draft delta).
79
+ - **Reserve a few genuinely broken synergies.** The peak experience of the
80
+ genre is *discovering* a combo that breaks the math open; a handful of rare,
81
+ run-defining joker pairs give players a jackpot to hunt. Balance the
82
+ *median* build to the win-rate window, but let the tail spike.
83
+ [[pattern-risk-reward]].
84
+
85
+ ## What's just theme (drop it)
86
+
87
+ - **Poker / playing cards.** Balatro's genius is that poker is *familiar
88
+ scaffolding*, not the point — any "form a set → score it" base works. The
89
+ `chips×mult` engine is the structure.
90
+ - **The tarot/planet/spectral card taxonomy.** Flavour over a modifier system
91
+ — see [[system-build-diversity]].
92
+ - **The CRT/vaporwave look.** Aesthetic; the number's *legibility* is what
93
+ matters, not the palette.
94
+ - **Casino framing.** Cosmetic dressing on a score-threshold run.
95
+
96
+ ## Composes into
97
+
98
+ - [[genre-deckbuilder]] — a score-engine variant of the draft-refine loop.
99
+ - [[system-build-diversity]] — multiplicative-synergy joker stacking.
100
+ - [[pattern-feedback-loops]] — the runaway multiplier is the exemplar of a
101
+ positive loop.
102
+ - [[pattern-juice-choreography]] — term-by-term score resolution as feedback.
103
+ - [[system-economy]] — the between-round shop constraint.
104
+
105
+ ## Twist seams
106
+
107
+ - **Balatro but the multiplier is spatial** *(mechanic-swap)* — you place
108
+ tiles/jokers on a grid and *adjacency* multiplies; the engine becomes a
109
+ board you arrange. Pairs with [[anchor-loop-hero]].
110
+ - **Balatro but you're building the *blind* for someone else** *(perspective)*
111
+ — asymmetric: one player tunes the score engine, the other tunes the
112
+ threshold. Feeds [[system-coop-and-competition]].
113
+ - **Balatro but every joker also raises the target** *(constraint)* —
114
+ double-edged synergy: the pieces that grow your score also grow what you
115
+ must beat, forcing push-your-luck timing on when to stop building. Sharpens
116
+ [[pattern-risk-reward]].
117
+ - **Balatro but the base isn't cards — it's your day** *(theme)* — the "hand"
118
+ is a to-do list, chips are tasks done, mult is momentum/mood, jokers are
119
+ habits that compound. Same `chips × mult` engine, recolored as a
120
+ life-optimisation toy. Theme that reinforces the mechanic rather than
121
+ decorating it.
122
+
123
+ ## See also
124
+
125
+ - [[genre-deckbuilder]] · [[anchor-slay-the-spire]] ·
126
+ [[pattern-feedback-loops]] · [[pattern-juice-choreography]]
127
+ - `docs/FUN.md#11-·-roguelike-deckbuilder` — win-rate window, draft delta,
128
+ intent honesty.
129
+ - `docs/JUICE.md` — the score-detonation feedback contract (2-senses,
130
+ escalation).
131
+ - `sandboxes/juice-lab/` — spring/pop/particle choreography for the number
132
+ landing.
@@ -0,0 +1,136 @@
1
+ ---
2
+ id: anchor-celeste
3
+ title: Celeste
4
+ kind: anchor
5
+ tags: [platformer, precision, grace, assist-mode, mastery, humane, momentum]
6
+ summary: Precision platformer where brutal difficulty and total forgiveness coexist — grace is a system, assist mode makes the mountain optional not easy.
7
+ use-when: Designing a movement-first game where deaths must feel fair and the difficulty needs a humane floor.
8
+ composes-with: [genre-precision-platformer, system-grace, system-mastery-curve, system-accessibility]
9
+ anchors: [anchor-celeste]
10
+ verify-with: docs/FUN.md#2-·-precision-platformer-celeste-like
11
+ ---
12
+
13
+ # Celeste
14
+
15
+ **What it is.** A hard-as-nails precision platformer built on three verbs —
16
+ **jump, dash, climb** — where every death is instant to retry and clearly your
17
+ fault, and an **assist mode** lets any player tune the physics until the
18
+ mountain is climbable.
19
+
20
+ **Player fantasy / why it's fun.** *I am getting better at this, and the game
21
+ knows it.* The pull is the **micro-mastery loop**: a screen looks impossible,
22
+ you die twenty times, and then your hands learn it and it flows. Death costs
23
+ nothing but the last two seconds, so frustration never compounds.
24
+
25
+ ## Design DNA
26
+
27
+ A platformer is a **trust contract**: inputs must land, and deaths must read
28
+ as yours. Celeste pays the contract in full, then adds a second, radical move
29
+ — it makes the *whole difficulty curve* a slider the player owns. Mastery and
30
+ mercy are not opposites here; the **grace systems that make hard fair** are
31
+ the same ones that make assist mode humane rather than cheap.
32
+
33
+ The core is small on purpose. One screen = one idea. The dash is a single
34
+ recharging resource that turns the whole moveset combinatorial: jump, dash,
35
+ and climb are only three verbs, but *where and when* you spend the dash — off
36
+ a wall, at an apex, into a corner — is a hundred distinct lines. Difficulty
37
+ comes from **arranging one screen's obstacles around one movement idea**, not
38
+ from adding mechanics. The player's growth is physical: the hands learn the
39
+ rhythm the eyes already understood, and the game is careful never to punish a
40
+ read it didn't teach.
41
+
42
+ The deepest structural bet is that **being forgiving and being hard are
43
+ orthogonal.** Coyote time doesn't make Celeste easier; it removes the *unfair*
44
+ deaths so the *fair* ones can be brutal. Assist mode extends the same logic to
45
+ the whole curve — the mountain stays hard-by-default, but its difficulty is a
46
+ dial, not a wall.
47
+
48
+ ## Load-bearing structures
49
+
50
+ | Structure | Why it works |
51
+ |---|---|
52
+ | **Single-screen units** | Each room is one puzzle-of-movement; death rewinds only that screen. Failure is cheap, so difficulty can be brutal. |
53
+ | **Instant, momentum-preserving retry** | No load, no menu, no lost run. The player stays in flow; retrying *is* the practice. See [[system-grace]] / [[system-save-and-checkpoint]]. |
54
+ | **The dash as a recharging combinatorial verb** | One resource (dash, refreshed on ground/crystal) multiplies three verbs into hundreds of lines. Depth from few pieces — [[pattern-emergence]]. |
55
+ | **Grace canon under the hood** | Coyote time, jump buffer, corner correction, variable height. Invisible when working; the reason "unfair" deaths vanish. FUN.md law 5. |
56
+ | **Assist mode as first-class** | Game speed, infinite stamina, invincibility, dash count — all tunable, framed as *your climb, your terms*, never a lesser mode. [[system-accessibility]]. |
57
+ | **Difficulty as respect** | B-sides and berries are optional peaks for the hungry; the main path stays completable. Two audiences, one mountain. [[system-difficulty-and-dda]]. |
58
+ | **Narrative rhymes the mechanic** | The climb is the story; the fall-and-retry is anxiety made playable. Theme *serves* the loop instead of decorating it. |
59
+
60
+ ## What to steal
61
+
62
+ - **The single-screen retry unit.** Cheap death is the license for hard
63
+ content. Bound failure to the smallest sensible chunk and make retry instant
64
+ — the retry *is* the practice, so the loop teaches while it punishes.
65
+ - **One recharging resource that reshapes the moveset.** Dash, hook,
66
+ double-jump — give the player a verb-multiplier they manage in the air. One
67
+ resource shared across three verbs beats six independent abilities: it
68
+ forces a decision every jump.
69
+ - **The full grace canon, tuned in frames, not vibes** — coyote, buffer,
70
+ corner-correct, variable height, apex gravity, lift momentum. This is a
71
+ build primitive, not polish: see [[system-grace]] and
72
+ [[genre-precision-platformer]]. Grace state must persist past the state that
73
+ changed it (a coyote jump fires after you've left the ledge).
74
+ - **Assist mode as a slider, not an easy button.** Expose the physics knobs —
75
+ game speed, stamina, dash count, invincibility — and frame them as *your
76
+ terms*, never a lesser mode. The floor is opt-in, not imposed. See
77
+ [[system-accessibility]].
78
+ - **Separate "forgiving" from "hard."** Design the difficulty and the mercy
79
+ independently: brutal obstacle placement *plus* a full grace canon, not
80
+ softened obstacles. This is the move that lets one game serve both
81
+ audiences.
82
+ - **Derive gap widths from the movement envelope**, never eyeball them (FUN.md
83
+ law 3). Compute `jumpDistance`/`dashJumpDistance` from the actual config and
84
+ place every gap inside it with human slack — frame-perfect spacing is a bug,
85
+ not a challenge.
86
+
87
+ ## What's just theme (drop it)
88
+
89
+ - **The mountain / mental-health allegory.** Powerful, but it's a coat of
90
+ paint over the loop — a heist tower or a data-spire climbs identically.
91
+ - **Pixel art and the specific character.** Aesthetic, not structure.
92
+ - **Strawberries as literal fruit.** The *optional-peak collectible* is
93
+ structural; the fruit is flavour — see [[system-collectibles]].
94
+ - **The specific two-hour narrative arc.** The retry loop is fun in a single
95
+ 30-second screen with zero story.
96
+
97
+ ## Composes into
98
+
99
+ - [[genre-precision-platformer]] — this is its canonical anchor; the
100
+ movement-trust contract lives there.
101
+ - [[system-grace]] — Celeste is the reference implementation of
102
+ grace-as-system.
103
+ - [[system-accessibility]] — assist mode is the exemplar of humane, opt-in
104
+ difficulty.
105
+ - [[system-mastery-curve]] — the "die-till-your-hands-learn-it" micro-loop.
106
+ - [[system-save-and-checkpoint]] — instant retry is a checkpoint-design
107
+ choice.
108
+
109
+ ## Twist seams
110
+
111
+ - **Celeste but the dash is a shared resource with a companion**
112
+ *(mechanic-swap)* — coyote and buffer now mediate a coop hand-off; one
113
+ player's dash refresh gates the other's jump, turning solo mastery into
114
+ interdependence. Feeds [[system-coop-and-competition]].
115
+ - **Celeste but momentum is the only score** *(constraint)* — no deaths, just
116
+ a speed meter that bleeds when you stop or touch a wall; the assist knobs
117
+ become a difficulty *dial for style*, not survival, and the single-screen
118
+ unit becomes a chained flow-run. Pairs with [[pattern-mastery-and-flow]].
119
+ - **Celeste but tonally cozy** *(tonal)* — same grace canon, but the
120
+ "mountain" is a garden you tend upward; failure is a gentle reset, not
121
+ anxiety, and the collectible peaks become seasonal blooms. Bends the
122
+ register without touching the verbs. Pairs with [[genre-farming-sim]].
123
+ - **Celeste but the screen rewrites itself as you climb** *(structure)* — each
124
+ retry reshuffles the obstacle layout within the movement envelope, so
125
+ mastery is of the *system*, not a memorised line. Pulls in
126
+ [[system-procgen-design]] and shifts the fun from execution-of-a-known-line
127
+ to adaptation.
128
+
129
+ ## See also
130
+
131
+ - [[genre-precision-platformer]] · [[system-grace]] · [[system-accessibility]]
132
+ - `examples/updrift/` — the golden platformer reference; grace canon wired
133
+ end-to-end.
134
+ - `docs/FUN.md#2-·-precision-platformer-celeste-like` — the movement-trust
135
+ verify pattern.
136
+ - `docs/JUICE.md` — feel gates for landing, dash, and death choreography.
@@ -0,0 +1,101 @@
1
+ ---
2
+ id: anchor-civilization
3
+ title: Civilization
4
+ kind: anchor
5
+ tags: [4x, turn-based, strategy, snowball, comeback, tech-tree, one-more-turn]
6
+ summary: The 4X "one more turn" engine — many shallow-per-turn systems layered into a deep whole, with victory paths and a snowball you must brake for comebacks.
7
+ use-when: The intent is a layered turn-based strategy game where compounding decisions and multiple win paths drive "just one more turn."
8
+ composes-with: [genre-rts, system-tech-tree, system-economy, pattern-feedback-loops, system-session-structure]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#9-rts-lite
11
+ ---
12
+
13
+ # Civilization
14
+
15
+ **What it is.** A turn-based 4X (eXplore, eXpand, eXploit, eXterminate) where you
16
+ grow a civilisation across millennia. No single system is deep per turn; the depth
17
+ is **layering** — economy, tech, culture, diplomacy, military all tick together,
18
+ and each turn's small choices *compound*. Multiple **victory paths** (conquest,
19
+ science, culture…) mean many strategies win. The famous symptom is "**one more
20
+ turn**": the next decision always dangles.
21
+
22
+ **Player fantasy.** Author of history. You steer a people from a single settler to
23
+ a space-faring empire, and every era you unlock a new *layer* of play. The pull is
24
+ the compounding — a good decision twenty turns ago is still paying off — and the
25
+ horizon always holding one more reachable milestone.
26
+
27
+ ## Design DNA
28
+
29
+ The engine is **layered compounding on a turn clock**. Each system is simple in
30
+ isolation; interacting, they generate deep decisions and long-horizon plans. A
31
+ turn's reward is *always* incremental and *always* sets up the next — the
32
+ "one-more-turn" hook is a deliberate [[pattern-pacing-and-tension]] design: never
33
+ end a turn without dangling an imminent payoff. The central risk is the
34
+ **snowball**: 4X economies runaway ([[pattern-feedback-loops]]), so a leader
35
+ accelerates away and the game dies at turn 100 of 300. Civ's answer is
36
+ **comeback/catch-up brakes** — tech diffusion, war weariness, per-city upkeep — so
37
+ a lead is real but not sealed.
38
+
39
+ ## Load-bearing structures
40
+
41
+ | Structure | Why it works |
42
+ |---|---|
43
+ | **Layered systems** | Economy/tech/culture/military each shallow per turn; interacting, they yield deep plans. Depth from breadth, not one hard system. → [[pattern-emergence]]. |
44
+ | **Multiple victory paths** | Science/culture/domination each win; players pick a lane, and the AI must contest all of them. → [[system-build-diversity]]. |
45
+ | **Tech tree across eras** | Research gates whole new layers of play; each era is a legible power/options spike. → [[system-tech-tree]]. |
46
+ | **"One more turn" hook** | Every turn ends with an imminent payoff dangling — a growth finishing next turn, a wonder two off. → [[pattern-pacing-and-tension]]. |
47
+ | **Snowball with brakes** | Runaway economy (positive loop) is deliberately countered (diffusion, upkeep, war weariness) to keep games contestable. → [[pattern-feedback-loops]]. |
48
+ | **Perfect-information turns** | Turn-based and pure-state; the whole game replays deterministically and clones for AI scoring. (FUN.md law 7). |
49
+
50
+ ## What to steal
51
+
52
+ - **Layering over depth**: many *simple* interacting systems out-produce one
53
+ complex system for emergent decisions — and each is separately verifiable.
54
+ - The **"one more turn" pacing rule**: never let a turn end without an imminent,
55
+ visible payoff. This is the retention engine. → [[pattern-pacing-and-tension]].
56
+ - **Multiple win paths** as replayability *and* as a balance test: the AI must
57
+ contest each lane, so no single strategy dominates. → [[system-build-diversity]].
58
+ - **Snowball brakes**: pair every runaway positive loop with an explicit
59
+ catch-up mechanic, or the game decides itself early. → [[pattern-feedback-loops]].
60
+
61
+ ## What's just theme (drop it)
62
+
63
+ - The **real-world history** — leaders, wonders, and civs are flavour on a
64
+ layered-4X spine; a fantasy, sci-fi, or abstract skin plays identically.
65
+ - **The exact five victory types** — the principle is "≥2 viable lanes," not the
66
+ specific set. → [[world-theme-vectors]].
67
+ - **Hex map / literal units** — one presentation of "regions you develop"; a
68
+ node-graph or card layout carries the same layering.
69
+ - **Scale (millennia, huge maps)** — the loop works at any scale; a single-session
70
+ micro-4X keeps the DNA. → [[system-session-structure]].
71
+
72
+ ## Composes into
73
+
74
+ - [[genre-rts]] — the turn-based strategy neighbour (shared macro/economy DNA;
75
+ Civ trades real-time mass for layered turns).
76
+ - [[system-tech-tree]] — era research as the layer-unlock spine.
77
+ - [[system-economy]] — the compounding faucets/sinks that fund every lane.
78
+ - [[pattern-feedback-loops]] — the snowball and its required comeback brakes.
79
+ - [[pattern-pacing-and-tension]] — "one more turn" as an explicit pacing design.
80
+
81
+ ## Twist seams
82
+
83
+ - **Civ but one session, one sitting** *(structure / constraint)* — a micro-4X
84
+ that resolves in 30 minutes; layering without the epic length. Pairs with
85
+ [[system-session-structure]].
86
+ - **Civ but you're one citizen** *(perspective)* — history from the ground: the
87
+ empire is the *environment*, you a person living through its eras. Pairs with
88
+ [[anchor-stardew-valley]].
89
+ - **Civ but the map is a deck** *(mechanic-swap)* — replace the hex world with a
90
+ drafted card layout of provinces; layering survives the medium swap. Pairs with
91
+ [[genre-deckbuilder]].
92
+ - **Civ but comeback-only** *(constraint)* — always play the underdog; the twist is
93
+ a snowball you fight *against*, inverting the fantasy. Pairs with
94
+ [[pattern-feedback-loops]].
95
+
96
+ ## See also
97
+
98
+ - [`docs/FUN.md#9-rts-lite`](../../docs/FUN.md) — strategy is the balance test; the
99
+ intended line must beat the null line; pure-state turns clone for AI scoring.
100
+ - [[system-tech-tree]] · [[anchor-age-of-empires]] (real-time cousin) ·
101
+ [[pattern-feedback-loops]].
@@ -0,0 +1,125 @@
1
+ ---
2
+ id: anchor-dead-cells
3
+ title: Dead Cells
4
+ kind: anchor
5
+ tags: [metroidvania, roguelite, permanence, run-based, combat, unlock-pool, biome-branch]
6
+ summary: Metroidvania fused with roguelite — runs are impermanent, but permanent unlocks fold discoveries into the pool, so the world persists even when the run doesn't.
7
+ use-when: Designing a run-based action game that still wants a growing, permanent sense of world and mastery across deaths.
8
+ composes-with: [genre-metroidvania, genre-roguelike, system-meta-progression, system-combat-model]
9
+ anchors: [anchor-dead-cells]
10
+ verify-with: docs/FUN.md#3-·-metroidvania
11
+ ---
12
+
13
+ # Dead Cells
14
+
15
+ **What it is.** A fast, weighty 2D action game where each run threads a
16
+ randomised sequence of biomes toward a boss — you die and lose the run, but
17
+ the *permanent* layer (unlocked weapons, blueprints, shortcuts, mutations)
18
+ grows every time.
19
+
20
+ **Player fantasy / why it's fun.** *The run is temporary; my mastery and my
21
+ arsenal are forever.* The pull is **permanence over impermanence**: roguelites
22
+ reset you, Dead Cells lets you *keep the map of possibility*. Combat is the
23
+ tight loop; the expanding unlock pool is the reason a loss still feels like a
24
+ step forward.
25
+
26
+ ## Design DNA
27
+
28
+ Take the **metroidvania's locked-door promise** and the **roguelite's fresh
29
+ run** and reconcile them: the *layout* resets, but *access* accretes.
30
+ Permanent ability-gates (the metroidvania spine) unlock new biome branches; a
31
+ **blueprint pool** folds every rare drop you carry to the end into all future
32
+ runs. So the world map is roguelike (never the same twice) while the *world of
33
+ options* is metroidvania (only ever grows).
34
+
35
+ The reconciliation is the whole insight: these two genres seem opposed — one
36
+ is about *permanence and mastery of a fixed space*, the other about
37
+ *impermanence and fresh variance* — and Dead Cells resolves the tension by
38
+ splitting *what resets* from *what accretes*. Geometry is disposable;
39
+ capability is forever. A losing run still expands the pool of what *can* drop,
40
+ so the sense of loss is real but never total. That single split is more
41
+ portable than any specific mechanic in the game.
42
+
43
+ Combat is the second engine: fluid, roll-cancellable, weapon-defined,
44
+ punishing but readable. It's what makes the moment-to-moment worth the
45
+ disposable runs — a great feel is the price of admission for a structure this
46
+ loss-heavy.
47
+
48
+ ## Load-bearing structures
49
+
50
+ | Structure | Why it works |
51
+ |---|---|
52
+ | **Impermanent run, permanent pool** | Layout resets each run; the *set of things that can appear* only grows. A loss still advances the account. [[system-meta-progression]]. |
53
+ | **Permanent ability-gates unlock branches** | Metroidvania traversal powers (vine, teleport) are meta-unlocks that open new biome *routes* — the roguelite map has a metroidvania skeleton. [[genre-metroidvania]]. |
54
+ | **Blueprint economy** | Rare recipes drop mid-run but only *bank* if you survive the exit — carry-it-out risk gates the pool's growth. [[pattern-risk-reward]]. |
55
+ | **Roll-cancellable weighty combat** | Every attack commits, but the roll's i-frames let skilled play cancel — the skill ceiling is timing, not spam. [[system-combat-model]] + [[system-grace]]. |
56
+ | **Branching biome routes with tradeoffs** | Choose the harder path for better loot / a timed-door bonus — spatial [[pattern-risk-reward]] baked into the map. |
57
+ | **Mutations = per-run build** | Run-scoped modifiers layered on permanent gear give each descent an identity. [[system-build-diversity]]. |
58
+ | **Scaling-stat commitment (colours)** | Investing in one damage stat scales your matching gear — soft build-locking that makes drafts matter. |
59
+
60
+ ## What to steal
61
+
62
+ - **Separate what resets from what accretes.** The layout can be fully
63
+ roguelike while the *pool of possibilities* is strictly monotonic. This is
64
+ the whole trick — a loss must grow the account.
65
+ - **Meta-unlock traversal powers that open new routes**, not just stat boosts
66
+ — the metroidvania gate as a roguelite reward.
67
+ - **Carry-it-to-the-exit banking.** Make pool-growth resources survive only if
68
+ you do — risk that gates permanence.
69
+ - **Roll-cancel combat:** committed attacks + a graceful escape verb. Weight
70
+ and readability without stiffness. Wire via [[system-grace]].
71
+ - **Branching routes with explicit risk/reward** (harder biome = better loot,
72
+ timed doors that reward speed). Spatial risk/reward baked into the map means
73
+ the choice happens *before* the fight, not just during it.
74
+ - **Soft build-locking via a scaling stat.** Let investing in one damage
75
+ colour scale the matching gear, so drafts commit the player to an identity
76
+ without hard class walls — a lighter [[system-build-diversity]] lever than
77
+ fixed classes.
78
+
79
+ ## What's just theme (drop it)
80
+
81
+ - **The prisoner-island / headless-body fiction.** Minimal and cosmetic; the
82
+ loop needs no story.
83
+ - **The specific biomes.** *Branch-with-tradeoff* is structural; "Toxic Sewers
84
+ vs Promenade" is flavour.
85
+ - **Cells-as-currency naming.** A meta-currency by any name; see
86
+ [[system-economy]].
87
+ - **The exact weapon list.** Weapon *archetypes* (fast/heavy/ranged/trap) are
88
+ structural; the specific gear is content — [[system-build-diversity]].
89
+
90
+ ## Composes into
91
+
92
+ - [[genre-metroidvania]] — supplies the gate-and-branch spine.
93
+ - [[genre-roguelike]] — supplies the fresh-run layout.
94
+ - [[system-meta-progression]] — the accreting blueprint pool is the exemplar
95
+ of "loss still advances."
96
+ - [[system-combat-model]] — roll-cancel weighty combat.
97
+ - [[system-build-diversity]] — mutations + stat-scaling commitment.
98
+
99
+ ## Twist seams
100
+
101
+ - **Dead Cells but the *world* is permanent and only *you* reset**
102
+ *(structure)* — invert it: the map persists metroidvania-style, and
103
+ roguelite variance lives in your loadout. Now it's Metroid with disposable
104
+ builds.
105
+ - **Dead Cells but banking is social** *(mechanic-swap)* — blueprints you
106
+ carry out drop into a *shared* pool other runs (or players) inherit;
107
+ permanence becomes communal. Feeds [[system-coop-and-competition]].
108
+ - **Dead Cells but pacifist** *(constraint / tonal)* — the roll-cancel verb
109
+ becomes evasion-only; biomes are navigated, not cleared; the pool grows with
110
+ *routes discovered*, not weapons. Bends combat out entirely and pulls toward
111
+ [[genre-exploration]].
112
+ - **Dead Cells but the biomes are a deck you draft the run's route from**
113
+ *(mechanic-swap)* — instead of walking a randomised map, you play
114
+ biome-cards to *assemble* the descent; the accreting pool becomes a growing
115
+ card collection. Pulls in [[genre-deckbuilder]] over the traversal.
116
+
117
+ ## See also
118
+
119
+ - [[genre-metroidvania]] · [[genre-roguelike]] · [[system-meta-progression]] ·
120
+ [[system-combat-model]]
121
+ - `docs/FUN.md#3-·-metroidvania` — negative gate proofs (ungated maneuver must
122
+ fail).
123
+ - `examples/kintsugi/` — the metroidvania reference: gate-and-branch world
124
+ graph.
125
+ - `sandboxes/procgen-lab/` — seeded biome-branch generation.
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: anchor-factorio
3
+ title: Factorio
4
+ kind: anchor
5
+ tags: [automation, logistics, factory, throughput, optimization, scaling, engineering]
6
+ summary: Automation/logistics sim where the factory itself is the toy — you build the machine that builds, and the fun is untangling throughput bottlenecks that scale forever.
7
+ use-when: The intent is a systems/optimization game about building processes rather than acting them out; the player designs, the machine executes.
8
+ composes-with: [genre-incremental, system-resource-loops, system-crafting, system-tech-tree, system-emergent-systems]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#14-incrementalidle
11
+ ---
12
+
13
+ # Factorio
14
+
15
+ **What it is.** A game about building the machine that plays the game. You
16
+ hand-craft the first few items, then **automate** their production, then automate
17
+ the automation — until you're not moving resources, you're *designing the system
18
+ that moves them*. The factory is the toy; the fun is diagnosing and fixing
19
+ **bottlenecks** in a process you built.
20
+
21
+ **Player fantasy.** The engineer's high: a mess of belts becomes a legible,
22
+ humming machine because *you* untangled it. Every problem is one you created by
23
+ succeeding — demand outgrew supply — and every fix is a small act of design you
24
+ get to admire running on its own.
25
+
26
+ ## Design DNA
27
+
28
+ The core verb isn't *do*, it's **automate** — replace your own labour with a
29
+ standing process, then find the constraint the new scale exposed. Factorio is an
30
+ **incremental** at heart ([[genre-incremental]]) but you build the production
31
+ curve by hand instead of buying it. The loop is self-fueling: solving one
32
+ bottleneck raises throughput until a *downstream* stage becomes the new
33
+ bottleneck. The factory is a second-order machine — you don't place outcomes, you
34
+ place rules, and the outcomes **emerge** ([[pattern-emergence]]).
35
+
36
+ ## Load-bearing structures
37
+
38
+ | Structure | Why it works |
39
+ |---|---|
40
+ | **Automate-your-own-labour** | The verb is building a process, not performing it; mastery is designing systems, not reflexes. |
41
+ | **Throughput bottlenecks** | Every solved constraint reveals the next one downstream — an endless, self-generated problem queue. → [[system-resource-loops]]. |
42
+ | **Deep crafting chains** | Ore→plate→gear→belt→machine; each tier consumes the last, so scaling one forces scaling all. → [[system-crafting]]. |
43
+ | **Ratios & balancing** | The optimisation meat: N miners feed M smelters feed K assemblers. Legible math with infinite depth. |
44
+ | **Tech tree funded by production** | Research consumes your output, so teching *is* a sink that pressures throughput. → [[system-tech-tree]]. |
45
+ | **Spatial logistics** | Belts/pipes make routing a physical, visible puzzle — the factory's shape *is* its performance. |
46
+ | **Emergent complexity from few parts** | A handful of primitives (belt, inserter, assembler) compose into unbounded designs. → [[pattern-emergence]]. |
47
+
48
+ ## What to steal
49
+
50
+ - The **automate-then-optimise loop**: give the player a verb, then let them
51
+ *replace themselves* at it. The game becomes about designing, not grinding.
52
+ - **Self-generated bottlenecks**: never hand the player a task list; let success
53
+ create the next problem. The best difficulty curve is one the player builds.
54
+ - **Legible ratios**: expose the math (this feeds that at rate R) so optimisation
55
+ is *knowable*, not guesswork. Mastery = reading the machine.
56
+ - **Deep chains as pacing**: each crafting tier is a natural session/era boundary,
57
+ the way [[genre-incremental]] uses eras — no unlock deserts (FUN.md §14).
58
+
59
+ ## What's just theme (drop it)
60
+
61
+ - The **alien-planet/pollution fiction** — flavour. The loop is medium-agnostic:
62
+ a kitchen, a bank, a bloodstream, a bureaucracy all work.
63
+ - **Combat / biters** — a pressure valve bolted on; many great automation games
64
+ ship without it. Cut it until the factory is fun alone.
65
+ - **3D/real-time-continuous** — belts can tick discretely. The sim is pure state
66
+ over throughput; the presentation is [[pattern-juice-choreography]] on top.
67
+ - **Literal belts** — spatial routing is one expression of "connect producers to
68
+ consumers." Graph/abstract layouts carry the same puzzle.
69
+
70
+ ## Composes into
71
+
72
+ - [[genre-incremental]] — the parent loop (production curve, no deserts), except
73
+ the player *builds* the curve.
74
+ - [[system-resource-loops]] — the gather→convert→spend chains and their
75
+ bottlenecks are the whole game.
76
+ - [[system-crafting]] — recipe chains with combinatorial depth.
77
+ - [[system-tech-tree]] — research as the throughput sink that keeps you scaling.
78
+ - [[pattern-emergence]] — few primitives, unbounded designs; the second-order toy.
79
+
80
+ ## Twist seams
81
+
82
+ - **Factorio but on a run timer** *(structure)* — roguelite: each run is a fresh
83
+ map and a scoring throughput target; blueprints are your meta-progression.
84
+ Pairs with [[system-meta-progression]].
85
+ - **Factorio but you route grief, not iron** *(theme + tonal)* — an emotional or
86
+ bureaucratic "factory" where the resource is something human; the bend
87
+ recolours every belt. See [[process-the-twist]].
88
+ - **Factorio but one screen, one machine** *(constraint)* — no sprawl; optimise a
89
+ single fixed footprint, puzzle-tight. Pairs with [[genre-grid-puzzle]].
90
+ - **Factorio but two players share one factory** *(perspective)* — coop where the
91
+ bottleneck is *communication* about who owns which subsystem. Pairs with
92
+ [[genre-coop-chaos]].
93
+
94
+ ## See also
95
+
96
+ - [`docs/FUN.md#14-incrementalidle`](../../docs/FUN.md) — payback ratios flat
97
+ across tiers; UI intent is an action; no unlock deserts; balance-sim the arc.
98
+ - [`sandboxes/procgen-lab`](../../sandboxes/procgen-lab) — resource-field
99
+ generation for map variety.
100
+ - [[genre-incremental]] · [[system-resource-loops]] · [[system-crafting]].