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,107 @@
1
+ ---
2
+ id: anchor-outer-wilds
3
+ title: Outer Wilds
4
+ kind: anchor
5
+ tags: [exploration, knowledge, curiosity, open-world, time-loop, discovery, non-linear]
6
+ summary: Knowledge is the only progression — no upgrades gate the world, only what *you* understand; a curiosity-driven open world you unlock in your own head.
7
+ use-when: The intent is an exploration game where the player's real growth is understanding, and the world is gated by knowledge rather than items or stats.
8
+ composes-with: [genre-exploration, system-progression, system-session-structure, system-onboarding, pattern-readability]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#3-metroidvania
11
+ ---
12
+
13
+ # Outer Wilds
14
+
15
+ **What it is.** An open-world exploration game with **no power progression at all**.
16
+ Your ship and tools never upgrade; the *only* thing that changes across the game is
17
+ **what you know**. The solar system is fully open from minute one — every gate is a
18
+ knowledge gate ("I don't understand how to reach that" → later, "oh, *now* I do").
19
+ A **time loop** resets the world each cycle, so the world is constant and *you* are
20
+ the variable.
21
+
22
+ **Player fantasy.** Pure curiosity, rewarded. The dopamine is the *understanding*
23
+ click — the moment a scrap of lore, a physics quirk, and a place you saw earlier
24
+ snap together into "I know where to go now." You progress by getting *smarter*, and
25
+ nothing can be taken from you but confusion.
26
+
27
+ ## Design DNA
28
+
29
+ The engine is **knowledge-as-progression** over a **static, curiosity-gated world**.
30
+ Three parts. First, **no mechanical gates**: the world is fully reachable; the only
31
+ lock is comprehension ([[genre-exploration]]). Second, **the world teaches
32
+ itself**: environmental storytelling and physical clues let players deduce the next
33
+ step — the design *seeds curiosity* and trusts the player to follow it
34
+ ([[pattern-readability]], [[world-narrative-delivery]]). Third, **a constant world +
35
+ a changing player**: often a loop/reset ([[system-session-structure]]) so the
36
+ *place* never changes and all progression lives in the player's head. The "aha" is
37
+ the reward, and it can never regress.
38
+
39
+ ## Load-bearing structures
40
+
41
+ | Structure | Why it works |
42
+ |---|---|
43
+ | **Knowledge as the only progression** | No upgrades; you advance by *understanding*. Progress can't be lost, and every player earns each insight themselves. → [[system-progression]]. |
44
+ | **Curiosity-gated open world** | Fully open from the start; gates are "I don't get it yet," not locked doors — pull, not permission. → [[genre-exploration]]. |
45
+ | **Self-teaching world** | Clues are environmental and physical; the world *shows* you the next question. → [[pattern-readability]], [[world-narrative-delivery]]. |
46
+ | **Constant world, changing player** | A time loop / reset keeps the place fixed so all change is internal — mastery of *knowledge*, not stats. → [[system-session-structure]]. |
47
+ | **Non-linear discovery** | Threads can be pulled in any order; the player's path *is* their story. → [[pattern-emergence]]. |
48
+ | **The "aha" as the reward** | Understanding-clicks are the payout — the strongest possible intrinsic reward. → [[pattern-mastery-and-flow]]. |
49
+
50
+ ## What to steal
51
+
52
+ - **Gate with knowledge, not items**: let the world be open and lock it only behind
53
+ *comprehension*. The reward becomes the player's own insight, which never
54
+ regresses and can't be grinded. → [[genre-exploration]].
55
+ - **Make the world teach itself**: seed physical, environmental clues so the player
56
+ *deduces* the next step. Trust the player; don't quest-marker it. →
57
+ [[world-narrative-delivery]].
58
+ - **A constant world + changing player** (a loop or reset) so all progression is
59
+ internal — and so exploration is safe to be non-linear. → [[system-session-structure]].
60
+ - **Design for the "aha"**: structure clues so distant facts *converge* into an
61
+ understanding-click. That convergence is the whole reward. → [[pattern-mastery-and-flow]].
62
+
63
+ ## What's just theme (drop it)
64
+
65
+ - The **space/solar-system fiction** — knowledge-gated exploration works in a
66
+ mansion, a city, a dream, a codebase. → [[world-theme-vectors]].
67
+ - The **literal time loop** — one implementation of "constant world, changing
68
+ player." A hub-and-return or persistent-notebook structure achieves the same.
69
+ - **3D flight/physics** — the DNA is comprehension-gating; it fits 2D, top-down,
70
+ or even a pure text/point-and-click world.
71
+ - **The specific lore/mystery** — content. The *transferable* part is the
72
+ clue-convergence architecture, not the particular secret.
73
+
74
+ ## Composes into
75
+
76
+ - [[genre-exploration]] — the parent (discovery/immersive-sim-lite; curiosity and
77
+ knowledge as reward); Outer Wilds is its purest anchor.
78
+ - [[system-progression]] — but progression *in the player's head*, an inversion of
79
+ the usual power curve.
80
+ - [[system-session-structure]] — the loop/reset as the session container.
81
+ - [[system-onboarding]] — the world as its own tutorial; teach-by-curiosity.
82
+ - [[pattern-readability]] — clues must be legible enough to deduce, subtle enough
83
+ to earn.
84
+
85
+ ## Twist seams
86
+
87
+ - **Outer Wilds but deduction is the verb** *(mechanic-swap)* — you record and
88
+ *submit* what you've understood, Obra-Dinn-style; knowledge becomes an explicit
89
+ played move. Pairs with [[anchor-return-of-the-obra-dinn]].
90
+ - **Outer Wilds but coop** *(perspective)* — two explorers pool clues; the "aha"
91
+ becomes a shared deduction and communication is the mechanic. Pairs with
92
+ [[genre-coop-chaos]].
93
+ - **Outer Wilds but on a run timer with stakes** *(structure / constraint)* — a
94
+ tight loop where you must *act* on knowledge before the reset, adding pressure to
95
+ curiosity. Pairs with [[system-session-structure]].
96
+ - **Outer Wilds but the world hides, not resets** *(constraint)* — knowledge
97
+ *decays* if unused; you must consolidate insight, inverting the "can't lose
98
+ progress" rule for tension.
99
+
100
+ ## See also
101
+
102
+ - [`docs/FUN.md#3-metroidvania`](../../docs/FUN.md) — the locked-door promise and
103
+ *negative gate proofs*; the closest verify neighbour — here the "gate" is
104
+ knowledge, so prove the intended clue-path exists and the un-hinted path doesn't
105
+ trivially bypass it.
106
+ - [[genre-exploration]] · [[anchor-return-of-the-obra-dinn]] ·
107
+ [[world-narrative-delivery]].
@@ -0,0 +1,102 @@
1
+ ---
2
+ id: anchor-overcooked
3
+ title: Overcooked
4
+ kind: anchor
5
+ tags: [coop, chaos, party, communication, time-pressure, kitchen, escalation]
6
+ summary: Couch-coop chaos where the design *forces* communication — a shared task under a clock, split across players so no one can solo it, escalating each level.
7
+ use-when: The intent is a local/coop party game whose fun is frantic coordination; you need interdependence enforced by layout, not politeness.
8
+ composes-with: [genre-coop-chaos, system-coop-and-competition, system-encounter-design, system-difficulty-and-dda, pattern-pacing-and-tension]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#8-tower-defense
11
+ ---
12
+
13
+ # Overcooked
14
+
15
+ **What it is.** A coop cooking game whose real subject is **communication under
16
+ pressure**. A recipe ticket demands a chain of steps; a **timer** demands speed;
17
+ and the **kitchen layout** splits the work so no one player can do it alone. The
18
+ result is a controlled panic where players *must* shout, hand off, and plan — and
19
+ every level cranks the layout to make coordination harder.
20
+
21
+ **Player fantasy.** Beautiful chaos with people you like. The joy is the
22
+ table-slamming, cross-talking scramble — and the shared triumph when a frantic
23
+ kitchen suddenly clicks into a rhythm. You didn't beat the level; *you and your
24
+ crew* did.
25
+
26
+ ## Design DNA
27
+
28
+ The core isn't cooking — it's **forced interdependence**. Overcooked engineers
29
+ situations where solo play is impossible, so communication becomes a *mechanic*,
30
+ not a nicety. Two levers do it: **task decomposition** (a dish is a pipeline of
31
+ steps that naturally splits across hands) and **spatial constraint** (counters,
32
+ gaps, moving floors that make one person physically unable to cover the kitchen).
33
+ A **shared clock** ([[pattern-pacing-and-tension]]) turns coordination into
34
+ pressure, and each level **escalates** the layout — a rising difficulty of
35
+ *coordination*, not reflexes. See [[genre-coop-chaos]] for the parent pattern.
36
+
37
+ ## Load-bearing structures
38
+
39
+ | Structure | Why it works |
40
+ |---|---|
41
+ | **Forced interdependence** | The layout makes solo impossible, so players *must* coordinate — communication becomes required play, not optional. → [[system-coop-and-competition]]. |
42
+ | **Task decomposition** | A dish is a pipeline (chop→cook→plate→serve) that splits cleanly across hands — instant, legible division of labour. |
43
+ | **Spatial constraint as difficulty** | Counters, gaps, moving/hazard floors gate movement; the *room* is the antagonist, not enemies. → [[system-encounter-design]]. |
44
+ | **Shared clock** | One timer everyone races creates the pressure that makes coordination fail interestingly. → [[pattern-pacing-and-tension]]. |
45
+ | **Escalating layouts** | Each level ratchets the coordination demand (splitting kitchens, conveyor floors) — a difficulty of *teamwork*. → [[system-difficulty-and-dda]]. |
46
+ | **Legible shared state** | Every player can read every ticket, station, and timer at a glance — coordination needs shared readability. → [[pattern-readability]]. |
47
+ | **Instant, blameless retry** | Fail a level, restart at once; the momentum and the laughter carry over. → [[system-save-and-checkpoint]], FUN.md law 5. |
48
+
49
+ ## What to steal
50
+
51
+ - **Design interdependence, don't request it**: make solo *impossible* via layout
52
+ and task-split, so communication is a mechanic. Politeness is not a design.
53
+ - **Decompose the task into a pipeline** that maps to hands — the clearest way to
54
+ create "you do this, I'll do that" without a manual. → [[system-coop-and-competition]].
55
+ - **The room as antagonist**: escalate difficulty through *space and layout*, not
56
+ enemy stats — a party game's threat is geometry (cf. FUN.md §5 stealth's safe
57
+ pockets, §8 coverage geometry).
58
+ - **A shared clock + blameless retry**: pressure to make coordination fail funnily,
59
+ and instant restart so failure is a laugh, not a punishment.
60
+
61
+ ## What's just theme (drop it)
62
+
63
+ - The **cooking fiction** — the loop is "a decomposable task, split by space, under
64
+ a clock." Firefighting, ship-repair, surgery, moving house all fit. →
65
+ [[world-theme-vectors]].
66
+ - **Specific recipes/stations** — content on the pipeline system; swap freely.
67
+ - **Physical/janky controls** — the humour helps but isn't load-bearing; the
68
+ interdependence is. Precise controls + hard layouts work too.
69
+ - **Local-only** — the DNA is coordination pressure; it survives online with good
70
+ shared-state readability. → [[system-coop-and-competition]].
71
+
72
+ ## Composes into
73
+
74
+ - [[genre-coop-chaos]] — the parent genre (couch-coop/party; communication under
75
+ time pressure); Overcooked is its defining anchor.
76
+ - [[system-coop-and-competition]] — forced interdependence and shared-state hooks.
77
+ - [[system-encounter-design]] — composing kitchen layouts as escalating "fights"
78
+ against space.
79
+ - [[system-difficulty-and-dda]] — difficulty expressed as coordination load.
80
+ - [[pattern-pacing-and-tension]] — the shared clock as the tension engine.
81
+
82
+ ## Twist seams
83
+
84
+ - **Overcooked but roguelite + you build the track ahead** *(mechanic-swap +
85
+ structure)* — Unrailed: the pipeline is laying rail before a moving train; the
86
+ "kitchen" advances. (The worked twist in [[process-the-twist]].)
87
+ - **Overcooked but asymmetric roles** *(perspective)* — each player has different
88
+ verbs/abilities, so interdependence comes from *complementary powers*, not just
89
+ layout. Pairs with [[anchor-it-takes-two]].
90
+ - **Overcooked but silent** *(constraint)* — no voice/text allowed; coordination
91
+ must route through in-game signals only. Forces diegetic communication.
92
+ - **Overcooked but competitive** *(tonal)* — two crews share one sabotageable
93
+ kitchen; coop pressure becomes PvP. Pairs with [[system-coop-and-competition]].
94
+
95
+ ## See also
96
+
97
+ - [`docs/FUN.md#8-tower-defense`](../../docs/FUN.md) — coverage/space as difficulty;
98
+ wave curves that breathe (the escalation shape) — closest verify neighbour for a
99
+ space-and-clock game.
100
+ - [`sandboxes/pathfinding-demo`](../../sandboxes/pathfinding-demo) — grid movement
101
+ the kitchen layout rides on.
102
+ - [[genre-coop-chaos]] · [[anchor-it-takes-two]] · [[system-coop-and-competition]].
@@ -0,0 +1,133 @@
1
+ ---
2
+ id: anchor-peggle
3
+ title: Peggle
4
+ kind: anchor
5
+ tags: [physics-arcade, variable-ratio, juice, reward-schedule, aim, one-input, spectacle]
6
+ summary: Aim, drop a ball, watch physics scatter it through pegs — trivial input wrapped in variable-ratio payoffs and maximal celebration juice.
7
+ use-when: Designing a low-skill-floor game that feels ecstatic through reward scheduling and disproportionate feedback on a single simple action.
8
+ composes-with: [genre-physics-arcade, system-reward-schedules, pattern-juice-choreography, pattern-risk-reward]
9
+ anchors: [anchor-peggle]
10
+ verify-with: docs/FUN.md#19-·-physics-arcade-breakoutpeggle
11
+ ---
12
+
13
+ # Peggle
14
+
15
+ **What it is.** A pachinko-like arcade game: aim a launcher at the top of the
16
+ screen, drop one ball, and watch it ricochet through a field of pegs, lighting
17
+ them up. Clear the orange pegs to win the level. The input is a single angle;
18
+ the payoff is a cascade.
19
+
20
+ **Player fantasy / why it's fun.** *I barely did anything and something
21
+ wonderful happened.* The pull is **maximal juice on minimal input**: you set
22
+ one angle, and the game rewards you with an escalating fireworks show — lucky
23
+ bounces, a "free ball" bucket, and a final slow-mo, orchestral,
24
+ rainbow-explosion victory that's wildly out of proportion to the click that
25
+ caused it.
26
+
27
+ ## Design DNA
28
+
29
+ Take a **trustworthy physics sandbox** and lay a **variable-ratio reward
30
+ schedule** over it, then celebrate every outcome — especially the lucky ones —
31
+ with disproportionate feedback. The skill floor is near zero (aim and drop),
32
+ but the *feel* is ecstatic because the physics manufactures surprise and the
33
+ juice amplifies it. The genius is the **gap between input effort and output
34
+ spectacle**: a single trivial action detonates a chain of delightful
35
+ consequences you didn't fully control but feel credit for.
36
+
37
+ The design does two clever things at once. First, it **outsources complexity
38
+ to physics** — the player supplies one number (the angle), and the peg field
39
+ plus deterministic bounces generate all the richness, so the game is deep
40
+ without the input being hard. Second, it **launders luck into feeling like
41
+ skill**: because you *chose* the shot, a lucky twelve-peg cascade reads as
42
+ *your* triumph, not the RNG's gift. The variable-ratio schedule supplies the
43
+ surprise; the aim supplies the ownership; together they make a near-zero-skill
44
+ action feel earned.
45
+
46
+ The hidden design work is honest physics — swept collision so the ball never
47
+ tunnels, energy conservation so bounces feel real — because the whole payoff
48
+ depends on *trusting* the scatter. A ball that clips through a peg or gains
49
+ speed from a bounce breaks the illusion instantly; the ecstasy is only
50
+ possible on a foundation the player never doubts.
51
+
52
+ ## Load-bearing structures
53
+
54
+ | Structure | Why it works |
55
+ |---|---|
56
+ | **One trivial input, cascading output** | Aim + drop is all the player does; physics + pegs generate the complexity. The effort/reward gap IS the fun. |
57
+ | **Trustworthy swept-collision physics** | Closed-form time-of-impact = no tunneling ever; energy honesty (a bounce never speeds the ball up) makes the scatter feel real, not glitchy. FUN.md truth. [[genre-physics-arcade]]. |
58
+ | **Variable-ratio surprise** | Lucky multi-peg bounces and the free-ball bucket are unpredictable payoffs — the schedule that keeps you dropping "one more ball." [[system-reward-schedules]]. |
59
+ | **Disproportionate celebration** | Slow-mo, zoom, orchestral sting, screen-filling explosion on the last orange peg — feedback far exceeds the input. [[pattern-juice-choreography]]. |
60
+ | **Read the board, place the bet** | Skill lives in *choosing the shot* — angling for clusters, banking off walls — turning luck into a decision. [[pattern-risk-reward]]. |
61
+ | **Aim-search proves winnability** | Pure state → clone-and-fire candidate aims → count clears: winnability AND a difficulty meter for free. FUN.md law 7. |
62
+ | **Escalating per-ball scoring** | Points ramp within a single drop (peg after peg), so even one ball has an arc. [[pattern-feedback-loops]]. |
63
+
64
+ ## What to steal
65
+
66
+ - **Widen the gap between input effort and output spectacle.** One trivial
67
+ action → a cascade of consequence. This is the whole feel; steal it into any
68
+ arcade toy.
69
+ - **Overlay a variable-ratio schedule on physics.** Let lucky bounces and
70
+ bonus buckets manufacture surprise; the unpredictability is the compulsion.
71
+ See [[system-reward-schedules]].
72
+ - **Celebrate disproportionately.** Slow-mo + zoom + audio sting on the win
73
+ moment. Feedback should *exceed* the action — that's the Peggle signature.
74
+ [[pattern-juice-choreography]] / `docs/JUICE.md`.
75
+ - **Make honest physics the foundation.** Swept collision (no tunneling),
76
+ energy conservation — the surprise only delights if the ball is *trusted*.
77
+ Wire via [[genre-physics-arcade]].
78
+ - **Use aim-search bots** to prove every level is clearable within the ball
79
+ budget and to *rate* its difficulty (FUN.md law 7). Pure state means you
80
+ clone the board, fire candidate aims, and count clears — winnability proof
81
+ and a difficulty meter from the same loop.
82
+ - **Give the trivial input a *decision*.** Skill lives in *choosing the shot*
83
+ — banking off a wall, aiming for a cluster, going for the free-ball bucket.
84
+ Layer a real read over the simple action so mastery has somewhere to grow.
85
+ [[pattern-risk-reward]].
86
+
87
+ ## What's just theme (drop it)
88
+
89
+ - **The unicorns / Peggle Masters fiction.** Cosmetic; the loop is theme-free.
90
+ - **The rainbow "Ode to Joy" victory.** The *disproportionate celebration* is
91
+ structural; the specific song/rainbow is a [[pattern-juice-choreography]]
92
+ instance you'd re-skin.
93
+ - **The specific power-ups.** Bomb/multiball/etc. are *reward-schedule
94
+ variants*; the categories matter, the names don't —
95
+ [[system-reward-schedules]].
96
+ - **Peg colours (orange = must-clear).** *A subset of targets defines the win*
97
+ is structural; the colour is readability flavour — [[pattern-readability]].
98
+
99
+ ## Composes into
100
+
101
+ - [[genre-physics-arcade]] — its canonical anchor; trustworthy-flight physics
102
+ lives there.
103
+ - [[system-reward-schedules]] — variable-ratio payoff exemplar.
104
+ - [[pattern-juice-choreography]] — disproportionate-celebration reference.
105
+ - [[pattern-risk-reward]] — reading the board to place a shot.
106
+ - [[pattern-feedback-loops]] — escalating per-ball scoring.
107
+
108
+ ## Twist seams
109
+
110
+ - **Peggle but the pegs are a deck you place before the drop**
111
+ *(mechanic-swap)* — you build the board, then fire; aim becomes
112
+ construction. Pulls in [[genre-deckbuilder]] / [[anchor-loop-hero]]
113
+ planning.
114
+ - **Peggle but two players share one board and alternate drops**
115
+ *(perspective)* — every bounce sets up or spoils the rival's next shot.
116
+ Feeds [[system-coop-and-competition]].
117
+ - **Peggle but one ball for the whole level** *(constraint)* — no retries per
118
+ level; the trivial input becomes a high-stakes single bet, converting
119
+ variable-ratio joy into push-your-luck tension. Sharpens
120
+ [[pattern-risk-reward]].
121
+ - **Peggle but the pegs fight back** *(mechanic-swap)* — pegs move, shield, or
122
+ shoot on a telegraph between your drops; the calm arcade toy gains a
123
+ reactive-threat layer. Pulls in [[system-telegraphs]] and shifts the read
124
+ from static to dynamic.
125
+
126
+ ## See also
127
+
128
+ - [[genre-physics-arcade]] · [[system-reward-schedules]] ·
129
+ [[pattern-juice-choreography]]
130
+ - `docs/FUN.md#19-·-physics-arcade-breakoutpeggle` — swept collision, energy
131
+ invariant, aim-search verify.
132
+ - `sandboxes/physics-lab/` — swept-collision / no-tunnel reference.
133
+ - `sandboxes/juice-lab/` · `docs/JUICE.md` — the celebration choreography.
@@ -0,0 +1,99 @@
1
+ ---
2
+ id: anchor-reigns
3
+ title: Reigns
4
+ kind: anchor
5
+ tags: [narrative, choice, swipe, meters, stewardship, cards, decisions]
6
+ summary: Swipe-choice narrative — binary decisions nudge four meters you must keep between two ditches, so ruling is an act of doomed balance, not victory.
7
+ use-when: The intent is a minimal-input, choice-driven game where the tension is balancing competing meters and every decision is double-edged.
8
+ composes-with: [genre-narrative-decisions, system-reward-schedules, system-difficulty-and-dda, system-collectibles, pattern-risk-reward]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#21-narrative-decisions-reigns-like
11
+ ---
12
+
13
+ # Reigns
14
+
15
+ **What it is.** A narrative game reduced to one gesture: **swipe left or right**. An
16
+ advisor presents a situation on a card; you choose one of two answers; the choice
17
+ nudges **four meters** (church, people, army, treasury). Every meter has *two*
18
+ lethal edges — too low *and* too high both kill you. Ruling is **stewardship**: not
19
+ winning, just staying alive between the ditches one more reign.
20
+
21
+ **Player fantasy.** The impossible throne. Every decision helps one faction and
22
+ hurts another; you can never satisfy everyone, only *balance* them. The pull is the
23
+ grim comedy of doomed juggling — and the itch to see the next situation, because
24
+ the deck is full of tiny stories you've only glimpsed.
25
+
26
+ ## Design DNA
27
+
28
+ The engine is **meters between two ditches, fed by double-edged binary choices**.
29
+ Three parts. First, **two-sided meters**: a resource you must keep in a *band*, not
30
+ maximise — depletion and excess both kill ([[genre-narrative-decisions]]). Second,
31
+ **every choice is a tradeoff**: no move is pure gain; helping one meter costs
32
+ another, so there's no dominant policy ([[pattern-risk-reward]]). Third, **minimal
33
+ input, maximal consequence**: one swipe, but it ripples through four systems — the
34
+ depth is in the *content* (the card deck), not the controls. Judgement must beat
35
+ any fixed policy (FUN.md §21: 19/20 vs always-left's 0/20).
36
+
37
+ ## Load-bearing structures
38
+
39
+ | Structure | Why it works |
40
+ |---|---|
41
+ | **Two-lethal-edge meters** | Keeping a resource in a *band* (not maxed) makes every gain a future risk — the core stewardship tension. → [[genre-narrative-decisions]]. |
42
+ | **Double-edged binary choices** | Every option helps one meter and hurts another; no dominant policy, so judgement matters. → [[pattern-risk-reward]]. |
43
+ | **One-gesture input** | Swipe left/right; the entire skill is *reading and deciding*, not executing. Radical accessibility. → [[system-accessibility]]. |
44
+ | **Card-deck content** | Situations are data cards drawn against state; content *is* the game, and it's cheap to author and lint. → [[system-collectibles]]. |
45
+ | **Conditional/flagged cards** | Cards unlock from prior choices, threading arcs and callbacks through a shuffled deck. → [[system-emergent-systems]]. |
46
+ | **Death as the loop** | You *will* die; each reign is a run, and the deck keeps dealing new stories. → [[system-session-structure]]. |
47
+
48
+ ## What to steal
49
+
50
+ - **Two-sided meters**: a resource you keep *in a band* creates far richer tension
51
+ than one you maximise — every gift is a future liability. → [[genre-narrative-decisions]].
52
+ - **Make every choice double-edged**: if any option is pure upside, delete it
53
+ (FUN.md §21: "no no-op choices"). The tradeoff *is* the game.
54
+ - **Content-as-data**: author situations as linted cards (unique ids, bounded
55
+ effects |Δ|≤20, every needs-flag settable) so editorial judgement becomes CI.
56
+ - **One gesture, deep consequence**: minimal input keeps the design about
57
+ *decisions*, and makes it trivially accessible. → [[system-accessibility]].
58
+
59
+ ## What's just theme (drop it)
60
+
61
+ - The **medieval-monarch fiction** — swipe-meters-stewardship fits a ship captain,
62
+ a startup CEO, a dungeon master, a parent. → [[world-theme-vectors]].
63
+ - **The four specific factions** — the count and identities are tuning; 2–5
64
+ two-sided meters all work. → [[system-difficulty-and-dda]].
65
+ - **The literal swipe** — left/right is one binary-choice UI; buttons or dialogue
66
+ options carry the same DNA.
67
+ - **Death-by-succession framing** — the "reign" wrapper is flavour on "a run ends,
68
+ a new one deals fresh cards." → [[system-session-structure]].
69
+
70
+ ## Composes into
71
+
72
+ - [[genre-narrative-decisions]] — the parent genre; Reigns is its defining anchor
73
+ (impossible stewardship; meters between two ditches).
74
+ - [[pattern-risk-reward]] — every card is a double-edged, teeth-bearing choice.
75
+ - [[system-difficulty-and-dda]] — meter volatility and card weighting are the
76
+ difficulty knobs.
77
+ - [[system-collectibles]] — the card deck as content the player uncovers.
78
+ - [[system-accessibility]] — one-gesture input as a floor-level design.
79
+
80
+ ## Twist seams
81
+
82
+ - **Reigns but the meters are a factory** *(mechanic-swap)* — swipes route
83
+ throughput between competing subsystems; stewardship becomes logistics. Pairs
84
+ with [[anchor-factorio]].
85
+ - **Reigns but two rulers, one kingdom** *(perspective)* — coop where each player
86
+ owns two of the four meters and swipes can undermine the partner. Pairs with
87
+ [[system-coop-and-competition]].
88
+ - **Reigns but the deck is a colony sim** *(structure)* — a RimWorld director deals
89
+ the cards from live colony state; systemic drama in swipe form. Pairs with
90
+ [[anchor-rimworld]].
91
+ - **Reigns but cozy** *(tonal)* — the "ditches" are gentle (a garden, a friendship)
92
+ and death is retirement; balance without dread. Pairs with [[anchor-stardew-valley]].
93
+
94
+ ## See also
95
+
96
+ - [`docs/FUN.md#21-narrative-decisions-reigns-like`](../../docs/FUN.md) — content
97
+ lint (unique ids, bounded effects, no no-op choices); balanced-policy bot
98
+ survives; always-left loses 0/20; every doom fires its own ending.
99
+ - [[genre-narrative-decisions]] · [[pattern-risk-reward]] · [[system-collectibles]].
@@ -0,0 +1,108 @@
1
+ ---
2
+ id: anchor-return-of-the-obra-dinn
3
+ title: Return of the Obra Dinn
4
+ kind: anchor
5
+ tags: [deduction, mystery, logic, reasoning, verification, non-linear, knowledge]
6
+ summary: Deduction as the core loop — the game gives you evidence and *trusts your reasoning*, confirming answers only when you've triangulated a solvable set.
7
+ use-when: The intent is a logic/mystery game where the played verb is *inferring* facts from evidence, and the design must be provably solvable without guessing.
8
+ composes-with: [genre-exploration, system-onboarding, system-progression, pattern-readability, pattern-mastery-and-flow]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#1-grid-puzzle-sokoban
11
+ ---
12
+
13
+ # Return of the Obra Dinn
14
+
15
+ **What it is.** A mystery where the core verb is **deduction**. You walk frozen
16
+ death-scenes aboard a lost ship and must name every fate: *who* this is, *how* they
17
+ died, *by whose hand*. The game hands you evidence — faces, voices, clothing,
18
+ positions — and **trusts you to reason**. It never tells you an answer; it only
19
+ *confirms* a set of three correct fates at once, so you must **triangulate** until
20
+ your logic is certain.
21
+
22
+ **Player fantasy.** You are a detective the game *respects*. It refuses to
23
+ hand-hold — no hint arrows, no "you're close." The high is the deduction click:
24
+ cross-referencing a dozen scattered facts until a name that was a guess becomes a
25
+ *certainty you proved*. You didn't find the answer; you **reasoned** it.
26
+
27
+ ## Design DNA
28
+
29
+ The engine is **deduction as the played move, over a provably solvable evidence
30
+ set**. Three parts. First, the verb is *inference*, not action: the player
31
+ assembles facts into conclusions ([[genre-exploration]]'s cousin — exploration of
32
+ an *idea-space*). Second, **the game trusts your reasoning**: it withholds
33
+ confirmation, so the reward is *your own certainty*, not a checkmark
34
+ ([[pattern-mastery-and-flow]]). Third — critically — **the mystery must be
35
+ solvable by logic alone**: every fact is derivable from evidence without guessing,
36
+ which is a *solver proof* exactly like a puzzle's (FUN.md §1, [[genre-grid-puzzle]]).
37
+ The "confirm in batches of 3" mechanic is anti-brute-force: it rewards *deduction*
38
+ over *permutation*.
39
+
40
+ ## Load-bearing structures
41
+
42
+ | Structure | Why it works |
43
+ |---|---|
44
+ | **Deduction as the verb** | The player *reasons*, doesn't act; the whole loop is turning evidence into conclusions. → [[genre-exploration]]. |
45
+ | **Provably-solvable evidence** | Every fact is derivable by logic — no guess required. This is a solver proof and is *non-negotiable*. → [[genre-grid-puzzle]], FUN.md §1. |
46
+ | **Withheld confirmation** | The game won't say "right" until you've earned certainty; the reward is your *own* conviction. → [[pattern-mastery-and-flow]]. |
47
+ | **Batch-of-3 gating** | Confirming fates in threes defeats brute-force permutation and forces genuine triangulation. → [[pattern-risk-reward]]. |
48
+ | **Non-linear evidence** | Facts can be gathered and cross-referenced in any order; the player builds their own inference chain. → [[pattern-emergence]]. |
49
+ | **Difficulty by inference depth** | Early fates need one clue, late ones need many chained deductions — a curve of *reasoning*, not reflex. → [[system-progression]]. |
50
+ | **The notebook as UI** | A ledger of hypotheses the player fills in — the deduction made *manipulable*. → [[pattern-readability]]. |
51
+
52
+ ## What to steal
53
+
54
+ - **Make deduction the verb**: give the player evidence and let them *conclude*.
55
+ The played move is reasoning, and it's a genre almost nobody occupies. →
56
+ [[genre-exploration]].
57
+ - **Prove it's solvable by logic** before you ship a single mystery: every answer
58
+ must be derivable from evidence, no guessing. This is a solver proof — treat it
59
+ exactly like [[genre-grid-puzzle]] winnability (FUN.md §1).
60
+ - **Withhold confirmation** so the reward is the player's *own certainty*. Then
61
+ gate confirmation (batches, cost) to defeat brute force. → [[pattern-risk-reward]].
62
+ - **A notebook/ledger UI** that makes the player's reasoning *manipulable* — the
63
+ interface for the invisible verb. → [[pattern-readability]].
64
+
65
+ ## What's just theme (drop it)
66
+
67
+ - The **1800s-shipwreck fiction** — deduction-over-evidence fits a crime scene, a
68
+ code audit, a genealogy, a haunted house, a spreadsheet of lies. →
69
+ [[world-theme-vectors]].
70
+ - The **1-bit dithered art** — a striking aesthetic pick ([[world-aesthetic-direction]]),
71
+ not part of the loop. Any legible style works.
72
+ - **The frozen-time death scenes** — one delivery mechanism for evidence;
73
+ documents, interviews, or logs deliver the same facts.
74
+ - **The specific 60 fates** — content. The transferable part is the *solvable
75
+ evidence graph* and the batch-confirm anti-guess mechanic.
76
+
77
+ ## Composes into
78
+
79
+ - [[genre-exploration]] — the parent, but exploring an *idea-space* (evidence →
80
+ conclusions) rather than a physical world.
81
+ - [[genre-grid-puzzle]] — shares the *solvable-by-logic* proof obligation; a
82
+ deduction game is a puzzle whose state is the player's knowledge.
83
+ - [[system-onboarding]] — early easy fates teach the deduction loop by doing.
84
+ - [[system-progression]] — difficulty rises with required inference depth.
85
+ - [[pattern-mastery-and-flow]] — the deduction-click is the flow reward.
86
+
87
+ ## Twist seams
88
+
89
+ - **Obra Dinn but knowledge-gated exploration** *(structure)* — evidence unlocks by
90
+ *understanding*, not by walking; deduction + Outer Wilds. Pairs with
91
+ [[anchor-outer-wilds]].
92
+ - **Obra Dinn but coop deduction** *(perspective)* — two detectives hold different
93
+ evidence and must *argue* to a shared conclusion; communication becomes the
94
+ mechanic. Pairs with [[genre-coop-chaos]].
95
+ - **Obra Dinn but procedurally generated cases** *(mechanic-swap)* — a solver
96
+ guarantees each generated mystery is logic-solvable, giving endless deduction.
97
+ Pairs with [[system-procgen-design]] and the winnability proof of [[genre-grid-puzzle]].
98
+ - **Obra Dinn but you can be *wrong* and it costs you** *(constraint / tonal)* —
99
+ confirmations are risky bets with consequences; deduction under stakes, not
100
+ free retries.
101
+
102
+ ## See also
103
+
104
+ - [`docs/FUN.md#1-grid-puzzle-sokoban`](../../docs/FUN.md) — solver-provable
105
+ solutions; unwinnable = unshippable. A deduction game inherits this obligation:
106
+ prove every fate is derivable by logic.
107
+ - [[genre-exploration]] · [[anchor-outer-wilds]] (the knowledge-progression
108
+ sibling) · [[genre-grid-puzzle]].
@@ -0,0 +1,101 @@
1
+ ---
2
+ id: anchor-rimworld
3
+ title: RimWorld
4
+ kind: anchor
5
+ tags: [colony-sim, story-generator, ai-director, emergent, drama, pacing, simulation]
6
+ summary: A colony sim built as a story generator — an AI director paces crises against your state so the *narrative*, not a win screen, is the product.
7
+ use-when: The design wants players to leave with stories, not scores; you need a director that authors drama over a deep sim.
8
+ composes-with: [genre-city-builder, system-emergent-systems, system-difficulty-and-dda, system-enemy-ai, system-resource-loops]
9
+ anchors: []
10
+ verify-with: docs/FUN.md#17-citycolony-builder
11
+ ---
12
+
13
+ # RimWorld
14
+
15
+ **What it is.** A colony sim whose real product is **stories**. You keep a handful
16
+ of flawed characters alive on a hostile map, but the game's genius is the **AI
17
+ storyteller** — a director that watches your state and *paces* raids, disasters,
18
+ and lulls to build tension and release like a screenwriter, not a random-event
19
+ table. You don't win RimWorld; you *tell someone about* your RimWorld.
20
+
21
+ **Player fantasy.** The anecdote you can't wait to share: the pyromaniac who
22
+ saved the colony, the winter you ate your own dead. The pull is that every crisis
23
+ lands on *characters you know*, and the director times them so the disaster
24
+ arrives exactly when it'll hurt — and mean — the most.
25
+
26
+ ## Design DNA
27
+
28
+ Fun here is **emergent narrative** — story as the output of interacting systems,
29
+ not authored scenes. Two engines make it work. First, a deep, legible **sim of
30
+ needs and traits** (mood, injuries, relationships, resources) so consequences
31
+ *chain* into stories. Second, an **AI director** ([[system-emergent-systems]],
32
+ [[system-difficulty-and-dda]]) that reads your current state and schedules events
33
+ for *dramatic* effect — hit you when you're strong, breathe when you're
34
+ reeling — turning a difficulty curve into a plot. The characters are the stakes;
35
+ the director is the author; the sim is the ink.
36
+
37
+ ## Load-bearing structures
38
+
39
+ | Structure | Why it works |
40
+ |---|---|
41
+ | **AI storyteller / director** | Paces events against live state (wealth, health, morale) for tension→release, not flat randomness. The heart. → [[system-difficulty-and-dda]]. |
42
+ | **Characters with traits & relationships** | Named pawns with quirks and bonds make every consequence *personal* — the stakes that turn events into stories. → [[system-emergent-systems]]. |
43
+ | **Deep need/mood sim** | Hunger, sleep, mood, breaks; needs interact and cascade (a bad meal → a tantrum → a fire). Consequence chains = plot. |
44
+ | **Interacting subsystems** | Medicine, temperature, food, defence, social — each affects the others; second-order events emerge nobody scripted. → [[pattern-emergence]]. |
45
+ | **No win state** | Open-ended survival; the "goal" is the story you generate, which removes the "solved, done" cliff. → [[system-session-structure]]. |
46
+ | **Legible cause-and-effect** | You can always trace *why* it went wrong — the story is coherent, so it's tellable. → [[pattern-readability]]. |
47
+
48
+ ## What to steal
49
+
50
+ - The **director-as-author**: schedule events against player state for dramatic
51
+ shape (strike when strong, relent when reeling), not uniform randomness. This is
52
+ the single most stealable idea here. → [[system-difficulty-and-dda]].
53
+ - **Named, flawed characters** as the stakes: a trait/relationship layer turns
54
+ "a unit died" into "*Grigori* died." Personalisation is what makes emergence
55
+ *tellable*. → [[system-emergent-systems]].
56
+ - **Consequence chains**: design needs/systems that *cascade*, so one bad event
57
+ spawns three — the raw material of story.
58
+ - **Traceable failure**: keep cause-and-effect legible (FUN.md §17: the exposed
59
+ score) so the player can narrate what happened.
60
+
61
+ ## What's just theme (drop it)
62
+
63
+ - The **sci-fi frontier** setting — the loop is a survival colony of *anything*
64
+ (a ship, a village, an office, a hive). Theme is a [[world-theme-vectors]] pick.
65
+ - **The specific event menagerie** (raids, blights, solar flares) — those are
66
+ content slotted into the director; the *director* is the transferable part.
67
+ - **Top-down colony-management UI** — one presentation of "watch a system, nudge
68
+ it." A card game or a text log could host the same director.
69
+ - **Real-time-with-pause** — the sim can be turn/tick-based; timing is sim time
70
+ (FUN.md law 6), and pausing to think is a [[system-save-and-checkpoint]] concern.
71
+
72
+ ## Composes into
73
+
74
+ - [[genre-city-builder]] — the parent colony/management genre (the exposed score,
75
+ negative synergies).
76
+ - [[system-emergent-systems]] — RimWorld is the canonical *story-generator* case:
77
+ memory, relationships, and reputation producing systemic narrative.
78
+ - [[system-difficulty-and-dda]] — the storyteller is dynamic difficulty *as
79
+ drama*, not just as a fairness knob.
80
+ - [[system-enemy-ai]] — raiders/threats the director deploys.
81
+ - [[pattern-emergence]] — interacting subsystems as the source of unscripted story.
82
+
83
+ ## Twist seams
84
+
85
+ - **RimWorld but one character** *(perspective / constraint)* — no colony; the
86
+ director paces a single life's crises. The story-generator shrinks to a memoir.
87
+ - **RimWorld but the director is visible and adversarial** *(mechanic-swap)* — the
88
+ storyteller is a named opponent you can bargain with or sabotage; drama becomes
89
+ a duel. Pairs with [[genre-narrative-decisions]].
90
+ - **RimWorld but cozy** *(tonal)* — strip lethality; the director paces *heart-warming*
91
+ beats (a wedding, a harvest, a reunion) instead of raids. Pairs with
92
+ [[anchor-stardew-valley]].
93
+ - **RimWorld but swipe-to-decide** *(structure)* — collapse the sim into
94
+ card-choices the director deals from colony state. Pairs with [[anchor-reigns]].
95
+
96
+ ## See also
97
+
98
+ - [`docs/FUN.md#17-citycolony-builder`](../../docs/FUN.md) — the exposed score;
99
+ negative synergies create the only real decisions; scoring-honesty audit.
100
+ - [[system-emergent-systems]] · [[system-difficulty-and-dda]] ·
101
+ [[anchor-shadow-of-mordor]] (the other systemic-memory anchor).