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,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: anchor-hades
|
|
3
|
+
title: Hades
|
|
4
|
+
kind: anchor
|
|
5
|
+
tags: [roguelite, meta-progression, narrative, death, build-diversity, boons, run-based]
|
|
6
|
+
summary: Action roguelite where dying is the delivery mechanism for story and power — meta-progression is narrative, so losing is content, not punishment.
|
|
7
|
+
use-when: Designing a run-based game where you want death to advance the fiction and the meta-loop to carry players through failure.
|
|
8
|
+
composes-with: [genre-roguelike, system-meta-progression, system-build-diversity, system-emergent-systems]
|
|
9
|
+
anchors: [anchor-hades]
|
|
10
|
+
verify-with: docs/FUN.md#10-·-traditional-roguelike
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Hades
|
|
14
|
+
|
|
15
|
+
**What it is.** A fast isometric action roguelite where every death returns
|
|
16
|
+
you *home* — and home is where the story, the relationships, and the permanent
|
|
17
|
+
upgrades all live. You lose, you learn something, you get a little stronger
|
|
18
|
+
and a lot more attached.
|
|
19
|
+
|
|
20
|
+
**Player fantasy / why it's fun.** *Failure is progress.* Most roguelites ask
|
|
21
|
+
you to endure the grind between runs; Hades makes the grind the *best part*.
|
|
22
|
+
The pull is a double hook: the tight combat run, and the soap-opera of NPCs
|
|
23
|
+
who react to your last death by name.
|
|
24
|
+
|
|
25
|
+
## Design DNA
|
|
26
|
+
|
|
27
|
+
Take the roguelike's **fair-discovery run** and solve its oldest problem — the
|
|
28
|
+
demoralising reset — by routing **death straight into content**. Every failed
|
|
29
|
+
run spends its currency on: a permanent power sliver, a new line of dialogue,
|
|
30
|
+
a nudged relationship. The meta-layer isn't a stat screen; it's a *story that
|
|
31
|
+
only advances when you die*. Combat gives you the moment-to-moment; the
|
|
32
|
+
between-runs layer gives you the reason to start the next one.
|
|
33
|
+
|
|
34
|
+
The structural inversion is worth naming: in most roguelites the run is the
|
|
35
|
+
reward and the reset is the tax. Hades makes **the reset the reward** — you
|
|
36
|
+
*want* to come home, because home is where the writing, the gifts, and the
|
|
37
|
+
mirror upgrades live. A player who bounces off the combat still gets a full
|
|
38
|
+
game out of the hub. That doubles the audience the design can hold, and it's
|
|
39
|
+
why "just one more run" survives even a losing streak.
|
|
40
|
+
|
|
41
|
+
The second pillar is **build-from-a-draft**: boons offered on the way down
|
|
42
|
+
compose into a run identity, so no two descents play alike. The draft and the
|
|
43
|
+
meta-layer reinforce each other — the mirror talents you unlocked by *dying*
|
|
44
|
+
widen the space of viable builds, so failure literally expands the strategy
|
|
45
|
+
tree.
|
|
46
|
+
|
|
47
|
+
## Load-bearing structures
|
|
48
|
+
|
|
49
|
+
| Structure | Why it works |
|
|
50
|
+
|---|---|
|
|
51
|
+
| **Death → home → story** | The reset isn't a punishment screen; it's the narrative delivery vehicle. Losing *is* the content. [[system-meta-progression]] + [[world-narrative-delivery]]. |
|
|
52
|
+
| **Two currencies, two horizons** | Ephemeral in-run resources (build the run) vs persistent meta-currency (build the *account*). Splits "this run" from "forever." [[system-economy]]. |
|
|
53
|
+
| **Boon draft = run identity** | Choose-1-of-N god blessings compound into a build; synergies (duo boons) reward committing. [[system-build-diversity]] / [[pattern-risk-reward]]. |
|
|
54
|
+
| **NPCs with memory** | Characters react to your deaths, gifts, progress — a light [[system-emergent-systems]] that makes the hub feel alive and rewards *returning*. |
|
|
55
|
+
| **Escalating-but-optional heat** | A self-imposed difficulty stack (Pact of Punishment) lets mastered players re-earn tension. [[system-difficulty-and-dda]]. |
|
|
56
|
+
| **Generous permanent floor** | Meta-upgrades (death defiance, mirror talents) make each run start stronger — the curve pulls weak players forward without trivialising skill. |
|
|
57
|
+
| **Short, legible runs** | ~30-min descents keep the death-story loop tight; you're never far from the next beat. [[system-session-structure]]. |
|
|
58
|
+
|
|
59
|
+
## What to steal
|
|
60
|
+
|
|
61
|
+
- **Route failure into content.** The single most portable idea: every loss
|
|
62
|
+
should hand the player *something* — a line, an unlock, a relationship tick.
|
|
63
|
+
Kills the "wasted run" feeling and turns a losing streak into a story arc.
|
|
64
|
+
- **Split ephemeral vs persistent currency.** One builds the run, one builds
|
|
65
|
+
the save. Keep the horizons distinct so both decisions matter — in-run
|
|
66
|
+
resources are spent recklessly, meta-currency is hoarded and planned.
|
|
67
|
+
- **Draft-of-N boons that compound into an identity**, with rare high-synergy
|
|
68
|
+
payoffs (duo boons) that reward committing early to an archetype rather than
|
|
69
|
+
grabbing the best single card.
|
|
70
|
+
- **A hub of NPCs that remember.** Even shallow memory — a flag per death, a
|
|
71
|
+
gift counter, a "last boss killed" string — makes the meta-loop feel like a
|
|
72
|
+
place you return to, not a menu you tab through. See
|
|
73
|
+
[[system-emergent-systems]].
|
|
74
|
+
- **A permanent floor generous enough to carry a struggling player**, paired
|
|
75
|
+
with an *opt-in* difficulty stack for the mastered one (Heat / Pact). One
|
|
76
|
+
curve, two audiences: the floor pulls weak players up, the opt-in ceiling
|
|
77
|
+
re-earns tension for strong ones.
|
|
78
|
+
- **Make the meta-tree widen builds, not just raise stats.** Unlocks that add
|
|
79
|
+
*options* (new weapons, mirror branches) keep death interesting far longer
|
|
80
|
+
than unlocks that only add power.
|
|
81
|
+
|
|
82
|
+
## What's just theme (drop it)
|
|
83
|
+
|
|
84
|
+
- **Greek mythology.** Fully cosmetic — the boon-givers could be corporate
|
|
85
|
+
sponsors or rival chefs. The *draft-from-named-benefactors* structure is
|
|
86
|
+
what matters.
|
|
87
|
+
- **The specific family drama.** The *structure* (NPCs react to deaths) is
|
|
88
|
+
stealable; the exact cast is flavour — see [[world-narrative-delivery]].
|
|
89
|
+
- **Isometric hack-and-slash combat.** The meta/death loop is genre-agnostic;
|
|
90
|
+
bolt it onto a deckbuilder, a shmup, a racer.
|
|
91
|
+
- **Voice-acted dialogue at scale.** The reactive-NPC *hook* works with one
|
|
92
|
+
line of text per event.
|
|
93
|
+
|
|
94
|
+
## Composes into
|
|
95
|
+
|
|
96
|
+
- [[genre-roguelike]] — supplies the fair-discovery run this wraps.
|
|
97
|
+
- [[system-meta-progression]] — Hades is the reference for meta-as-narrative.
|
|
98
|
+
- [[system-build-diversity]] — the boon draft is the exemplar.
|
|
99
|
+
- [[system-emergent-systems]] — the remembering hub.
|
|
100
|
+
- [[world-narrative-delivery]] — story told through system events, not
|
|
101
|
+
cutscenes.
|
|
102
|
+
|
|
103
|
+
## Twist seams
|
|
104
|
+
|
|
105
|
+
- **Hades but you play the ones left behind** *(perspective)* — you're a hub
|
|
106
|
+
NPC managing the runners; death sends *them* home to you, and you spend
|
|
107
|
+
their currency. Inverts who owns the meta-loop.
|
|
108
|
+
- **Hades but the story only advances on a *win*** *(structure)* — flips the
|
|
109
|
+
emotional register: now every run is a fragile hope, and the meta-tree is a
|
|
110
|
+
reward for survival, not consolation. Bends [[system-meta-progression]].
|
|
111
|
+
- **Hades but cozy — death is a dinner party** *(tonal)* — no combat; each
|
|
112
|
+
"run" is a social escapade, and returning home unlocks recipes and
|
|
113
|
+
relationships. Keeps the death→home→story spine, drops the violence. Pairs
|
|
114
|
+
with [[genre-narrative-decisions]].
|
|
115
|
+
- **Hades but the hub is the game and the runs are backstory** *(perspective)*
|
|
116
|
+
— invert the weighting: you *manage* the house between other characters'
|
|
117
|
+
descents, and their deaths deliver content to *you*. The action loop becomes
|
|
118
|
+
ambient; the relationship sim becomes central. Feeds
|
|
119
|
+
[[system-emergent-systems]].
|
|
120
|
+
|
|
121
|
+
## See also
|
|
122
|
+
|
|
123
|
+
- [[genre-roguelike]] · [[system-meta-progression]] ·
|
|
124
|
+
[[system-build-diversity]] · [[world-narrative-delivery]]
|
|
125
|
+
- `docs/FUN.md#10-·-traditional-roguelike` — connectivity + winnability
|
|
126
|
+
verify.
|
|
127
|
+
- `sandboxes/procgen-lab/` — seeded run generation with `Rng` / `pickEntry`.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: anchor-into-the-breach
|
|
3
|
+
title: Into the Breach
|
|
4
|
+
kind: anchor
|
|
5
|
+
tags: [tactics, perfect-information, telegraph, turn-based, puzzle, positioning, grid]
|
|
6
|
+
summary: Perfect-information tactics — every enemy move is shown before it happens, and the game is the puzzle of rewriting that telegraphed future in one turn.
|
|
7
|
+
use-when: Designing a turn-based tactics game where fairness comes from total honesty and the fun is manipulating a known future, not guessing an unknown one.
|
|
8
|
+
composes-with: [genre-tactics, system-telegraphs, system-combat-model, system-counter-systems]
|
|
9
|
+
anchors: [anchor-into-the-breach]
|
|
10
|
+
verify-with: docs/FUN.md#12-·-turn-based-tactics-into-the-breach-like
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Into the Breach
|
|
14
|
+
|
|
15
|
+
**What it is.** A compact turn-based tactics game on an 8×8 grid. Enemies
|
|
16
|
+
telegraph exactly what they'll do next turn; you have three mechs and a
|
|
17
|
+
fistful of moves to shove, block, and reposition so the incoming attacks land
|
|
18
|
+
on *nothing* — or on each other.
|
|
19
|
+
|
|
20
|
+
**Player fantasy / why it's fun.** *I am a puzzle-solver defusing the future.*
|
|
21
|
+
The pull is **perfect information**: nothing is hidden, nothing is
|
|
22
|
+
random-to-your-face, so every loss is *your* miscalculation and every clean
|
|
23
|
+
turn feels like a proof you found. It's chess where the opponent shows their
|
|
24
|
+
move and dares you to invalidate it.
|
|
25
|
+
|
|
26
|
+
## Design DNA
|
|
27
|
+
|
|
28
|
+
Invert the fog. Where most tactics hide enemy intent behind hit-chances and
|
|
29
|
+
initiative, Into the Breach **shows everything** — targets, damage, order —
|
|
30
|
+
and makes the game about *editing* that plan. Your verbs aren't mostly damage;
|
|
31
|
+
they're **displacement**: push an enemy off its target, into another enemy,
|
|
32
|
+
into a hazard. The threat is real, the answer is spatial, and the board is
|
|
33
|
+
small enough to solve fully in your head.
|
|
34
|
+
|
|
35
|
+
Perfect information changes what "skill" means. In a hidden-info tactics game,
|
|
36
|
+
skill is partly *managing variance* — hedging against the roll. Here there is
|
|
37
|
+
no roll to hedge; skill is *pure spatial reasoning*, and a loss is
|
|
38
|
+
unambiguously a puzzle you solved wrong. That honesty is a design constraint
|
|
39
|
+
with teeth: every telegraph you show must resolve *exactly* as shown, or the
|
|
40
|
+
whole contract collapses. The reward is that hard turns feel *solvable* rather
|
|
41
|
+
than *unlucky* — the player always believes a perfect answer exists, and
|
|
42
|
+
usually it does.
|
|
43
|
+
|
|
44
|
+
Constraint is the engine: tiny grid, few units, few moves, one objective —
|
|
45
|
+
protect the buildings. Depth comes from interactions, not scale. Because you
|
|
46
|
+
win by *prevention* rather than *elimination*, the state space stays small
|
|
47
|
+
enough to reason about exhaustively, which is exactly why the puzzle lands.
|
|
48
|
+
|
|
49
|
+
## Load-bearing structures
|
|
50
|
+
|
|
51
|
+
| Structure | Why it works |
|
|
52
|
+
|---|---|
|
|
53
|
+
| **Telegraphs as directions, not target tiles** | Store "this bug attacks *this way*," so pushing it *rewrites the outcome*. This is the single most important implementation choice. FUN.md truth. [[system-telegraphs]]. |
|
|
54
|
+
| **Perfect information, perfect honesty** | What's shown is exactly what resolves — no hidden rolls. Fairness is structural, so hard turns feel solvable. |
|
|
55
|
+
| **Displacement as the primary verb** | Push/pull/block beats raw damage — you win by redirecting threats onto each other or into hazards. [[system-combat-model]] / [[system-counter-systems]]. |
|
|
56
|
+
| **Tiny bounded board** | 8×8 keeps the state space small enough to *fully reason about* — the puzzle is tractable by design. |
|
|
57
|
+
| **Protect-the-objective win condition** | You don't need to kill everything; you need the buildings to survive. Reframes "win" as damage-*prevention*. [[system-encounter-design]]. |
|
|
58
|
+
| **Both proofs per scenario** | A winning line AND a losing do-nothing must exist — a threat a null turn survives isn't a threat. FUN.md law 4. |
|
|
59
|
+
| **Run structure with persistent pilots** | Light meta (pilot XP, mech unlocks) wraps the tactical puzzles into a campaign. [[system-meta-progression]]. |
|
|
60
|
+
|
|
61
|
+
## What to steal
|
|
62
|
+
|
|
63
|
+
- **Show the enemy's move, then make the game about editing it.** The whole
|
|
64
|
+
design flips from prediction to manipulation. This is the reusable core.
|
|
65
|
+
- **Store telegraphs as directions on units, not fixed target tiles** — so a
|
|
66
|
+
push *changes* the outcome. (FUN.md §12; this is the load-bearing data
|
|
67
|
+
choice.)
|
|
68
|
+
- **Make displacement a first-class verb.** Redirecting a threat is more
|
|
69
|
+
interesting than out-damaging it, and it turns enemies into weapons.
|
|
70
|
+
- **Keep the board tiny and the objective defensive.** Solvability comes from
|
|
71
|
+
bounded scale + "protect," not "eliminate."
|
|
72
|
+
- **Ship both proofs per encounter:** a winning line and a losing null (FUN.md
|
|
73
|
+
law 4); prove each mechanic — push, bump, redirect — in isolation. A 1-ply
|
|
74
|
+
greedy bot over `structuredClone`d state is a real baseline defender and a
|
|
75
|
+
completability check in one.
|
|
76
|
+
- **Reframe the win condition as *prevention*.** "Protect the objective"
|
|
77
|
+
instead of "kill everything" keeps the board small, makes displacement
|
|
78
|
+
matter more than damage, and turns every enemy into a tool rather than just
|
|
79
|
+
a target.
|
|
80
|
+
|
|
81
|
+
## What's just theme (drop it)
|
|
82
|
+
|
|
83
|
+
- **Kaiju / mech / time-travel fiction.** Cosmetic; the puzzle is theme-blind.
|
|
84
|
+
- **The specific squads.** *Squad = a coherent verb-set with an identity* is
|
|
85
|
+
structural; "Rift Walkers vs Rusting Hulks" is flavour —
|
|
86
|
+
[[system-faction-asymmetry]].
|
|
87
|
+
- **The grid being 8×8.** *Small enough to fully reason about* is the rule;
|
|
88
|
+
the exact number is tuning.
|
|
89
|
+
- **Sci-fi VFX.** The threat only needs to *read* its direction and damage
|
|
90
|
+
clearly — [[pattern-readability]].
|
|
91
|
+
|
|
92
|
+
## Composes into
|
|
93
|
+
|
|
94
|
+
- [[genre-tactics]] — its canonical anchor; the rewrite-the-future loop lives
|
|
95
|
+
there.
|
|
96
|
+
- [[system-telegraphs]] — the exemplar of intent-as-direction.
|
|
97
|
+
- [[system-combat-model]] — displacement-first resolution.
|
|
98
|
+
- [[system-counter-systems]] — turning threats against each other.
|
|
99
|
+
- [[system-encounter-design]] — protect-the-objective scenario design.
|
|
100
|
+
|
|
101
|
+
## Twist seams
|
|
102
|
+
|
|
103
|
+
- **Into the Breach but you play the swarm** *(perspective)* — you set the
|
|
104
|
+
telegraphs; a defender edits them; asymmetric two-side design. Feeds
|
|
105
|
+
[[system-coop-and-competition]] / [[system-faction-asymmetry]].
|
|
106
|
+
- **Into the Breach but real-time with a freeze verb** *(mechanic-swap)* — the
|
|
107
|
+
"shown future" becomes a pausable prediction line you scrub and rewrite.
|
|
108
|
+
Bends the turn structure while keeping perfect information.
|
|
109
|
+
- **Into the Breach but the objective is to *cause* the chain reaction**
|
|
110
|
+
*(constraint)* — Rube-Goldberg tactics: you can't attack directly, only
|
|
111
|
+
nudge, so every kill is a redirect. Sharpens displacement into the *only*
|
|
112
|
+
verb.
|
|
113
|
+
- **Into the Breach but tonal — you're a crossing guard, not a soldier**
|
|
114
|
+
*(tonal)* — the telegraphed threats become traffic, weather, or a panicking
|
|
115
|
+
crowd; you displace *hazards away from people* rather than bugs off
|
|
116
|
+
buildings. Same perfect-information displacement puzzle, cozy register.
|
|
117
|
+
Pairs with [[pattern-readability]].
|
|
118
|
+
|
|
119
|
+
## See also
|
|
120
|
+
|
|
121
|
+
- [[genre-tactics]] · [[system-telegraphs]] · [[system-counter-systems]]
|
|
122
|
+
- `docs/FUN.md#12-·-turn-based-tactics-into-the-breach-like` — greedy-clear +
|
|
123
|
+
do-nothing-loses + per-mechanic proofs.
|
|
124
|
+
- `sandboxes/pathfinding-demo/` — grid movement / `astar` for reachable-tile
|
|
125
|
+
UI.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: anchor-it-takes-two
|
|
3
|
+
title: It Takes Two
|
|
4
|
+
kind: anchor
|
|
5
|
+
tags: [coop, asymmetric, set-piece, interdependence, mechanic-per-chapter, two-player]
|
|
6
|
+
summary: Asymmetric two-player coop as a parade of set-pieces — a fresh interlocking mechanic every chapter, each requiring both players' different verbs at once.
|
|
7
|
+
use-when: The design is a curated (non-random) two-player coop where each level introduces a new paired mechanic and players are mechanically interdependent.
|
|
8
|
+
composes-with: [genre-coop-chaos, system-coop-and-competition, system-onboarding, system-mastery-curve, system-encounter-design]
|
|
9
|
+
anchors: []
|
|
10
|
+
verify-with: docs/FUN.md#3-metroidvania
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# It Takes Two
|
|
14
|
+
|
|
15
|
+
**What it is.** A two-player coop adventure structured as a **parade of set-pieces**.
|
|
16
|
+
It is relentlessly novel: nearly every chapter hands the two players a **new pair
|
|
17
|
+
of interlocking abilities** — one controls time, the other space; one is the
|
|
18
|
+
anchor, the other swings — and builds a self-contained world around *that*
|
|
19
|
+
mechanic before discarding it for the next. The players' verbs are **different and
|
|
20
|
+
complementary**, so neither can progress alone.
|
|
21
|
+
|
|
22
|
+
**Player fantasy.** Two minds, one machine. The joy is the constant "oh, *that's*
|
|
23
|
+
how this works" of a fresh mechanic, plus the intimacy of a challenge only
|
|
24
|
+
solvable *together* — your ability is useless without your partner's, and theirs
|
|
25
|
+
without yours. It never gets stale because it never stays the same.
|
|
26
|
+
|
|
27
|
+
## Design DNA
|
|
28
|
+
|
|
29
|
+
The engine is **asymmetric interdependence, refreshed constantly**. Two ideas
|
|
30
|
+
carry it. First, **complementary verbs**: the two players hold *different*
|
|
31
|
+
abilities that only combine into a solution — mechanical interdependence, not two
|
|
32
|
+
copies of one character ([[system-coop-and-competition]]). Second, **novelty
|
|
33
|
+
pacing**: each chapter is a mini-game with its own mechanic, taught, mastered, and
|
|
34
|
+
retired within one level ([[system-onboarding]], [[pattern-pacing-and-tension]]).
|
|
35
|
+
The design trades *depth-per-mechanic* for *breadth-of-mechanics* — a
|
|
36
|
+
curated, authored sequence, the opposite of a procedural or endless loop.
|
|
37
|
+
|
|
38
|
+
## Load-bearing structures
|
|
39
|
+
|
|
40
|
+
| Structure | Why it works |
|
|
41
|
+
|---|---|
|
|
42
|
+
| **Complementary asymmetric verbs** | Each player's ability is incomplete alone; solutions require *combining* them — interdependence is mechanical, not social. → [[system-coop-and-competition]]. |
|
|
43
|
+
| **A new mechanic per chapter** | Constant novelty; boredom never sets in because nothing outstays its welcome. → [[pattern-pacing-and-tension]]. |
|
|
44
|
+
| **Teach→master→retire arc** | Each mechanic gets a full onboarding, a peak challenge, then exits — a complete little curve per chapter. → [[system-onboarding]], [[system-mastery-curve]]. |
|
|
45
|
+
| **Authored set-pieces** | Hand-crafted, non-random encounters tuned to *this* mechanic — spectacle and precision over replay variance. → [[system-encounter-design]]. |
|
|
46
|
+
| **Two-player-locked design** | Built for exactly two; no solo or scaling path — the interdependence is total. |
|
|
47
|
+
| **Spectacle as reward** | Big, legible, choreographed pay-offs punctuate each chapter. → [[pattern-juice-choreography]]. |
|
|
48
|
+
|
|
49
|
+
## What to steal
|
|
50
|
+
|
|
51
|
+
- **Complementary verbs, not duplicated ones**: give coop players *different*
|
|
52
|
+
abilities that only solve problems together. This is the antidote to "coop =
|
|
53
|
+
two of the same guy." → [[system-coop-and-competition]].
|
|
54
|
+
- **One mechanic per chapter, fully arced**: teach it, peak it, retire it. Breadth
|
|
55
|
+
as a pacing strategy keeps a long game fresh. → [[pattern-pacing-and-tension]].
|
|
56
|
+
- **Authored over procedural** when the fun is *novelty and spectacle*: curated
|
|
57
|
+
set-pieces beat random generation for a "wow, what's next" game.
|
|
58
|
+
- **Interdependence as the emotional hook**: needing your partner is what makes the
|
|
59
|
+
win *shared*. Design the reliance in, don't hope for it.
|
|
60
|
+
|
|
61
|
+
## What's just theme (drop it)
|
|
62
|
+
|
|
63
|
+
- The **relationship/toy-doll narrative** — flavour that motivates the coop, not
|
|
64
|
+
the loop. Any two-hander premise (heist duo, ghost + medium, pilot + gunner)
|
|
65
|
+
works. → [[world-theme-vectors]].
|
|
66
|
+
- **The specific chapter mechanics** — time control, magnetism, etc. are *content*;
|
|
67
|
+
the transferable part is "a fresh complementary pair each chapter."
|
|
68
|
+
- **AAA production / 3D platforming** — the DNA is asymmetric interdependence +
|
|
69
|
+
novelty pacing, which works in 2D, top-down, or puzzle form.
|
|
70
|
+
- **Exactly two players** — two is the purest form, but the "complementary verbs +
|
|
71
|
+
per-chapter mechanic" idea extends to 3–4 asymmetric roles.
|
|
72
|
+
|
|
73
|
+
## Composes into
|
|
74
|
+
|
|
75
|
+
- [[genre-coop-chaos]] — the coop parent, but its *authored/asymmetric* wing rather
|
|
76
|
+
than the frantic-party wing.
|
|
77
|
+
- [[system-coop-and-competition]] — complementary abilities and interdependence are
|
|
78
|
+
its home.
|
|
79
|
+
- [[system-onboarding]] — each chapter is a full teach-by-doing loop.
|
|
80
|
+
- [[system-mastery-curve]] — many small curves rather than one long one.
|
|
81
|
+
- [[system-encounter-design]] — authored set-pieces tuned per mechanic.
|
|
82
|
+
|
|
83
|
+
## Twist seams
|
|
84
|
+
|
|
85
|
+
- **It Takes Two but roguelite** *(structure)* — draw a random *pair* of
|
|
86
|
+
complementary abilities each run; the interdependence stays, the sequence
|
|
87
|
+
randomises. Pairs with [[system-meta-progression]].
|
|
88
|
+
- **It Takes Two but same screen, frantic** *(tonal)* — swap the authored calm for
|
|
89
|
+
a shared clock and chaos; complementary verbs under time pressure. Pairs with
|
|
90
|
+
[[anchor-overcooked]].
|
|
91
|
+
- **It Takes Two but solo with a swappable second body** *(perspective /
|
|
92
|
+
constraint)* — one player controls both complementary characters, toggling; the
|
|
93
|
+
interdependence becomes a puzzle of self-coordination.
|
|
94
|
+
- **It Takes Two but the partner is the level** *(mechanic-swap)* — one player
|
|
95
|
+
plays a character, the other *edits the world* (spawns platforms, moves hazards);
|
|
96
|
+
asymmetry becomes player-vs-designer coop.
|
|
97
|
+
|
|
98
|
+
## See also
|
|
99
|
+
|
|
100
|
+
- [`docs/FUN.md#3-metroidvania`](../../docs/FUN.md) — ability-gated progression and
|
|
101
|
+
negative gate proofs; the closest verify pattern for "new ability opens the
|
|
102
|
+
path" design (here two abilities gate together).
|
|
103
|
+
- [[genre-coop-chaos]] · [[anchor-overcooked]] (the party/chaos wing) ·
|
|
104
|
+
[[system-coop-and-competition]].
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: anchor-loop-hero
|
|
3
|
+
title: Loop Hero
|
|
4
|
+
kind: anchor
|
|
5
|
+
tags: [genre-fusion, placement, auto-combat, deckbuilder, roguelite, novel-loop, indirect-control]
|
|
6
|
+
summary: Three genres fused into one loop — you place tiles from a deck around a fixed track, an auto-battling hero walks it, and the terrain you build both feeds and threatens you.
|
|
7
|
+
use-when: Designing a novel loop by fusing genres, or an indirect-control game where the player shapes the world and watches consequences unfold.
|
|
8
|
+
composes-with: [genre-auto-battler, genre-deckbuilder, system-resource-loops, pattern-risk-reward]
|
|
9
|
+
anchors: [anchor-loop-hero]
|
|
10
|
+
verify-with: docs/FUN.md#11-·-roguelike-deckbuilder
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Loop Hero
|
|
14
|
+
|
|
15
|
+
**What it is.** Your hero auto-walks a looping track and auto-fights
|
|
16
|
+
whatever's on it. You don't control the hero — you place **terrain cards**
|
|
17
|
+
(meadows, rocks, vampire mansions) around the loop from a hand you drew, each
|
|
18
|
+
of which spawns loot, resources, *and* stronger enemies. Build up, cash out at
|
|
19
|
+
camp, go again.
|
|
20
|
+
|
|
21
|
+
**Player fantasy / why it's fun.** *I author the world; the hero lives in it.*
|
|
22
|
+
The pull is a **genuinely novel loop** stitched from three familiar genres —
|
|
23
|
+
placement, auto-battler, and deckbuilder — where your only lever is *the map
|
|
24
|
+
itself*, and every tile is a double-edged bet: more reward always means more
|
|
25
|
+
danger.
|
|
26
|
+
|
|
27
|
+
## Design DNA
|
|
28
|
+
|
|
29
|
+
Fuse three solved cores into one: the **auto-battler's** watch-don't-touch
|
|
30
|
+
combat, the **deckbuilder's** draft-and-play hand, and a **placement** puzzle
|
|
31
|
+
where the board is a fixed loop. Then bind them with one rule — **everything
|
|
32
|
+
you build both helps and threatens you.** A rock gives HP but a mountain
|
|
33
|
+
spawns harpies; a road-side spider farm is loot *and* a death trap. The
|
|
34
|
+
player's whole agency is *indirect*: you don't fight, you *cultivate the
|
|
35
|
+
conditions* of the fight, then decide when to flee to camp with your spoils.
|
|
36
|
+
|
|
37
|
+
The lesson Loop Hero teaches about *composition* is the most valuable thing to
|
|
38
|
+
extract: **fusing genres is not stapling them together — it's finding the one
|
|
39
|
+
rule that makes them the same game.** Three loops that would each be complete
|
|
40
|
+
on their own are welded by the single principle that every placement raises
|
|
41
|
+
reward and danger *together*. That binding rule is what stops the fusion from
|
|
42
|
+
feeling like three minigames in a trench coat; it makes the deckbuilder's
|
|
43
|
+
draft, the placement puzzle, and the auto-battle all *about the same
|
|
44
|
+
decision*. When you fuse genres (see [[process-composition]]), your real
|
|
45
|
+
design work is discovering that rule.
|
|
46
|
+
|
|
47
|
+
The novelty isn't a new verb — it's the *combination*, and the discipline of
|
|
48
|
+
satisfying all three parent genres at once. Indirect control is the delivery
|
|
49
|
+
vehicle: because you shape conditions rather than act, the placement, the
|
|
50
|
+
draft, and the fight are naturally one continuous authored consequence.
|
|
51
|
+
|
|
52
|
+
## Load-bearing structures
|
|
53
|
+
|
|
54
|
+
| Structure | Why it works |
|
|
55
|
+
|---|---|
|
|
56
|
+
| **Indirect control** | You never move the hero; you shape the world and watch. Agency lives in placement + when-to-retreat, not in reflexes. [[system-emergent-systems]]. |
|
|
57
|
+
| **Every tile is double-edged** | Each card raises reward *and* danger together — pure [[pattern-risk-reward]] baked into placement; there are no free builds. |
|
|
58
|
+
| **Fixed loop as the board** | The track never changes shape, so the puzzle is *what you add to it* — a bounded, legible placement space. |
|
|
59
|
+
| **Deck-drawn placement hand** | You play from a drawn hand of tiles, so runs vary and building is a draft. [[genre-deckbuilder]] / [[system-build-diversity]]. |
|
|
60
|
+
| **Auto-combat resolves the bets** | Watch-don't-touch fights turn your placement decisions into visible outcomes — the auto-battler's prep-then-watch. [[genre-auto-battler]]. |
|
|
61
|
+
| **Push-your-luck retreat** | Leave the loop to *keep* resources; die and you lose most of them — the tension of when to cash out. [[pattern-risk-reward]] / [[system-session-structure]]. |
|
|
62
|
+
| **Two economies (run vs base)** | Run resources feed a persistent base that unlocks new cards — meta-progression across loops. [[system-meta-progression]] / [[system-resource-loops]]. |
|
|
63
|
+
|
|
64
|
+
## What to steal
|
|
65
|
+
|
|
66
|
+
- **Fuse genres by binding them with one rule.** The parts (place / draft /
|
|
67
|
+
auto-fight) are borrowed; the invention is "everything you build both helps
|
|
68
|
+
and threatens you." A single binding rule turns three genres into one game.
|
|
69
|
+
See [[process-composition]].
|
|
70
|
+
- **Indirect control.** Let the player author *conditions* and watch
|
|
71
|
+
consequences — agency through the world, not the avatar. Distinct,
|
|
72
|
+
low-input, deeply strategic.
|
|
73
|
+
- **Double-edged placement.** Make every build-choice raise risk and reward
|
|
74
|
+
together, so there are no dominant plays — only bets.
|
|
75
|
+
[[pattern-risk-reward]].
|
|
76
|
+
- **Push-your-luck cash-out.** A "retreat to keep your spoils vs push for
|
|
77
|
+
more" decision gives every run a self-authored climax.
|
|
78
|
+
- **Two economies (run/base)** so loops feed a persistent unlock tree —
|
|
79
|
+
[[system-meta-progression]]. Run resources are volatile (lost on death
|
|
80
|
+
unless you retreat); base resources are permanent — the same
|
|
81
|
+
ephemeral/persistent split [[anchor-hades]] uses, here gating the card pool
|
|
82
|
+
itself.
|
|
83
|
+
- **Bound the board so placement is legible.** A fixed loop (rather than an
|
|
84
|
+
open map) keeps the placement space small enough that every tile's effect is
|
|
85
|
+
readable and every bet is comprehensible — the constraint is what makes
|
|
86
|
+
indirect control *strategic* rather than fiddly.
|
|
87
|
+
|
|
88
|
+
## What's just theme (drop it)
|
|
89
|
+
|
|
90
|
+
- **The pixel-fantasy / "the world was erased" fiction.** Cosmetic framing.
|
|
91
|
+
- **The specific tiles.** *Terrain cards that spawn paired reward+threat* is
|
|
92
|
+
structural; "vampire mansion vs oblivion" is flavour —
|
|
93
|
+
[[system-build-diversity]].
|
|
94
|
+
- **The hero classes.** Loadout variants; the loop is class-agnostic.
|
|
95
|
+
- **The retro aesthetic.** Aesthetic, not structure.
|
|
96
|
+
|
|
97
|
+
## Composes into
|
|
98
|
+
|
|
99
|
+
- [[genre-auto-battler]] — supplies the prep-then-watch combat.
|
|
100
|
+
- [[genre-deckbuilder]] — supplies the draft-and-play hand.
|
|
101
|
+
- [[system-resource-loops]] — the gather-during-loop, spend-at-base cycle.
|
|
102
|
+
- [[pattern-risk-reward]] — double-edged tiles + retreat timing.
|
|
103
|
+
- [[process-composition]] — Loop Hero is the exemplar of
|
|
104
|
+
genre-fusion-with-a-binding-rule.
|
|
105
|
+
|
|
106
|
+
## Twist seams
|
|
107
|
+
|
|
108
|
+
- **Loop Hero but the loop is a real map you traverse** *(structure)* — swap
|
|
109
|
+
the fixed track for an open path; placement becomes route-authoring. Moves
|
|
110
|
+
toward [[genre-exploration]].
|
|
111
|
+
- **Loop Hero but two players share one loop — one places, one fights**
|
|
112
|
+
*(perspective)* — split indirect and direct control across a coop pair; the
|
|
113
|
+
placer's bets are the fighter's problem. Feeds
|
|
114
|
+
[[system-coop-and-competition]].
|
|
115
|
+
- **Loop Hero but tonal — you're gardening, not adventuring** *(tonal)* — the
|
|
116
|
+
double-edged tiles become plants that yield harvest *and* pests; auto-combat
|
|
117
|
+
becomes an auto-tending sim. Pairs with [[genre-farming-sim]].
|
|
118
|
+
- **Loop Hero but the binding rule is scarcity, not danger** *(constraint)* —
|
|
119
|
+
every tile you place *consumes* a shared budget that also powers the hero,
|
|
120
|
+
so building up literally starves your walker; the double-edge becomes
|
|
121
|
+
economic rather than combat. Sharpens the "everything helps and threatens"
|
|
122
|
+
rule along a new axis. Pairs with [[system-resource-loops]].
|
|
123
|
+
|
|
124
|
+
## See also
|
|
125
|
+
|
|
126
|
+
- [[genre-auto-battler]] · [[genre-deckbuilder]] · [[process-composition]] ·
|
|
127
|
+
[[pattern-risk-reward]]
|
|
128
|
+
- `docs/FUN.md#11-·-roguelike-deckbuilder` — draft delta + win-rate window
|
|
129
|
+
(the deck parent).
|
|
130
|
+
- `sandboxes/procgen-lab/` — `Rng`/`pickEntry` for weighted tile-hand draws.
|
|
131
|
+
- `sandboxes/pathfinding-demo/` — loop/route traversal reference.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: anchor-nuclear-throne
|
|
3
|
+
title: Nuclear Throne
|
|
4
|
+
kind: anchor
|
|
5
|
+
tags: [twin-stick, roguelite, arcade, tight-loop, permadeath, mutation, execution]
|
|
6
|
+
summary: Twin-stick arcade roguelite built for the tight loop — fast lethal runs, mutation drafts on level-up, and a skill ceiling that lives in your hands.
|
|
7
|
+
use-when: Designing a fast, lethal, execution-first run-based shooter where the core minute is so tight that "just one more run" carries the whole game.
|
|
8
|
+
composes-with: [genre-horde-survival, genre-roguelike, system-build-diversity, system-mastery-curve]
|
|
9
|
+
anchors: [anchor-nuclear-throne]
|
|
10
|
+
verify-with: docs/FUN.md#6-·-twin-stick-horde-survival-vampire-survivors-like
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Nuclear Throne
|
|
14
|
+
|
|
15
|
+
**What it is.** A brutal twin-stick shooter roguelite: aim and fire freely,
|
|
16
|
+
clear a room of enemies, take the level-up mutation, and push deeper. Runs are
|
|
17
|
+
short and lethal, death is permanent, and the whole game is the *feel* of the
|
|
18
|
+
shooting.
|
|
19
|
+
|
|
20
|
+
**Player fantasy / why it's fun.** *My hands are the build.* Where
|
|
21
|
+
[[anchor-vampire-survivors]] auto-fires, Nuclear Throne puts the trigger in
|
|
22
|
+
your grip — the pull is **execution mastery in a tight arcade loop**: reading
|
|
23
|
+
a room, dodging, aiming, and choosing mutations on the fly, all fast enough
|
|
24
|
+
that a full run is minutes and a death costs you nothing but the impulse to
|
|
25
|
+
hit "again."
|
|
26
|
+
|
|
27
|
+
## Design DNA
|
|
28
|
+
|
|
29
|
+
Perfect the **core minute** — movement, aim, weapon feel, enemy reads — until
|
|
30
|
+
the second-to-second is so satisfying that repetition is the reward, then wrap
|
|
31
|
+
it in a **roguelite run** so every attempt is fresh and permadeath keeps the
|
|
32
|
+
stakes taut. The build layer (mutations, weapon pickups) is light and
|
|
33
|
+
*reactive*: you draft from what the run gives you, not from a plan. Depth is
|
|
34
|
+
80% in your hands, 20% in the draft — the inverse of Vampire Survivors, and
|
|
35
|
+
the reason the same horde substrate feels like a different genre.
|
|
36
|
+
|
|
37
|
+
The dial worth internalising: **the same survive-the-room substrate spans an
|
|
38
|
+
entire genre axis, and the position on it is set by one choice — who pulls the
|
|
39
|
+
trigger.** Automate the firing and shift weight to the build, and you get
|
|
40
|
+
[[anchor-vampire-survivors]]: a low-input, build-forward power fantasy. Put
|
|
41
|
+
the trigger back in the player's hands and shift weight to execution, and you
|
|
42
|
+
get Nuclear Throne: a high-input, skill-forward arcade run. Neither is "more
|
|
43
|
+
roguelite"; they're the same loop tuned to opposite skill sources. Knowing
|
|
44
|
+
this lets you *place* a design on that axis deliberately instead of by
|
|
45
|
+
accident.
|
|
46
|
+
|
|
47
|
+
Lethality is the point: enemies hit hard, so *reading and reacting* — not
|
|
48
|
+
tanking — is the skill. That only stays fair if attacks telegraph; a lethal
|
|
49
|
+
enemy with no tell is a coin flip, a lethal enemy with a clear windup is a
|
|
50
|
+
test you can pass.
|
|
51
|
+
|
|
52
|
+
## Load-bearing structures
|
|
53
|
+
|
|
54
|
+
| Structure | Why it works |
|
|
55
|
+
|---|---|
|
|
56
|
+
| **The core minute, over-tuned** | Aim, dash, weapon recoil, enemy tells — the moment-to-moment is the product. Feel is the design budget. [[system-combat-model]] / [[system-mastery-curve]]. |
|
|
57
|
+
| **Active aim + free fire** | You control the trigger, so execution (not just positioning) is the skill — the twin-stick counterweight to auto-attack. [[system-combat-model]]. |
|
|
58
|
+
| **Level-up mutation draft** | Choose-1-of-N run-scoped upgrades on each level clear — a light build layer that reacts to the run. [[system-build-diversity]] / [[system-reward-schedules]]. |
|
|
59
|
+
| **Short, lethal, permadeath runs** | Minutes-long attempts + real lethality = high stakes with a cheap reset. The "one more run" engine. [[system-session-structure]]. |
|
|
60
|
+
| **Reactive, not planned, builds** | You draft from weapon drops + offered mutations; adaptability beats a fixed plan. [[pattern-emergence]]. |
|
|
61
|
+
| **Readable enemy tells** | Lethal only works if attacks telegraph; reaction windows keep death fair, not cheap. [[system-telegraphs]]. |
|
|
62
|
+
| **Character-as-starting-verb** | Each unlockable character has a distinct active power — light asymmetry that reshapes the run. [[system-faction-asymmetry]] (unit-scale). |
|
|
63
|
+
|
|
64
|
+
## What to steal
|
|
65
|
+
|
|
66
|
+
- **Over-tune the core minute first.** Before content, before meta, make the
|
|
67
|
+
second-to-second *feel* undeniable. In a tight-loop game, the minute IS the
|
|
68
|
+
game.
|
|
69
|
+
- **Put execution back in the player's hands** (active aim/fire) when you want
|
|
70
|
+
a *skill* game rather than a *build* game — the dial between Nuclear Throne
|
|
71
|
+
and Vampire Survivors is exactly this.
|
|
72
|
+
- **Keep the build layer light and reactive.** Draft-1-of-N mutations from
|
|
73
|
+
what the run offers; don't force a plan. Adaptability is the fun.
|
|
74
|
+
- **Short + lethal + permadeath + instant restart.** The four together create
|
|
75
|
+
"one more run." Wire instant retry via [[system-grace]] /
|
|
76
|
+
[[system-save-and-checkpoint]].
|
|
77
|
+
- **Telegraph lethal attacks** so death reads as your misplay, and inherit the
|
|
78
|
+
horde verify (orbit/dodge bot survives; assert peak-alive; ms/step budget —
|
|
79
|
+
FUN.md §6).
|
|
80
|
+
- **Give each character one starting verb, not a stat block.** Light asymmetry
|
|
81
|
+
— a distinct active power per unlockable character — reshapes the whole run
|
|
82
|
+
without a class tree, and gives the meta a reason to keep unlocking. See
|
|
83
|
+
[[system-faction-asymmetry]] at unit scale.
|
|
84
|
+
|
|
85
|
+
## What's just theme (drop it)
|
|
86
|
+
|
|
87
|
+
- **Post-apocalyptic mutants.** Cosmetic.
|
|
88
|
+
- **The specific weapons/mutations.** *Weapon archetypes* and *mutation
|
|
89
|
+
categories* are structural; the roster is content —
|
|
90
|
+
[[system-build-diversity]].
|
|
91
|
+
- **The pixel gore.** Aesthetic; the *impact feedback* is structural juice —
|
|
92
|
+
[[pattern-juice-choreography]].
|
|
93
|
+
- **The "Nuclear Throne" endgame framing.** A win condition wrapper; the loop
|
|
94
|
+
is fun from level one.
|
|
95
|
+
|
|
96
|
+
## Composes into
|
|
97
|
+
|
|
98
|
+
- [[genre-horde-survival]] — shares the survive-the-room substrate
|
|
99
|
+
(execution-first variant).
|
|
100
|
+
- [[genre-roguelike]] — supplies the fresh, lethal run.
|
|
101
|
+
- [[system-mastery-curve]] — hands-on execution as the skill ceiling.
|
|
102
|
+
- [[system-build-diversity]] — reactive mutation drafts.
|
|
103
|
+
- [[system-combat-model]] — active-aim twin-stick feel.
|
|
104
|
+
|
|
105
|
+
## Twist seams
|
|
106
|
+
|
|
107
|
+
- **Nuclear Throne but auto-fire** *(mechanic-swap)* — slide the dial the
|
|
108
|
+
other way and it becomes Vampire Survivors; useful to know the *same
|
|
109
|
+
substrate* spans both by moving one verb from hands to automation.
|
|
110
|
+
- **Nuclear Throne but the ammo is a shared coop pool** *(perspective)* — two
|
|
111
|
+
players draw fire from one reserve; execution becomes negotiated. Feeds
|
|
112
|
+
[[system-coop-and-competition]].
|
|
113
|
+
- **Nuclear Throne but one life, one weapon, no drops** *(constraint)* — strip
|
|
114
|
+
the roguelite draft entirely; pure arcade execution on a fixed loadout.
|
|
115
|
+
Bends it back toward a classic score-attack shooter.
|
|
116
|
+
- **Nuclear Throne but tonal — the "shooting" is cleaning/tidying under time
|
|
117
|
+
pressure** *(tonal)* — keep the over-tuned core minute and the reactive
|
|
118
|
+
draft, recolor the verb from violence to frantic housework; the swarm
|
|
119
|
+
becomes mess, the weapons become tools. Same execution loop, cozy-chaotic
|
|
120
|
+
register.
|
|
121
|
+
|
|
122
|
+
## See also
|
|
123
|
+
|
|
124
|
+
- [[genre-horde-survival]] · [[anchor-vampire-survivors]] ·
|
|
125
|
+
[[system-combat-model]] · [[system-mastery-curve]]
|
|
126
|
+
- `docs/FUN.md#6-·-twin-stick-horde-survival-vampire-survivors-like` —
|
|
127
|
+
orbit/dodge-bot + peak-alive verify.
|
|
128
|
+
- `sandboxes/juice-lab/` — hit-impact, muzzle, screenshake choreography.
|
|
129
|
+
- `sandboxes/particle-studio/` — pooled cosmetic effects (deletable per law
|
|
130
|
+
6).
|