Data spine: - Schema v1 ratified (TECH.md, C-owned). Additive over v0: schema/par/next, segment name, cross-section placement (theta/rho as a FRACTION of safe radius), spread, span, pickup+gate event types, hazard params. STUB_LEVEL synced (that const only, per ROUND1 §Lane C.1) — world.hash() unchanged (1bdf001), geometry provably untouched. - levels/index.js: registry + loader (node+browser, no THREE), real schema selfcheck (qa's --selfcheck hook is now live) and a pacing simulator (--sim). Consumes the other lanes' contracts live rather than restating them: A's biomes.js for ids and wave.amp+breathe, A's SKIN, B's tuning.js hull radius, B's balance.js for scores. - levels/enemies.js (fiction id -> archetype join table), levels/difficulty.js. L2_esophagus — the vertical slice, complete: 3600 units, 7 beats, 47 events, 65 enemies, 10 checkpoints, 3 samples, reflux-surge finale. L1/L3 skeletons (shape only). Anatomy is the level designer: the three real esophageal constrictions are the three setpieces, and all three enemies are real esophageal pathology (bolus chunk, eosinophilic esophagitis, candida esophagitis). Measured (node web/js/levels/index.js --selfcheck|--sim; qa GREEN): - selfcheck 3/3 valid, exit 0. - pressure curve 0.27 -> 2.14 -> 4.35 -> 0.69 -> 4.53 -> 6.35 -> 4.40 (breather/pressure/ spike/breather/pressure/peak/finale). - par 3:30 vs measured 2:47 speedrun / 3:19 par-pace / 4:22 timid; par.score 9000 of a 9400 kill budget (95%), computed from B's scores. - all 10 checkpoint gaps within the <=30s death-cost law (max 28.8s); min clearance 2.73. Two contract collisions found and resolved (LANE_C_NOTES): - Biome ids: authored mouth/pharynx/cardia/pylorus; A's registry has six canonical ids and rejected all four. A is right — biome = look, segments[].name = anatomy. Conformed. - Balance: my first enemies.js restated hp/size/speed/score that B owns in balance.js. Cut to a join table; index.js reads B's scores via scoreFor(). Caught live: A raised esophagus wave.amp 0.9 -> 1.4 mid-session, making the diaphragmatic hiatus unflyable (2.33 vs the 2.5 floor). Widened 6.5 -> 6.8. The invariant also failed my own aortic constriction's first draft (radius 7, symmetric squeeze) -> radius 9, directional. No in-engine flythrough: ?stub=1&lvl= does not compose (snippet offered to F) and the stub is single-segment, so it could only render beat 1. The pacing evidence is a kinematic model, not a playtest — it proves L2 is flyable, paced and survivable, not that it feels good. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
121 lines
7.7 KiB
Markdown
121 lines
7.7 KiB
Markdown
# GUTS — Game Design Document (v1, round 1)
|
||
|
||
Owner: Lane C (with F sign-off). This v1 settles the open questions from the original
|
||
concept discussion; C refines numbers/encounters in-lane, but the **decisions** below are
|
||
integrator-settled for v1.
|
||
|
||
> **⚠ Lane C round-1 refinements** (2026-07-16) — changed in place, per charter:
|
||
> - **§Structure** — "6–10 min/level" replaced with **per-level** targets. L2 is deliberately
|
||
> the short one: it is the speed level, and a 6-minute esophagus is a corridor.
|
||
> - **§Enemies** — esophagus roster filled in (eosinophil swarm, candida bloom). All three
|
||
> L2 enemies are real esophageal pathology; see LANE_C_NOTES.md §L2 roster.
|
||
> - **§Structure** — L2's signature mechanic now names the three real anatomical
|
||
> constrictions, which are the level's three setpieces.
|
||
>
|
||
> Not changed, and not up for relitigation in-lane: the flow-locked hybrid, the 5+1 level
|
||
> structure, the coat/hull split, the boss roster. Boss *specs* (phases/telegraphs/windows)
|
||
> are in LANE_C_NOTES.md §Boss specs and fold into the GDD once F signs them off.
|
||
|
||
## Fantasy & tone
|
||
|
||
You are ENDO-1, a one-pilot micro-probe injected to clear a patient's digestive tract of a
|
||
hostile infestation, mouth to exit. Tone: playful-gross medical sci-fi — *Fantastic Voyage*
|
||
wonder, *Star Fox* arcade flow, a wink of *Osmos*-y biology-nerd humor. The body is not the
|
||
enemy; it's the weather. Enemies are the infestation + an immune system that can't tell
|
||
you're friendly.
|
||
|
||
## DECISION — movement model: "flow-locked" hybrid
|
||
|
||
Neither pure rail nor pure 6DOF — **the anatomy picks the mode**:
|
||
|
||
- **Tube mode** (esophagus, intestines): peristalsis is a forward current you cannot fully
|
||
fight. Base flow speed comes from the biome (`world.biomeAt(s).flow`); throttle gives
|
||
±40%, boost gives short +120% bursts. Full analog movement in the cross-section disc
|
||
(mouse/stick aims, ship banks). You steer *within* the tube; the tube carries you. This is
|
||
the Star Fox layer: readable, forward, fast.
|
||
- **Arena mode** (oral cavity, stomach, boss lairs): the same controller unlocked to free
|
||
6DOF, Descent-style, no gravity. Slower, spatial, exploratory. This is where fights and
|
||
secrets breathe.
|
||
- Transitions are diegetic: sphincters are literal gates between modes.
|
||
|
||
Rationale: pure rail wastes the stomach; pure 6DOF makes the esophagus a boring corridor.
|
||
The hybrid also keeps collision cheap in the 90% case (tube = radius test).
|
||
|
||
## DECISION — structure: 5 levels + gates + 1 secret
|
||
|
||
Each level ends at a real anatomical valve, staged as a gate ritual or boss:
|
||
|
||
| # | level | mode | signature mechanic | exit gate |
|
||
|---|---|---|---|---|
|
||
| 1 | **Oral Cavity** | arena (tutorial) | dodging molar crush-cycles, saliva tides | **Epiglottis** — timing gate: dive on the swallow |
|
||
| 2 | **Esophagus** | tube (speed run) | surf peristalsis crests for boost; the three real constrictions (**aortic squeeze** → **diaphragmatic ring gate**) as setpieces; **reflux surge** chase finale | **Cardiac sphincter** — outrun the acid wall through it |
|
||
| 3 | **Stomach** | arena (the acid sea) | pH as environmental damage; mucus shallows are safe lanes; churn cyclones | **BOSS: Pyloric Guardian** — the sphincter itself |
|
||
| 4 | **Small Intestine** | tube (the long maze) | villi forest occludes sightlines; bile slicks; immune hunters | **MINIBOSS: Tapeworm chase** → ileocecal valve |
|
||
| 5 | **Large Intestine** | tube→arena (gas swamps) | flammable gas pockets: shooting inside one detonates it (hurts everyone — risk/reward); darkness + your scanner light | **BOSS: The Blockage** — then triumphant ejection finale |
|
||
| S | **Appendix** (secret) | arena | hidden lair off the cecum, bonus loot + lore | — |
|
||
|
||
**Per-level targets** (C, round 1 — replaces a flat "6–10 min/level", which flattened the
|
||
levels into each other). Length is an identity, not a budget: the campaign should *breathe*.
|
||
|
||
| # | level | par | first playthrough | why |
|
||
|---|---|---|---|---|
|
||
| 1 | Oral Cavity | 5:00 | ~6 min | tutorial: slow, safe, over-explained on purpose |
|
||
| 2 | **Esophagus** | **3:30** | ~4–5 min | **the sprint.** Shortest level in the game. You cannot stop in a flow-locked tube, so its length is bounded by physics: even a timid run is 4:22 and a full-throttle run is 2:47 (measured — `levels/index.js --sim`) |
|
||
| 3 | Stomach | 9:00 | ~10 min | the big room + first real boss; arenas need time to breathe |
|
||
| 4 | Small Intestine | 10:00 | ~11 min | the long maze — the campaign's endurance beat |
|
||
| 5 | Large Intestine | 9:00 | ~10 min | darkness, gas risk/reward, the final boss |
|
||
|
||
~45 min campaign including deaths and retries. Built to replay for medals.
|
||
|
||
## Player systems
|
||
|
||
- **Hull** (HP, pickups only) + **Mucus coat** (regenerating shield; drained continuously by
|
||
ambient pH/enzymes — biome-dependent — and by hits). The coat is the pH mechanic: in the
|
||
stomach open acid, coat drain is brutal; hugging mucus shallows pauses it.
|
||
- **Weapons:** primary **lysozyme cannon** (fast pellet stream, infinite, heat-limited);
|
||
secondary **antacid torpedo** (limited ammo, AoE, *also neutralizes an acid zone for ~10 s*
|
||
— the dual-use is the interesting bit).
|
||
- **Boost** with a short i-frame window at spend; recharges from nutrient orbs.
|
||
- **Pickups:** nutrient orbs (score+boost), mucin globs (coat refill), B12 cell (hull),
|
||
antacid ammo, **biopsy samples** (3 hidden per level — the collectible).
|
||
|
||
## Enemies (v1 roster — B implements behaviors, D makes them pretty later)
|
||
|
||
All emissive-coded (ART_BIBLE): hostile = hot amber/red, projectiles = white-hot,
|
||
neutral flora = cyan (turns hostile if shot).
|
||
|
||
| enemy | biome | behavior archetype |
|
||
|---|---|---|
|
||
| amylase droplet | mouth | slow floater, corrosive contact aura |
|
||
| bolus chunk | esophagus | tumbling debris in the flow (crush). Drifts *slower* than the current, so it reads as traffic you overtake, never as a chaser |
|
||
| eosinophil swarm | esophagus | small fast seekers (eosinophilic esophagitis: immune cells that mistake ENDO-1 for the parasite they were built for). Faster than the flow — you cannot outrun them, only shoot or bank |
|
||
| candida bloom | esophagus | wall-mounted plaque colony firing spore clusters (candida esophagitis). Owns an arc of the cross-section: turns "which side do I fly" into a decision |
|
||
| pepsin swarm | stomach | small fast seekers, dissolve on kill |
|
||
| churn cyclone | stomach | environmental vortex, flings you |
|
||
| macrophage | small int. | big slow hunter; grab → mash to escape; eats other corpses to grow |
|
||
| antibody turret (Peyer's patch) | small int. | wall-mounted, fires homing Y-shaped darts |
|
||
| gut flora colony | large int. | neutral biofilm; shot ⇒ angry E. coli swarm |
|
||
| gas vent | large int. | hazard: thrust-shove + flammable cloud |
|
||
|
||
Bosses: **Pyloric Guardian** (armored sphincter; destroy mucosal nodes during open-cycles
|
||
while dodging acid spouts, arena slowly churns), **Tapeworm** (tube chase; shoot segment
|
||
weak-points as it coils around the canal ahead/behind), **The Blockage** (compacted-mass
|
||
fortress with embedded turrets and gas pockets; peel it layer by layer, finale = the canal
|
||
itself expels you both).
|
||
|
||
## Scoring & replay
|
||
|
||
Star-Fox-style medals per level: score (kills × style multiplier, chained kills), par time,
|
||
biopsy samples, damageless-gate bonus. Combo meter feeds the music layer (E). Endless
|
||
"colonoscopy run" mode is V2 (see V2_IDEAS.md).
|
||
|
||
## Difficulty & assists
|
||
|
||
Three difficulties scale coat-drain, enemy density, boss timing windows. Assist toggles
|
||
(flow auto-center, aim magnetism) — arcade games live or die on feel accessibility.
|
||
|
||
## Open for C to design in-lane (not settled)
|
||
|
||
Exact level lengths/pacing curves, encounter tables per segment, par times, pickup economy,
|
||
boss phase timings, secret placement, tutorialization beats of level 1.
|