hayao 0.4.0 → 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.
- package/design/00-process/README.md +49 -0
- package/design/00-process/composition.md +148 -0
- package/design/00-process/core-loop.md +146 -0
- package/design/00-process/intent-to-brief.md +128 -0
- package/design/00-process/pillars.md +139 -0
- package/design/00-process/refine-and-handoff.md +156 -0
- package/design/00-process/the-twist.md +108 -0
- package/design/10-anchors/README.md +99 -0
- package/design/10-anchors/age-of-empires.md +103 -0
- package/design/10-anchors/baba-is-you.md +127 -0
- package/design/10-anchors/balatro.md +132 -0
- package/design/10-anchors/celeste.md +136 -0
- package/design/10-anchors/civilization.md +101 -0
- package/design/10-anchors/dead-cells.md +125 -0
- package/design/10-anchors/factorio.md +100 -0
- package/design/10-anchors/hades.md +127 -0
- package/design/10-anchors/into-the-breach.md +125 -0
- package/design/10-anchors/it-takes-two.md +104 -0
- package/design/10-anchors/loop-hero.md +131 -0
- package/design/10-anchors/nuclear-throne.md +130 -0
- package/design/10-anchors/outer-wilds.md +107 -0
- package/design/10-anchors/overcooked.md +102 -0
- package/design/10-anchors/peggle.md +133 -0
- package/design/10-anchors/reigns.md +99 -0
- package/design/10-anchors/return-of-the-obra-dinn.md +108 -0
- package/design/10-anchors/rimworld.md +101 -0
- package/design/10-anchors/shadow-of-mordor.md +106 -0
- package/design/10-anchors/slay-the-spire.md +127 -0
- package/design/10-anchors/starcraft.md +98 -0
- package/design/10-anchors/stardew-valley.md +103 -0
- package/design/10-anchors/tetris.md +122 -0
- package/design/10-anchors/vampire-survivors.md +122 -0
- package/design/20-genres/README.md +62 -0
- package/design/20-genres/action-adventure.md +126 -0
- package/design/20-genres/auto-battler.md +121 -0
- package/design/20-genres/bullet-hell.md +123 -0
- package/design/20-genres/city-builder.md +124 -0
- package/design/20-genres/coop-chaos.md +124 -0
- package/design/20-genres/deckbuilder.md +122 -0
- package/design/20-genres/exploration.md +131 -0
- package/design/20-genres/farming-sim.md +122 -0
- package/design/20-genres/grid-puzzle.md +126 -0
- package/design/20-genres/horde-survival.md +128 -0
- package/design/20-genres/incremental.md +120 -0
- package/design/20-genres/match3.md +120 -0
- package/design/20-genres/metroidvania.md +132 -0
- package/design/20-genres/narrative-decisions.md +122 -0
- package/design/20-genres/physics-arcade.md +124 -0
- package/design/20-genres/precision-platformer.md +127 -0
- package/design/20-genres/racing.md +126 -0
- package/design/20-genres/rhythm.md +125 -0
- package/design/20-genres/roguelike.md +122 -0
- package/design/20-genres/rts.md +169 -0
- package/design/20-genres/stealth.md +125 -0
- package/design/20-genres/survival-horror.md +124 -0
- package/design/20-genres/tactics.md +123 -0
- package/design/20-genres/tower-defense.md +120 -0
- package/design/30-systems/README.md +69 -0
- package/design/30-systems/accessibility.md +110 -0
- package/design/30-systems/boss-design.md +126 -0
- package/design/30-systems/build-diversity.md +120 -0
- package/design/30-systems/collectibles.md +108 -0
- package/design/30-systems/combat-model.md +113 -0
- package/design/30-systems/coop-and-competition.md +118 -0
- package/design/30-systems/counter-systems.md +115 -0
- package/design/30-systems/crafting.md +115 -0
- package/design/30-systems/difficulty-and-dda.md +114 -0
- package/design/30-systems/economy.md +117 -0
- package/design/30-systems/emergent-systems.md +114 -0
- package/design/30-systems/encounter-design.md +107 -0
- package/design/30-systems/enemy-ai.md +121 -0
- package/design/30-systems/enemy-archetypes.md +117 -0
- package/design/30-systems/faction-asymmetry.md +144 -0
- package/design/30-systems/grace.md +124 -0
- package/design/30-systems/mastery-curve.md +116 -0
- package/design/30-systems/meta-progression.md +114 -0
- package/design/30-systems/onboarding.md +115 -0
- package/design/30-systems/procgen-design.md +118 -0
- package/design/30-systems/progression.md +120 -0
- package/design/30-systems/resource-loops.md +112 -0
- package/design/30-systems/reward-schedules.md +124 -0
- package/design/30-systems/save-and-checkpoint.md +113 -0
- package/design/30-systems/session-structure.md +113 -0
- package/design/30-systems/skill-trees.md +111 -0
- package/design/30-systems/status-effects.md +111 -0
- package/design/30-systems/tech-tree.md +112 -0
- package/design/30-systems/telegraphs.md +106 -0
- package/design/30-systems/unit-rosters.md +123 -0
- package/design/40-worldbuilding/README.md +49 -0
- package/design/40-worldbuilding/aesthetic-direction.md +155 -0
- package/design/40-worldbuilding/faction-identity.md +136 -0
- package/design/40-worldbuilding/naming-and-tone.md +130 -0
- package/design/40-worldbuilding/narrative-delivery.md +129 -0
- package/design/40-worldbuilding/theme-vectors.md +134 -0
- package/design/40-worldbuilding/worldbuilding-scaffold.md +132 -0
- package/design/50-patterns/README.md +54 -0
- package/design/50-patterns/anti-frustration.md +121 -0
- package/design/50-patterns/emergence.md +121 -0
- package/design/50-patterns/feedback-loops.md +121 -0
- package/design/50-patterns/juice-choreography.md +124 -0
- package/design/50-patterns/mastery-and-flow.md +121 -0
- package/design/50-patterns/pacing-and-tension.md +120 -0
- package/design/50-patterns/readability.md +121 -0
- package/design/50-patterns/risk-reward.md +120 -0
- package/design/CONTRIBUTING.md +183 -0
- package/design/INDEX.md +133 -0
- package/design/README.md +86 -0
- package/design/_TEMPLATE.md +69 -0
- package/design/index.json +2720 -0
- package/dist/anim/blend.d.ts +68 -0
- package/dist/anim/clip.d.ts +87 -0
- package/dist/anim/ik.d.ts +40 -0
- package/dist/anim/skeleton.d.ts +64 -0
- package/dist/hayao.global.js +12 -12
- package/dist/index.d.ts +11 -1
- package/dist/index.js +1683 -516
- package/dist/index.js.map +4 -4
- package/dist/index.min.js +12 -12
- package/dist/render/canvas2d-core.d.ts +4 -0
- package/dist/render/commands.d.ts +19 -0
- package/dist/render/lightRun.d.ts +35 -0
- package/dist/render/svgString.d.ts +8 -3
- package/dist/scene/clipPlayer.d.ts +58 -0
- package/dist/scene/ikTarget.d.ts +25 -0
- package/dist/scene/light.d.ts +80 -0
- package/dist/scene/shadow2d.d.ts +25 -0
- package/dist/scene/skeletonDebug.d.ts +28 -0
- package/dist/verify/gates.d.ts +25 -0
- package/docs/API.md +66 -8
- package/docs/CONVENTIONS.md +56 -0
- 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]].
|