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.
- 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/package.json +2 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: world-narrative-delivery
|
|
3
|
+
title: Narrative Delivery — story with little text
|
|
4
|
+
kind: worldbuilding
|
|
5
|
+
tags: [narrative, environmental, systemic, embedded, show-dont-tell, story, diegetic]
|
|
6
|
+
summary: Environmental / systemic / embedded storytelling with LITTLE text — show don't tell; let the systems author the story in a small deterministic game.
|
|
7
|
+
use-when: You want the world to tell its story through play and place, not cutscenes — a fit for a small, text-light deterministic game.
|
|
8
|
+
composes-with: [world-worldbuilding-scaffold, world-naming-and-tone, world-aesthetic-direction]
|
|
9
|
+
anchors: [anchor-shadow-of-mordor, anchor-outer-wilds, anchor-return-of-the-obra-dinn]
|
|
10
|
+
verify-with: none
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Narrative Delivery — story with little text
|
|
14
|
+
|
|
15
|
+
**What it is.** How the world reaches the player *without a wall of text*. A small
|
|
16
|
+
deterministic game can't (and shouldn't) lean on cutscenes and codex dumps. Its
|
|
17
|
+
story lives in **place** (what the level shows), in **systems** (what the rules
|
|
18
|
+
generate), and in **objects** (what a single item implies). The best delivery is
|
|
19
|
+
the one the player *finds*, not the one they're *told*.
|
|
20
|
+
|
|
21
|
+
**Player fantasy / why it's fun.** Discovered story is *yours*. A player who
|
|
22
|
+
pieces the world together from a broken lantern and a drowned path owns that
|
|
23
|
+
understanding in a way no narrator can give them. Show-don't-tell isn't a style
|
|
24
|
+
choice — it's how you make the player a participant instead of an audience.
|
|
25
|
+
|
|
26
|
+
## The three delivery channels
|
|
27
|
+
|
|
28
|
+
| Channel | The story is in… | Costs | Best for |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| **Environmental** | the *place* — layout, ruins, what's worn or broken | art & level design | premise, history, mood |
|
|
31
|
+
| **Systemic** | the *rules interacting* — what the systems generate | mechanical depth | emergent, personal, replayable story |
|
|
32
|
+
| **Embedded** | *objects & fragments* — one item, one line, one name | a little authored text | specific lore, character, the twist |
|
|
33
|
+
|
|
34
|
+
The house lean is **environmental + systemic first, embedded in tiny doses.** Text
|
|
35
|
+
is a DOM overlay ([[world-naming-and-tone]]); spend it sparingly. A game that
|
|
36
|
+
*shows* its drowning coast and lets its light-mechanic *enact* the loss needs
|
|
37
|
+
almost no words.
|
|
38
|
+
|
|
39
|
+
## Vectors / options — how much story, and where
|
|
40
|
+
|
|
41
|
+
Match delivery to the game's shape ([[system-session-structure]]):
|
|
42
|
+
|
|
43
|
+
| Game shape | Primary channel | What it looks like |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Puzzle / arcade | environmental | the level *is* the premise; one title line |
|
|
46
|
+
| Roguelite | systemic | each run's events author a small story ([[system-emergent-systems]]) |
|
|
47
|
+
| Metroidvania / campaign | environmental + embedded | place tells history; fragments gate the twist |
|
|
48
|
+
| Systemic / emergent | systemic | the *nemesis* pattern — the game remembers and narrates back |
|
|
49
|
+
| Deduction | embedded | the player *reconstructs* the story (Obra Dinn) |
|
|
50
|
+
|
|
51
|
+
## Method
|
|
52
|
+
|
|
53
|
+
1. **Decide what the player must understand** vs what they may *infer*. Only the
|
|
54
|
+
first needs delivery; the rest is theirs to imagine
|
|
55
|
+
([[world-worldbuilding-scaffold]] kept it minimal — hold that line).
|
|
56
|
+
2. **Assign each beat a channel.** Premise → environmental (show it in the first
|
|
57
|
+
screen). Stakes → systemic (let a loss *happen*, don't narrate it). A specific
|
|
58
|
+
reveal → embedded (one fragment).
|
|
59
|
+
3. **Make the environment tell the premise.** The [[world-aesthetic-direction]]
|
|
60
|
+
brief is your first narrator: a drowned path, a snuffed lantern, a mended crack
|
|
61
|
+
say more than a paragraph. Compose the frame to be *read*.
|
|
62
|
+
4. **Let systems generate the personal story.** Where you have memory or
|
|
63
|
+
relationships ([[system-emergent-systems]]), the game authors specifics you
|
|
64
|
+
didn't write — the guard who caught you twice, the lantern you always lose.
|
|
65
|
+
That's the Shadow of War trick at small scale.
|
|
66
|
+
5. **Spend embedded text like a miser.** One line on a gravestone, one name on a
|
|
67
|
+
crest. Diegetic, in-world, in the register ([[world-naming-and-tone]]). Never
|
|
68
|
+
a scrolling codex.
|
|
69
|
+
6. **Show the change, not the state.** Story is *difference* — the path that was
|
|
70
|
+
lit and now isn't; the crack that's now gold. Deliver transformations the
|
|
71
|
+
player caused, so the narrative and the mechanic are the same event.
|
|
72
|
+
|
|
73
|
+
## Worked example
|
|
74
|
+
|
|
75
|
+
**World:** the drowned-coast keeper (from [[world-worldbuilding-scaffold]]).
|
|
76
|
+
|
|
77
|
+
- **Environmental:** the opening frame — a graded dusk, one lit lantern, a path
|
|
78
|
+
of dark ones trailing into rising water. No text needed; the premise is *seen*.
|
|
79
|
+
- **Systemic:** when the tide claims a lantern, the hamlet behind it goes dark on
|
|
80
|
+
the map and its light never returns this run. The *rule* tells the loss; the
|
|
81
|
+
player feels it because they routed there or didn't.
|
|
82
|
+
- **Embedded:** one line at the far lamp — *"the last one lit."* Four words,
|
|
83
|
+
diegetic, in register. That's the entire authored narrative.
|
|
84
|
+
- **Result:** a complete emotional arc — hope, attrition, a small held light —
|
|
85
|
+
delivered by place, rule, and four words. No cutscene, no codex.
|
|
86
|
+
|
|
87
|
+
## Aesthetic hook
|
|
88
|
+
|
|
89
|
+
Environmental storytelling *is* [[world-aesthetic-direction]] doing double duty:
|
|
90
|
+
the **Kentō** frame that passes the JUDGE's depth axis (a real fore/mid/back,
|
|
91
|
+
a focal point) is also the frame that *narrates* — a snuffed lantern reads as
|
|
92
|
+
loss only if the scene has the depth and contrast to show it. Because text is a
|
|
93
|
+
DOM overlay and the palette carries the mood, you can tell a whole story in ink,
|
|
94
|
+
washi, and one *ko* glow going out. Keep embedded text set in the serif the JUDGE
|
|
95
|
+
renders true (`docs/JUDGE.md`), and let restraint here reinforce the house voice
|
|
96
|
+
([[world-naming-and-tone]]): the systems and the light say it; the words just
|
|
97
|
+
confirm it.
|
|
98
|
+
|
|
99
|
+
## Traps
|
|
100
|
+
|
|
101
|
+
- **The lore dump.** A text wall at the start players skip. If it's not
|
|
102
|
+
discoverable and short, cut it — deliver through play.
|
|
103
|
+
- **Narrating what the system already shows.** A popup "You lost a lantern!" over
|
|
104
|
+
a lantern the player watched go dark. Trust the mechanic; drop the caption.
|
|
105
|
+
- **Story that ignores the mechanics.** Fiction that contradicts what the rules
|
|
106
|
+
do ([[world-worldbuilding-scaffold]]'s "rule without echo"). The played story
|
|
107
|
+
is the real one — align the told one to it.
|
|
108
|
+
- **Embedded everywhere.** Fragments on every rock dilute the ones that matter.
|
|
109
|
+
Miser's budget.
|
|
110
|
+
- **Cutscene reflex.** Reaching for a scripted scene when a composed frame or a
|
|
111
|
+
system event would land harder *and* stay deterministic and cosmetic-free.
|
|
112
|
+
|
|
113
|
+
## Composes with
|
|
114
|
+
|
|
115
|
+
- [[world-worldbuilding-scaffold]] — decides what little must be understood; this
|
|
116
|
+
delivers it without text walls.
|
|
117
|
+
- [[system-emergent-systems]] — the systemic channel; the game authors personal,
|
|
118
|
+
replayable story the designer didn't write.
|
|
119
|
+
- [[world-aesthetic-direction]] — the composed frame is the primary narrator.
|
|
120
|
+
- [[world-naming-and-tone]] — governs the spare, diegetic voice of any embedded
|
|
121
|
+
text.
|
|
122
|
+
|
|
123
|
+
## See also
|
|
124
|
+
|
|
125
|
+
- [`docs/JUDGE.md`](../../docs/JUDGE.md) — depth & composition: a frame with real
|
|
126
|
+
layers is also a frame that can *tell* something.
|
|
127
|
+
- [[anchor-shadow-of-mordor]] (systemic memory as narrative),
|
|
128
|
+
[[anchor-outer-wilds]] (knowledge as the only progression),
|
|
129
|
+
[[anchor-return-of-the-obra-dinn]] (the player reconstructs the story).
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: world-theme-vectors
|
|
3
|
+
title: Theme Vectors — choosing a setting that recolours the mechanics
|
|
4
|
+
kind: worldbuilding
|
|
5
|
+
tags: [theme, setting, fiction, twist, recolour, fantasy, resonance]
|
|
6
|
+
summary: Choosing a setting/theme space; theme as a twist vector that recolours every system, not a skin — pick where the fiction and the mechanic rhyme.
|
|
7
|
+
use-when: You have a core loop and need the world it lives in — a setting that sharpens the mechanics instead of just decorating them.
|
|
8
|
+
composes-with: [world-worldbuilding-scaffold, world-aesthetic-direction, world-narrative-delivery]
|
|
9
|
+
verify-with: none
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Theme Vectors — choosing a setting that recolours the mechanics
|
|
13
|
+
|
|
14
|
+
**What it is.** The **theme** is the fiction the mechanics wear — the where, when,
|
|
15
|
+
and who. It is one of the six twist vectors in [[process-the-twist]], and the
|
|
16
|
+
cheapest to reach for, which is exactly why it's the easiest to waste. A theme
|
|
17
|
+
earns its place when it *recolours the systems* — makes the same rule mean
|
|
18
|
+
something new — not when it merely repaints the sprites.
|
|
19
|
+
|
|
20
|
+
**Player fantasy / why it's fun.** A setting is a promise about what the numbers
|
|
21
|
+
*mean*. "Fuel" and "faith" can be the identical resource loop; one is a survival
|
|
22
|
+
horror, one is a pilgrimage. The theme is where the player decides to care.
|
|
23
|
+
|
|
24
|
+
## The test: does the fiction rhyme with the mechanic?
|
|
25
|
+
|
|
26
|
+
A theme is load-bearing when you can trace a **rhyme** — a place where the rule
|
|
27
|
+
and the fiction say the same thing. Skip the theme and the loop still works but
|
|
28
|
+
means nothing; skip the loop and the theme is a wallpaper. Aim for both saying it.
|
|
29
|
+
|
|
30
|
+
| Mechanic | A theme that rhymes | A theme that's just a skin |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Resource that decays if unused | *Grief* you must spend before a season ends | "Energy" that ticks down |
|
|
33
|
+
| Territory you can't hold everywhere | A **failing** lighthouse network on a drowning coast | Generic "zones" on a map |
|
|
34
|
+
| Permadeath with persistent memory | Orcs who *remember* every duel (Shadow of War) | Enemies with random names |
|
|
35
|
+
| One-screen constraint | A single tide-pool you tend as the sea rises | "A small arena" |
|
|
36
|
+
|
|
37
|
+
## Vectors / options
|
|
38
|
+
|
|
39
|
+
Theme is a *space* to choose within, not a single lever. Move along these axes:
|
|
40
|
+
|
|
41
|
+
| Axis | Poles | The mechanical consequence to hunt for |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| **Register** | mythic ↔ mundane | Mythic licenses spectacle & absolutes; mundane licenses stakes you feel |
|
|
44
|
+
| **Scale** | a room ↔ a cosmos | Sets what a "unit" is: a citizen, a hero, an empire, a season |
|
|
45
|
+
| **Agency** | steward ↔ conqueror | Do you *tend* the system or *bend* it? Recolours win conditions |
|
|
46
|
+
| **Time** | one night ↔ generations | Frames the session container; a run vs a campaign vs a lineage |
|
|
47
|
+
| **Tone** | dread ↔ cosy ↔ elegiac | The tonal twist rides here; recolours feedback (menace vs warmth) |
|
|
48
|
+
| **Material** | ink/wood/stone ↔ neon/chrome | Ties directly to [[world-aesthetic-direction]] and the Kentō set |
|
|
49
|
+
|
|
50
|
+
The Hayao example corpus lives near one corner of this space on purpose:
|
|
51
|
+
*lanternway*, *rootward*, *tarnholm*, *kintsugi* are **mundane-register,
|
|
52
|
+
small-scale, steward-agency, elegiac** worlds rendered in wood and ink. That's a
|
|
53
|
+
house lean, not a law — see the aesthetic hook below.
|
|
54
|
+
|
|
55
|
+
## Method
|
|
56
|
+
|
|
57
|
+
1. **Start from the signature mechanic**, not the setting. Name the one rule the
|
|
58
|
+
game is *about* (from [[process-the-twist]]). The theme has to serve it.
|
|
59
|
+
2. **List 4–6 candidate fictions** the mechanic could wear. Force range: one
|
|
60
|
+
mythic, one mundane, one cosy, one dreadful. Don't stop at the first.
|
|
61
|
+
3. **Find the rhyme for each.** For every candidate, write the single sentence
|
|
62
|
+
where the fiction and the rule say the same thing. No rhyme → cut it.
|
|
63
|
+
4. **Trace the recolour** across three systems (economy, threat, progression):
|
|
64
|
+
does the theme *change what a choice feels like*? A theme that touches only
|
|
65
|
+
the art layer is a skin — send it to [[world-aesthetic-direction]] and pick a
|
|
66
|
+
deeper one.
|
|
67
|
+
5. **Check it against the pillars** ([[process-pillars]]). The theme that most
|
|
68
|
+
sharpens a pillar wins; a theme that fights one is a different game.
|
|
69
|
+
6. **Name the world in one line.** "A drowning coast where the last keeper
|
|
70
|
+
rations light." If it's boring to say, it'll be boring to inhabit — hand the
|
|
71
|
+
line to [[world-worldbuilding-scaffold]].
|
|
72
|
+
|
|
73
|
+
## Worked example
|
|
74
|
+
|
|
75
|
+
**Loop:** a push-your-luck resource run — bank early for safety, press on for
|
|
76
|
+
more, lose it all if you overreach ([[pattern-risk-reward]]).
|
|
77
|
+
|
|
78
|
+
- **Candidates:** deep-sea salvage; a tea ceremony under time pressure; a
|
|
79
|
+
wildfire-line dig; *a lantern-lighter walking a mountain path at dusk*.
|
|
80
|
+
- **Rhyme found:** the lantern-lighter. Each lit lantern is banked progress; the
|
|
81
|
+
dark ahead is the press. Oil is the run's only currency; the summit shrine is
|
|
82
|
+
the bank. The fiction *is* the risk-reward curve.
|
|
83
|
+
- **Recolour:** threat becomes *the encroaching dark* (a timer with a face);
|
|
84
|
+
the "bank" becomes *turning back*, which the fiction makes a real cost, not a
|
|
85
|
+
menu button. Progression is the path itself.
|
|
86
|
+
- **World line:** *"A lantern-keeper climbing into the dusk, deciding how far
|
|
87
|
+
the light will reach before the dark takes the path."* (This is *lanternway*'s
|
|
88
|
+
neighbourhood — arrived at from the mechanic, not copied from it.)
|
|
89
|
+
|
|
90
|
+
## Aesthetic hook
|
|
91
|
+
|
|
92
|
+
The house look is **Kentō woodblock / Miyazaki-16** (`KENTO`, `MEADOW`, `DUSK`
|
|
93
|
+
in [`docs/API.md`](../../docs/API.md); see [[world-aesthetic-direction]]). Its
|
|
94
|
+
eight named hues — vermilion *shu*, persimmon *kaki*, ochre *ko*, pine *matsu*,
|
|
95
|
+
teal *asagi*, indigo *ai*, wisteria *fuji*, dusty-rose *saku* — read as *elegant
|
|
96
|
+
Japanese craft*, so themes in that register (folk myth, seasonal ritual, quiet
|
|
97
|
+
stewardship, weathered wood and ink) come pre-harmonised. A **neon-cyberpunk**
|
|
98
|
+
or **candy-arcade** theme fights the palette; if your mechanic truly wants it,
|
|
99
|
+
say so early and swap the palette deliberately — Kentō is a starting point, not a
|
|
100
|
+
cage (`docs/CONVENTIONS.md`). But a theme chosen *near* the house register gets
|
|
101
|
+
its art direction and its AA guarantee (`npm run palette`) close to free.
|
|
102
|
+
|
|
103
|
+
## Traps
|
|
104
|
+
|
|
105
|
+
- **Skin, not recolour.** If the theme could be swapped for another with zero
|
|
106
|
+
mechanical change, it's set-dressing. Bend deeper or pick a vector other than
|
|
107
|
+
theme.
|
|
108
|
+
- **Theme-first tourism.** Choosing "steampunk" because it's cool, then bolting a
|
|
109
|
+
loop on. The mechanic picks the theme, not the reverse.
|
|
110
|
+
- **Register mismatch.** Cosy art on a punishing loop (or dread art on a gentle
|
|
111
|
+
one) confuses the promise. Let tone, mechanic, and palette agree.
|
|
112
|
+
- **Over-lore.** A rich setting with no mechanical rhyme is a wiki, not a game.
|
|
113
|
+
Minimum viable lore only — [[world-worldbuilding-scaffold]].
|
|
114
|
+
- **Fighting the palette by accident.** Reskinning to a clashing world without
|
|
115
|
+
swapping `MEADOW`/`DUSK` yields muddy, off-brand frames the JUDGE flags.
|
|
116
|
+
|
|
117
|
+
## Composes with
|
|
118
|
+
|
|
119
|
+
- [[process-the-twist]] — theme *is* one of the six vectors; this module is its
|
|
120
|
+
deep dive.
|
|
121
|
+
- [[world-worldbuilding-scaffold]] — the chosen setting becomes a coherent world
|
|
122
|
+
with rules and stakes here.
|
|
123
|
+
- [[world-aesthetic-direction]] — theme sets the register; this turns it into a
|
|
124
|
+
concrete, JUDGE-passing look.
|
|
125
|
+
- [[process-pillars]] — the pillars are the scoring function for candidate themes.
|
|
126
|
+
|
|
127
|
+
## See also
|
|
128
|
+
|
|
129
|
+
- [`docs/JUDGE.md`](../../docs/JUDGE.md) — palette harmony (axis 3): does the
|
|
130
|
+
world's colour belong to *one* set?
|
|
131
|
+
- `docs/CONVENTIONS.md` "Default palette is Kentō" — the house register and the
|
|
132
|
+
AA gate.
|
|
133
|
+
- Example worlds *lanternway*, *rootward*, *tarnholm*, *kintsugi* — as
|
|
134
|
+
*convention references* for register, never a menu to copy (AGENTS.md).
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: world-worldbuilding-scaffold
|
|
3
|
+
title: Worldbuilding Scaffold — the minimum viable world
|
|
4
|
+
kind: worldbuilding
|
|
5
|
+
tags: [lore, world, setting, stakes, fantasy, rules, coherence, scaffold]
|
|
6
|
+
summary: From a setting to a coherent world with rules, stakes, and a fantasy — the minimum viable lore a small deterministic game actually needs.
|
|
7
|
+
use-when: You picked a theme and need to turn it into a world that holds together — enough lore to justify the mechanics, no more.
|
|
8
|
+
composes-with: [world-theme-vectors, world-faction-identity, world-narrative-delivery, world-naming-and-tone]
|
|
9
|
+
verify-with: none
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Worldbuilding Scaffold — the minimum viable world
|
|
13
|
+
|
|
14
|
+
**What it is.** A world is not a wiki. For a small deterministic game it's a
|
|
15
|
+
tight bundle: a **premise**, the rules that premise implies, the stakes that make
|
|
16
|
+
a loss sting, and the fantasy the player is buying. Build the load-bearing
|
|
17
|
+
minimum, then stop. Every sentence of lore should either justify a mechanic or
|
|
18
|
+
raise the stakes; if it does neither, it's decoration.
|
|
19
|
+
|
|
20
|
+
**Player fantasy / why it's fun.** A coherent world makes the player *fill in the
|
|
21
|
+
rest*. Give them a rule and a stake and they'll imagine the history for free.
|
|
22
|
+
Your job is the skeleton, not the encyclopedia.
|
|
23
|
+
|
|
24
|
+
## The five load-bearing pieces
|
|
25
|
+
|
|
26
|
+
A world holds together when these five agree. Write one line each — that's the
|
|
27
|
+
whole doc for a small game.
|
|
28
|
+
|
|
29
|
+
| Piece | The question it answers | Kept small by |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| **Premise** | What is the world and what just went wrong? | One sentence. "The tide is rising and the lantern network is failing." |
|
|
32
|
+
| **Rules of the world** | What's true here that isn't true elsewhere? | 2–3 rules max, each mapping to a mechanic |
|
|
33
|
+
| **Stakes** | What's lost if you fail? | Something concrete and small enough to feel |
|
|
34
|
+
| **The player's role** | Who are you, and why is it *your* problem? | A verb: keeper, mender, surveyor, forager |
|
|
35
|
+
| **The fantasy** | What does the player get to *feel*? | One clause; this is the sales pitch |
|
|
36
|
+
|
|
37
|
+
The discipline: **every rule of the world is a mechanic in disguise.** If a
|
|
38
|
+
lore rule has no mechanical echo, it's flavour — fine in small doses, but it
|
|
39
|
+
isn't scaffolding. If a mechanic has no lore rule, the player will invent one;
|
|
40
|
+
make sure it's the one you want.
|
|
41
|
+
|
|
42
|
+
## Vectors / options — how much world does the scope need?
|
|
43
|
+
|
|
44
|
+
Match lore weight to session shape ([[system-session-structure]]):
|
|
45
|
+
|
|
46
|
+
| Game shape | World weight | What you actually write |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| Single-screen puzzle / arcade | **A premise line** | One evocative sentence; the mechanic is the story |
|
|
49
|
+
| Run-based (roguelite) | **Premise + 2 rules + a role** | Enough for the loop to *mean* something across runs |
|
|
50
|
+
| Campaign / metroidvania | **Full five + a place-geography** | Regions with identity; a why-here for each gate |
|
|
51
|
+
| Systemic / emergent | **Premise + rules that interact** | Lean lore; the *systems* author the stories ([[system-emergent-systems]]) |
|
|
52
|
+
|
|
53
|
+
More world is not better world. *tarnholm* and *rootward* say almost nothing
|
|
54
|
+
explicitly — the premise is in the name and the mechanics carry the rest.
|
|
55
|
+
|
|
56
|
+
## Method
|
|
57
|
+
|
|
58
|
+
1. **Write the premise line.** The world plus the disturbance — the thing that
|
|
59
|
+
makes it a *game* and not a diorama. Inherit the register from
|
|
60
|
+
[[world-theme-vectors]].
|
|
61
|
+
2. **Derive 2–3 rules of the world** *from your mechanics*, phrased as fiction.
|
|
62
|
+
Mechanic "resources decay" → rule "nothing keeps in the salt air." Mechanic
|
|
63
|
+
"you can't be everywhere" → rule "one keeper, many lamps." Each rule is a
|
|
64
|
+
promise the systems must keep.
|
|
65
|
+
3. **Set the stake.** Name what failure costs in the fiction — and make it
|
|
66
|
+
concrete and *scaled to the loop*, not "the world ends." A drowned village
|
|
67
|
+
reads; a fallen empire is abstract in a 5-minute run.
|
|
68
|
+
4. **Name the role with a verb.** Keeper, mender, surveyor. The verb is the
|
|
69
|
+
player's fantasy and often the core mechanic's name.
|
|
70
|
+
5. **State the fantasy in one clause.** "The quiet competence of keeping the
|
|
71
|
+
light on." This is what the [[world-aesthetic-direction]] and
|
|
72
|
+
[[pattern-juice-choreography]] must deliver on.
|
|
73
|
+
6. **Cut everything else.** If a fact doesn't back a rule, a stake, or the
|
|
74
|
+
fantasy, it's out of the scaffold. Let players imagine the rest.
|
|
75
|
+
|
|
76
|
+
## Worked example
|
|
77
|
+
|
|
78
|
+
**Premise:** *"A coastal shrine-network is drowning; the last keeper walks the
|
|
79
|
+
path relighting lanterns before the dark and the tide close it."*
|
|
80
|
+
|
|
81
|
+
- **Rules of the world:** (1) *Light holds the dark back only while it burns* →
|
|
82
|
+
timed lantern mechanic. (2) *One keeper, many lamps* → you can't cover
|
|
83
|
+
everything; routing is the game. (3) *Oil is scarce and doesn't keep* →
|
|
84
|
+
a resource loop that punishes hoarding.
|
|
85
|
+
- **Stake:** each lantern that goes dark strands the hamlet behind it — a small,
|
|
86
|
+
legible loss, not an abstract apocalypse.
|
|
87
|
+
- **Role:** the **keeper** — the verb is the mechanic.
|
|
88
|
+
- **Fantasy:** *the quiet, dwindling competence of holding a line of light against
|
|
89
|
+
a rising night.*
|
|
90
|
+
|
|
91
|
+
Three sentences of lore; three mechanics justified; one feeling to deliver.
|
|
92
|
+
Anything more is a wiki.
|
|
93
|
+
|
|
94
|
+
## Aesthetic hook
|
|
95
|
+
|
|
96
|
+
The **Kentō woodblock** register (`MEADOW`/`DUSK`; see
|
|
97
|
+
[[world-aesthetic-direction]]) is quiet, weathered, and elegiac by construction —
|
|
98
|
+
it rewards *small, human* stakes over cosmic ones. A world of one keeper and a
|
|
99
|
+
drowning coast reads instantly in ink and washi; a galactic-empire premise fights
|
|
100
|
+
the intimacy the palette wants. Let the scaffold's *scale* match the look: the
|
|
101
|
+
house lean is small worlds with big feelings. The premise line doubles as the
|
|
102
|
+
title/first-screen invitation the JUDGE scores for "invites" (chrome & finish).
|
|
103
|
+
|
|
104
|
+
## Traps
|
|
105
|
+
|
|
106
|
+
- **The encyclopedia.** Pages of history no mechanic touches. Cut to the
|
|
107
|
+
load-bearing five.
|
|
108
|
+
- **Rule without echo.** Lore that promises something the systems never deliver
|
|
109
|
+
("the gods are watching" but nothing watches). Every rule needs a mechanic.
|
|
110
|
+
- **Stakes too big to feel.** "Save the universe" is abstract; "don't let this
|
|
111
|
+
village go dark" lands. Scale the stake to the session.
|
|
112
|
+
- **Role without a verb.** "You are the chosen one" is a title, not a fantasy.
|
|
113
|
+
Name what you *do*.
|
|
114
|
+
- **Front-loaded lore dump.** Text walls at the start. Deliver the world through
|
|
115
|
+
play — [[world-narrative-delivery]].
|
|
116
|
+
|
|
117
|
+
## Composes with
|
|
118
|
+
|
|
119
|
+
- [[world-theme-vectors]] — supplies the register and the rhyme this scaffold
|
|
120
|
+
builds on.
|
|
121
|
+
- [[world-faction-identity]] — when the world has sides, each faction is a
|
|
122
|
+
sub-scaffold with its own premise and values.
|
|
123
|
+
- [[world-narrative-delivery]] — how the scaffold reaches the player without
|
|
124
|
+
text walls.
|
|
125
|
+
- [[world-naming-and-tone]] — the premise line and role verb are named here.
|
|
126
|
+
|
|
127
|
+
## See also
|
|
128
|
+
|
|
129
|
+
- [`docs/JUDGE.md`](../../docs/JUDGE.md) — chrome & finish: does the first screen
|
|
130
|
+
*invite*? The premise line is your invitation.
|
|
131
|
+
- Example worlds *lanternway*, *rootward*, *tarnholm*, *kintsugi* — each is a
|
|
132
|
+
three-sentence world, not a wiki (reference the *restraint*, not the content).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 50-patterns/ — the cross-cutting fun & polish laws
|
|
2
|
+
|
|
3
|
+
The other sections are staged — you reach for an [[anchor]] at ANCHOR, a
|
|
4
|
+
[[genre]] at COMPOSE, a [[world]] at SHAPE. **Patterns are always on.** They're the
|
|
5
|
+
laws that apply at *every* stage and across *every* genre: a feedback loop can
|
|
6
|
+
snowball a puzzle or an RTS; risk/reward gives teeth to a card draw or a corner
|
|
7
|
+
line; readability decides whether any mechanic underneath is even visible. Don't run
|
|
8
|
+
these in order — hold them in the back of your mind the whole way through, and check
|
|
9
|
+
each design choice against the ones it touches.
|
|
10
|
+
|
|
11
|
+
They are written as **laws with teeth**: each ties to a proof or a feel-gate rather
|
|
12
|
+
than a vibe. Where the pattern becomes checkable, the module *routes* to it — the
|
|
13
|
+
skill-delta ([`docs/FUN.md`](../../docs/FUN.md) law 2) for flow and feedback runaway,
|
|
14
|
+
the Channel-4 feel gates ([`docs/JUICE.md`](../../docs/JUICE.md)) for juice and
|
|
15
|
+
forgiveness, the vision judge ([`docs/JUDGE.md`](../../docs/JUDGE.md)) for
|
|
16
|
+
readability — never restating the recipe. Design the pattern here; prove it there.
|
|
17
|
+
|
|
18
|
+
Several pattern modules pair 1:1 with a concrete `[[system-*]]`: **anti-frustration**
|
|
19
|
+
is the mindset, [[system-grace]] the machinery; **mastery-and-flow** the why,
|
|
20
|
+
[[system-mastery-curve]] the how; **emergence** the principle,
|
|
21
|
+
[[system-emergent-systems]] the parts. Read the pair together.
|
|
22
|
+
|
|
23
|
+
## The eight pattern modules
|
|
24
|
+
|
|
25
|
+
| id | title | summary |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| [[pattern-feedback-loops]] | Feedback Loops | Positive loops snowball, negative loops correct — design which dominates so leads stay tense, not decided. |
|
|
28
|
+
| [[pattern-risk-reward]] | Risk / Reward | A choice with teeth — every reward priced in real risk, every option double-edged, so decisions cost something. |
|
|
29
|
+
| [[pattern-mastery-and-flow]] | Mastery & Flow | Keep challenge riding just above skill — the flow channel — and prove it with the skill-delta gap. |
|
|
30
|
+
| [[pattern-emergence]] | Emergence | Depth from few pieces — rules that interact, not content that stacks; the game generates situations you never authored. |
|
|
31
|
+
| [[pattern-anti-frustration]] | Anti-Frustration | Punish the mistake, not the player — grace, instant retry, undo, and respecting time keep hard fair. |
|
|
32
|
+
| [[pattern-juice-choreography]] | Juice as Choreography | The sim resolves and returns a choreography script; the view replays it — every event answers on ≥2 senses. |
|
|
33
|
+
| [[pattern-readability]] | Readability | The player must instantly find the avatar, read the threat, and see the way — salience, signposting, affordances. |
|
|
34
|
+
| [[pattern-pacing-and-tension]] | Pacing & Tension | Tension is a curve, not a constant — alternate peaks and breathers so the finale reads as a peak. |
|
|
35
|
+
|
|
36
|
+
## How they interlock
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
feedback-loops ──build──▶ pacing-and-tension ◀──build── risk-reward
|
|
40
|
+
│ │ │
|
|
41
|
+
└──────▶ mastery-and-flow ◀┘ │
|
|
42
|
+
│ │
|
|
43
|
+
emergence ──depth──▶ (the ceiling flow climbs) ◀──variance────────────┘
|
|
44
|
+
|
|
45
|
+
readability ──gates the read──▶ juice-choreography (juice serves the read; read wins ties)
|
|
46
|
+
anti-frustration ──bounds the anxious side of──▶ mastery-and-flow
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The **fun triangle** — feedback loops, risk/reward, and pacing — shapes tension over
|
|
50
|
+
time; **mastery-and-flow** is the channel that tension should stay inside;
|
|
51
|
+
**emergence** is how deep that channel goes on a small content budget. The **feel
|
|
52
|
+
pair** — readability and juice-choreography — governs whether any of it reaches the
|
|
53
|
+
player's eye, and **anti-frustration** keeps the whole thing humane. Every module
|
|
54
|
+
names the siblings it composes with and the exact proof or gate that keeps it honest.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: pattern-anti-frustration
|
|
3
|
+
title: Anti-Frustration
|
|
4
|
+
kind: pattern
|
|
5
|
+
tags: [forgiveness, grace, anti-frustration, respect, retry, mercy, difficulty, humane]
|
|
6
|
+
summary: Punish mistakes without punishing the player — grace, instant retry, undo, and respecting time keep hard fair.
|
|
7
|
+
use-when: A game is hard or long and you must separate "difficult" from "tedious/unfair"; anywhere a failure costs the player time.
|
|
8
|
+
composes-with: [pattern-mastery-and-flow, pattern-juice-choreography, system-grace, system-save-and-checkpoint]
|
|
9
|
+
verify-with: docs/FUN.md#part-1-—-universal-laws
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Anti-Frustration
|
|
13
|
+
|
|
14
|
+
**What it is.** A game can be brutally hard and still respect you, or trivially easy
|
|
15
|
+
and still waste your life. **Anti-frustration** is the discipline of punishing the
|
|
16
|
+
*mistake* without punishing the *player* — grace windows, instant retry, undo,
|
|
17
|
+
generous checkpoints, no re-doing solved work. FUN.md law 5 states the core: **grace
|
|
18
|
+
is a system, not polish.**
|
|
19
|
+
|
|
20
|
+
**Player fantasy.** *"That death was fair, and I'm already trying again."* The
|
|
21
|
+
absence of dread about *losing progress*, so all the tension goes where it belongs —
|
|
22
|
+
the challenge itself. The game is on your side even as it kicks you.
|
|
23
|
+
|
|
24
|
+
## Why it works
|
|
25
|
+
|
|
26
|
+
- **Frustration and difficulty are different axes.** Difficulty is the challenge you
|
|
27
|
+
signed up for; frustration is friction you didn't — reloads, re-treading, input
|
|
28
|
+
windows so tight the game feels like it's lying. Killing the second lets you crank
|
|
29
|
+
the first.
|
|
30
|
+
- **The grace mindset keeps players in [[pattern-mastery-and-flow]].** A death that
|
|
31
|
+
costs three seconds keeps you on the ridge; a death that costs three minutes drops
|
|
32
|
+
you into anxiety and quitting.
|
|
33
|
+
- **Respecting time is respecting the player.** Re-doing solved work, unskippable
|
|
34
|
+
intros, punitive save-scumming — these read as contempt. Grace reads as craft.
|
|
35
|
+
|
|
36
|
+
## Levers
|
|
37
|
+
|
|
38
|
+
| Lever | Softens | Example |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| **Coyote time / jump buffer** | Input timing strictness | ~6-frame window past the ledge ([[system-grace]]) |
|
|
41
|
+
| **I-frames / hit-stop buffering** | Cascading damage | Invuln after a hit; buffer intent through the freeze (FUN.md §4) |
|
|
42
|
+
| **Instant retry** | The cost of failure | Respawn in < 1s, momentum preserved (CLAWSTRIKE) |
|
|
43
|
+
| **Undo / restart** | The cost of a wrong move | First-class undo key (Dying Dreams; FUN.md §1) |
|
|
44
|
+
| **Wound-before-death** | One-shot deaths | One grab is a story, two is a death (FUN.md §16) |
|
|
45
|
+
| **Checkpoint density** | Re-tread distance | Save at every room; never re-solve ([[system-save-and-checkpoint]]) |
|
|
46
|
+
| **Mercy clears** | Death spirals | Clear the screen on death/phase change (FUN.md §7) |
|
|
47
|
+
| **Assist modes** | The floor itself | Slow-mo, invuln, skip (Celeste; [[system-accessibility]]) |
|
|
48
|
+
|
|
49
|
+
## Applied across genres
|
|
50
|
+
|
|
51
|
+
| Genre | The grace |
|
|
52
|
+
|---|---|
|
|
53
|
+
| **Precision platformer** ([[anchor-celeste]]) | Coyote, buffer, corner-correct, instant retry, assist mode |
|
|
54
|
+
| **Grid puzzle** ([[genre-grid-puzzle]]) | Undo + restart; a wrong push is never a lost level (FUN.md §1) |
|
|
55
|
+
| **Bullet hell** ([[genre-bullet-hell]]) | Mercy clears on death and phase transitions — structural, not optional (FUN.md §7) |
|
|
56
|
+
| **Survival horror** ([[genre-survival-horror]]) | Wound + grace beats instadeath; the fuel budget is winnable *with discipline* (FUN.md §16) |
|
|
57
|
+
| **Roguelike** ([[genre-roguelike]]) | Meta-progression turns a lost run into progress ([[system-meta-progression]]) |
|
|
58
|
+
| **Tactics** ([[genre-tactics]]) | Undo a move within a turn before commit; perfect info means no gotchas |
|
|
59
|
+
| **Racing** ([[genre-racing]]) | Rewind/retry a corner; no re-driving three clean laps for one mistake |
|
|
60
|
+
|
|
61
|
+
## Overdone when…
|
|
62
|
+
|
|
63
|
+
- **Grace erases the challenge.** Infinite retries with no stakes flatten the
|
|
64
|
+
[[pattern-mastery-and-flow]] channel — tension needs *some* cost. Make retry cheap,
|
|
65
|
+
not free-of-meaning.
|
|
66
|
+
- **Save-scumming replaces skill.** If reloading is the optimal strategy, the design
|
|
67
|
+
leaks; either commit choices or make grace explicit (undo), not exploitable.
|
|
68
|
+
- **Hand-holding as forgiveness.** Removing failure entirely isn't grace, it's a
|
|
69
|
+
toy. Anti-frustration removes *tedium*, not *challenge*.
|
|
70
|
+
- **Inconsistent grace.** A coyote window that works on some ledges and not others
|
|
71
|
+
is worse than none — the player learns not to trust it ([[pattern-readability]]).
|
|
72
|
+
|
|
73
|
+
## Verify / feel-gate link
|
|
74
|
+
|
|
75
|
+
Grace is the most *directly testable* fun law — it's law 5 precisely because every
|
|
76
|
+
piece of it is a frame window:
|
|
77
|
+
|
|
78
|
+
- **Frame-pump the grace window (FUN.md law 5).** Assert accepted-inside /
|
|
79
|
+
refused-outside to the exact frame: coyote, jump buffer, i-frames, hit-stop input
|
|
80
|
+
buffering. `forgivenessIssues(CONFIG)` (JUICE.md Part 3, `npm run feel`) gates that
|
|
81
|
+
coyote/buffer/corner are specced at all.
|
|
82
|
+
- **Buffer through injected pauses (law 5).** Any pause the sim injects (hit-stop,
|
|
83
|
+
level-up pick) must buffer intent across it — assert a press during the freeze
|
|
84
|
+
still fires.
|
|
85
|
+
- **Instant retry preserves state (law 7).** Snapshot→restore→hash round-trip proves
|
|
86
|
+
retry doesn't corrupt or drift the sim.
|
|
87
|
+
- **Respect-time proofs are the checkpoint/save gates** ([[system-save-and-checkpoint]])
|
|
88
|
+
— no lost solved work across a save/load cycle.
|
|
89
|
+
|
|
90
|
+
## Worked micro-example
|
|
91
|
+
|
|
92
|
+
*"A brutally hard platformer players still call fair."* Keep difficulty maxed; strip
|
|
93
|
+
the *frustration* around it. (1) **Instant retry** — respawn in < 1s at the room
|
|
94
|
+
start, momentum intact, so a death costs seconds not minutes (CLAWSTRIKE). (2)
|
|
95
|
+
**Consistent grace** — coyote and jump-buffer windows that work on *every* ledge, so
|
|
96
|
+
the player learns to trust them ([[system-grace]], [[pattern-readability]]). (3)
|
|
97
|
+
**No re-tread** — checkpoint at each screen; never re-solve solved ground
|
|
98
|
+
([[system-save-and-checkpoint]]). The challenge is untouched; the tedium is gone.
|
|
99
|
+
Prove it: frame-pump the grace window (accepted-inside / refused-outside to the exact
|
|
100
|
+
frame, FUN.md law 5) and round-trip snapshot→restore→hash so retry never drifts state.
|
|
101
|
+
|
|
102
|
+
## Composes with
|
|
103
|
+
|
|
104
|
+
- [[system-grace]] — this pattern is the *mindset*; that system is the concrete
|
|
105
|
+
coyote/buffer/i-frame/mercy machinery with the frame values. Read them together.
|
|
106
|
+
- [[pattern-mastery-and-flow]] — grace bounds the anxious side of the flow channel so
|
|
107
|
+
hard stays humane.
|
|
108
|
+
- [[system-save-and-checkpoint]] — respecting time is mostly a checkpoint-density and
|
|
109
|
+
no-re-tread problem.
|
|
110
|
+
- [[system-accessibility]] — assist modes are anti-frustration extended to *who* can
|
|
111
|
+
reach flow at all.
|
|
112
|
+
- [[pattern-juice-choreography]] — a death that *feels* clean (readable cause,
|
|
113
|
+
quick reset) is half feel, half forgiveness.
|
|
114
|
+
|
|
115
|
+
## See also
|
|
116
|
+
|
|
117
|
+
- [`docs/FUN.md`](../../docs/FUN.md) law 5 — grace is a system, not polish; the same
|
|
118
|
+
shape at every timescale, each unit-testable.
|
|
119
|
+
- [`docs/JUICE.md`](../../docs/JUICE.md) Part 3 — `forgivenessIssues`, the feel gate
|
|
120
|
+
that fails a build with unspecced grace.
|
|
121
|
+
- [[anchor-celeste]] — assist-mode humaneness as a whole-game thesis.
|