The two things I deferred out loud, built — and the second one turned out to be the primitive
the first was waiting on.
THE CHURN (the force primitive). Everything in hazards.js pushed the player RADIALLY; nothing
applied a tangential one, which is why both L3's cyclones and the Guardian's arena churn got
deferred. `churn` is now a hazard kind: a tangential impulse that REVERSES on a period, so it
cannot be leaned into, only re-read. Measured: 4.32 u/s of push, direction flipping.
- L3 s1100: cyclones spanning the sea, deliberately overlapping the first tide — the room
starts spinning you at the exact moment the safe air starts shrinking.
- The Pyloric Guardian carries its own (`def.churn` + per-phase `churnMul`), so C's spec is
finally honoured in full: "pushes you at the walls", x1.5 in P2, harder in P3. Measured
2.7 u/s on the player mid-fight. The boss.js header that said this was missing is corrected.
THE TAPEWORM (LANE_C_NOTES §2), the campaign's third pressure: a DISTANCE race. One new idea in
the schedule — `flee` — advances the boss's own s and drags its ring along at fixed offsets, so
6 proglottids string out 70 units down the tube ahead of you instead of sitting in a
cross-section. Fall 110 units behind and it is gone. Verified both ways: fall behind ->
"escaped" after 16.8s having seen only P1; keep up -> all three phases -> win. C's line was "a
chase you can lose without dying", and that is now literally the outcome table.
Placed at L4 s5460, immediately before the biofilm cash-out, so the chase and the reward land
together. L4's "no_miniboss_yet" note is replaced rather than left lying.
PRE-PLAYTEST SWEEP: 6/6 levels valid, all load with ZERO console errors, every level carries
exactly 3 biopsy samples, five bosses across the campaign (mast_cell / pyloric_guardian /
tapeworm / the_blockage / appendix_sovereign), 16,820 units of authored canal, and the chain
resolves L1 -> L2 -> L3 -> L4 -> L5 -> end with LS_appendix rejoining at L5.
Everything in the GDD's roster now exists except the numbers being right, and that is the part
only humans can tell us.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
158 lines
16 KiB
JSON
158 lines
16 KiB
JSON
{
|
|
"schema": 2,
|
|
"id": "L4_small_intestine",
|
|
"name": "Small Intestine",
|
|
"tagline": "The long maze",
|
|
"seed": 20260720,
|
|
"par": { "time": 600, "score": 10000, "samples": 3 },
|
|
"next": "L5_large_intestine",
|
|
"design": {
|
|
"owner": "Lane C",
|
|
"identity": "The endurance beat. Where L2 is a 3-minute sprint down a straight pipe, L4 is ten minutes of occluded, writhing maze at half the speed - the campaign's longest level and its slowest. Nothing here is faster than you; everything here is closer than you would like.",
|
|
"anatomy": "Real small bowel, real order: duodenal bulb -> descending duodenum (the ampulla, where bile and pancreatic juice enter) -> jejunum -> deep jejunum -> ileum -> terminal ileum -> ileocecal valve. The three acts are anatomical, not invented: Giardia colonises the duodenum and jejunum, and Peyer's patches (the antibody turrets) concentrate in the ileum. The level's difficulty curve IS the gut's own immune gradient - you fly from the quiet absorptive end into the lymphoid end, and the walls get angrier as you go.",
|
|
"scale": "Lumen radius 8-11 units (~2-2.5cm at 1 unit : 1mm) - genuinely narrower than the esophagus, and the biome's wave amp 1.5 eats more of it. 6000 units total, dilated as ever; the real jejunum+ileum is ~6m.",
|
|
"curve": "breather -> teach -> the maze -> pressure -> the lymphoid gauntlet -> SPIKE -> cash-out + valve. No single spike as sharp as L2's hiatus: L4's difficulty is CUMULATIVE. It wins by attrition, which is what an endurance level is for.",
|
|
"speed_identity": "flow 8-10 vs L2's 12-20. This is deliberate and it is the whole level: at 9 u/s you have time to look, and the fog (0.050, densest in the game outside the colon) plus curviness 0.65-0.70 means looking is exactly what you must do. L2 punishes bad reflexes; L4 punishes bad reading.",
|
|
"teach_then_test": "chyme (b1 solo -> b3 fields in the maze) / giardia (b2 solo in open water -> b6 three at once in the tightest tube) / segmentation ring (b2 open 70% -> b4 53% -> b6 43%) / peyers turret (b2 one on a clear sightline -> b5 three arcs at once, twice) / neutrophil (b2 three in the open -> b7 five on the run-in).",
|
|
"the_miniboss": "The Tapeworm runs at s5460, immediately before the biofilm cash-out - so the chase and the reward land together: catch it and the biome opens for you sixty units later. It is the campaign's only encounter you can LOSE without dying (it escapes at 110 units of gap), which is C's third pressure and the reason L4 does not simply end on a gate."
|
|
},
|
|
"segments": [
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Duodenal Bulb",
|
|
"length": 700,
|
|
"radius": { "base": 11, "wobble": 0.12 },
|
|
"curviness": 0.2,
|
|
"flow": 8,
|
|
"note": "BEAT 1 - breather. You are squeezed through the pylorus into the widest, calmest stretch of the level. Slowest flow in the game so far: after the stomach this reads as decompression, and it buys the player the seconds needed to learn that villi occlude and the tube bends."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Descending Duodenum",
|
|
"length": 900,
|
|
"radius": { "base": 10, "wobble": 0.18 },
|
|
"curviness": 0.35,
|
|
"flow": 9,
|
|
"note": "BEAT 2 - the teaching floor. Real: bile and pancreatic juice enter at the ampulla, so this is where the biome starts working on your coat. Every enemy type in the level is introduced here, alone, with a clear sightline - the same contract L2's cervical stretch honours."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Jejunum",
|
|
"length": 1100,
|
|
"radius": { "base": 10, "wobble": 0.22 },
|
|
"curviness": 0.65,
|
|
"flow": 10,
|
|
"note": "BEAT 3 - THE MAZE, and the level's identity. Highest curviness in the campaign so far: the tube writhes, fog 0.050 closes the sightline to a few segments, and everything you were taught 400 units ago is now behind a bend. Fastest flow in the level, because a maze you can stop and read is not a maze."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Deep Jejunum",
|
|
"length": 900,
|
|
"radius": { "base": 9.5, "wobble": 0.25 },
|
|
"curviness": 0.7,
|
|
"flow": 10,
|
|
"note": "BEAT 4 - pressure. The maze tightens by half a unit and adds the segmentation ring at a real duty cycle. This is the beat that decides whether a player has learned to read the tube or has been getting away with reflexes."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Ileum",
|
|
"length": 1000,
|
|
"radius": { "base": 10, "wobble": 0.2 },
|
|
"curviness": 0.5,
|
|
"flow": 9,
|
|
"note": "BEAT 5 - the lymphoid gauntlet, and the most anatomically honest beat in the game. Peyer's patches really are concentrated in the ileum, so this is where the antibody turrets live in numbers: two banks of three, each covering three arcs. The tube straightens out a little on purpose - the challenge here is arc denial, not sightlines, and stacking both would be a wall."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Terminal Ileum",
|
|
"length": 800,
|
|
"radius": { "base": 8, "wobble": 0.15 },
|
|
"curviness": 0.4,
|
|
"flow": 9,
|
|
"note": "BEAT 6 - SPIKE. The tightest tube in the level (8 base, and the biome's 1.5 wave takes a real bite out of it). The segmentation ring at its meanest duty cycle, turrets on the walls, and three Giardia in a lumen with nowhere to dodge - the latch is worst exactly where the room is smallest, which is the point."
|
|
},
|
|
{
|
|
"biome": "small_intestine",
|
|
"name": "Ileocecal Approach",
|
|
"length": 600,
|
|
"radius": { "base": 9, "wobble": 0.18 },
|
|
"curviness": 0.3,
|
|
"flow": 8,
|
|
"note": "BEAT 7 - the run-in. Opens back out and slows down for the cash-out: if you tended the bifido colonies and the akkermansia on the way through, the biofilm parts here and you cross the valve with an escort. If you sprayed them, you cross alone. Then the ileocecal valve - the one-way door into the colon."
|
|
}
|
|
],
|
|
"arenas": [],
|
|
"events": [
|
|
{ "s": 20, "type": "checkpoint", "name": "Duodenal Bulb" },
|
|
{ "s": 120, "type": "pickup", "kind": "nutrient_orb", "count": 3, "spread": 40, "note": "The orb line teaches the racing line before it pays anything - same opening contract as L2." },
|
|
{ "s": 200, "type": "spawn", "enemy": "bifido_colony", "count": 3, "spread": 80, "rho": 0.7, "note": "TEACH commensal, first thing in the level. Cyan off the racing line: brushing it sheds coat and banks BIOME STANDING, shooting it is the trap. L4 opens with the friend because its finale is the biofilm cash-out." },
|
|
{ "s": 290, "type": "checkpoint", "name": "Bulb Exit" },
|
|
{ "s": 360, "type": "spawn", "enemy": "chyme_clump", "count": 1, "note": "TEACH chyme: one clump, slow, unmissable, harmless if you steer. The L4 bolus." },
|
|
{ "s": 500, "type": "spawn", "enemy": "chyme_clump", "count": 3, "spread": 100, "note": "TEST chyme (mild): a small field in the widest tube of the level." },
|
|
{ "s": 555, "type": "checkpoint", "name": "Duodenal Flexure" },
|
|
{ "s": 640, "type": "pickup", "kind": "mucin_glob", "count": 1, "note": "Coat top-up as the bile stretch begins - the game pays you right before it charges you." },
|
|
|
|
{ "s": 720, "type": "spawn", "enemy": "giardia_latch", "count": 1, "note": "TEACH the latch, in its real home: Giardia colonises the duodenum. One, in open water, with room to boost. The player learns 'boost shakes it off' here or learns it at s5120 with three of them in a 8-unit tube." },
|
|
{ "s": 830, "type": "checkpoint", "name": "Ampulla" },
|
|
{ "s": 900, "type": "pickup", "kind": "antacid_ammo", "count": 2, "spread": 20, "note": "Bile and pancreatic juice enter at the ampulla; the level arms you where the chemistry changes." },
|
|
{ "s": 950, "type": "hazard", "kind": "ring_gate", "period": 4.0, "open": 2.8, "warn": 2.5, "note": "TEACH segmentation. Real: the small bowel's signature motion is segmentation - rhythmic ring contractions that churn rather than push. Open 70% of the time at flow 9, so you clear it without thinking. Its evil twin is at s4840." },
|
|
{ "s": 1000, "type": "spawn", "enemy": "chyme_clump", "count": 4, "spread": 120 },
|
|
{ "s": 1120, "type": "checkpoint", "name": "Duodenojejunal Flexure" },
|
|
{ "s": 1200, "type": "spawn", "enemy": "neutrophil_hunter", "count": 3, "spread": 50, "note": "TEACH immune hunters: three, open water, nothing else happening. Same lesson L2 taught with eosinophils - you cannot outrun them, you shoot or you bank." },
|
|
{ "s": 1300, "type": "pickup", "kind": "biopsy_sample", "count": 1, "theta": 2.36, "rho": 0.9, "note": "SAMPLE 1/3. Cost = proximity: wall-pinned in the tail of the hunter wave, so you take it while something is chasing you. Visible from the racing line the whole way in - the visible-but-costly law." },
|
|
{ "s": 1420, "type": "checkpoint", "name": "Jejunal Entry" },
|
|
{ "s": 1500, "type": "spawn", "enemy": "peyers_turret", "count": 1, "theta": 0, "note": "TEACH the turret on the straightest wall left in the level, with a clear 200-unit sightline. From here on they come in banks and behind bends." },
|
|
|
|
{ "s": 1700, "type": "checkpoint", "name": "Jejunum" },
|
|
{ "s": 1760, "type": "spawn", "enemy": "chyme_clump", "count": 4, "spread": 140, "note": "Traffic entering the maze: the clumps are the same as beat 1, the sightlines are not." },
|
|
{ "s": 1850, "type": "spawn", "enemy": "peyers_turret", "count": 2, "theta": [1.2, 4.5], "note": "TEST turret: two arcs covered, and at curviness 0.65 each one is a surprise on a blind bend. This is the beat that makes the maze a mechanic." },
|
|
{ "s": 1980, "type": "checkpoint", "name": "Jejunal Loop" },
|
|
{ "s": 2040, "type": "spawn", "enemy": "giardia_latch", "count": 2, "spread": 60, "note": "TEST the latch: two, in the writhing tube. Boosting one off while the other closes is the read." },
|
|
{ "s": 2150, "type": "spawn", "enemy": "akkermansia", "count": 2, "spread": 30, "rho": 0.5, "note": "The CHOICE node, on the racing line so it cannot be ignored: Akkermansia grazes your coat but banks standing fastest. In a level that ends at a biofilm gate, that trade finally has somewhere to be spent." },
|
|
{ "s": 2260, "type": "checkpoint", "name": "Mid Jejunum" },
|
|
{ "s": 2320, "type": "spawn", "enemy": "neutrophil_hunter", "count": 4, "spread": 70 },
|
|
{ "s": 2420, "type": "pickup", "kind": "mucin_glob", "count": 2, "spread": 30 },
|
|
{ "s": 2540, "type": "checkpoint", "name": "Jejunal Coils" },
|
|
{ "s": 2600, "type": "spawn", "enemy": "chyme_clump", "count": 5, "spread": 150 },
|
|
|
|
{ "s": 2820, "type": "checkpoint", "name": "Deep Jejunum" },
|
|
{ "s": 2880, "type": "spawn", "enemy": "peyers_turret", "count": 2, "theta": [0.4, 3.6], "note": "Opposite arcs: there is no free side, only a timed one." },
|
|
{ "s": 2950, "type": "spawn", "enemy": "giardia_latch", "count": 2, "spread": 50 },
|
|
{ "s": 3100, "type": "checkpoint", "name": "Deep Coils" },
|
|
{ "s": 3160, "type": "hazard", "kind": "ring_gate", "period": 3.4, "open": 1.8, "warn": 2.5, "note": "TEST segmentation: 53% open. Same verb as s950, two-thirds the window, and now there is traffic in the lane." },
|
|
{ "s": 3250, "type": "spawn", "enemy": "neutrophil_hunter", "count": 5, "spread": 80, "note": "They chase you THROUGH the ring: arriving on a closed beat with five on your tail is the beat's worst case, and it is survivable if you read the ring early." },
|
|
{ "s": 3380, "type": "checkpoint", "name": "Jejunoileal Junction" },
|
|
{ "s": 3440, "type": "pickup", "kind": "biopsy_sample", "count": 1, "theta": 5.5, "rho": 0.88, "note": "SAMPLE 2/3. Cost = the ring: it sits wall-side just past the segmentation gate, so you either take the gate wide and wrong, or come back for it against the current." },
|
|
{ "s": 3500, "type": "spawn", "enemy": "chyme_clump", "count": 4, "spread": 120 },
|
|
|
|
{ "s": 3660, "type": "checkpoint", "name": "Ileum" },
|
|
{ "s": 3720, "type": "spawn", "enemy": "peyers_turret", "count": 3, "theta": [0.3, 2.4, 4.7], "note": "THE SIGNATURE BEAT. Peyer's patches concentrate in the ileum - so here are three, evenly spaced around the cross-section, covering every arc. The tube straightens here precisely so this is readable: it is an arc-denial puzzle, not an ambush." },
|
|
{ "s": 3850, "type": "pickup", "kind": "mucin_glob", "count": 1 },
|
|
{ "s": 3940, "type": "checkpoint", "name": "Ileal Loop" },
|
|
{ "s": 4000, "type": "spawn", "enemy": "neutrophil_hunter", "count": 4, "spread": 60 },
|
|
{ "s": 4100, "type": "spawn", "enemy": "giardia_latch", "count": 2, "spread": 40 },
|
|
{ "s": 4220, "type": "checkpoint", "name": "Mid Ileum" },
|
|
{ "s": 4280, "type": "spawn", "enemy": "peyers_turret", "count": 3, "theta": [1.0, 3.1, 5.2], "note": "The second bank, rotated off the first: a player who learned one safe arc at s3720 finds it covered here." },
|
|
{ "s": 4400, "type": "spawn", "enemy": "bifido_colony", "count": 3, "spread": 80, "rho": 0.6, "note": "The last commensals before the gate. Deliberately placed inside the turret gauntlet: the biome's help sits in the most dangerous room, and spraying wildly here costs you the escort you are about to need." },
|
|
{ "s": 4500, "type": "checkpoint", "name": "Ileal Exit" },
|
|
|
|
{ "s": 4620, "type": "spawn", "enemy": "chyme_clump", "count": 5, "spread": 130, "note": "Traffic funnelling into the narrowest stretch - a wall of debris, not a sprinkle." },
|
|
{ "s": 4780, "type": "checkpoint", "name": "Terminal Ileum" },
|
|
{ "s": 4840, "type": "hazard", "kind": "ring_gate", "period": 3.0, "open": 1.3, "warn": 2.5, "note": "THE SKILL CHECK: 43% open, in an 8-unit tube. Same verb as s950 at 70%, now at its meanest. This is L4's hiatus." },
|
|
{ "s": 4950, "type": "spawn", "enemy": "peyers_turret", "count": 2, "theta": [0.8, 4.0] },
|
|
{ "s": 5060, "type": "checkpoint", "name": "Terminal Coils" },
|
|
{ "s": 5120, "type": "spawn", "enemy": "giardia_latch", "count": 3, "spread": 60, "note": "The latch at its worst: three of them in the tightest lumen in the level, where a boost-dodge costs you your line. Everything beat 2 taught, in a room with no room." },
|
|
{ "s": 5220, "type": "pickup", "kind": "biopsy_sample", "count": 1, "theta": 3.93, "rho": 0.85, "note": "SAMPLE 3/3, and the cruellest: wall-pinned in the tight tube with latchers live. The only one of the three that is a real decision rather than a detour." },
|
|
{ "s": 5340, "type": "checkpoint", "name": "Ileocecal Run-in" },
|
|
|
|
{ "s": 5420, "type": "spawn", "enemy": "neutrophil_hunter", "count": 5, "spread": 90, "note": "The immune system's last word before the valve." },
|
|
{ "s": 5460, "type": "boss", "id": "tapeworm", "note": "THE MINIBOSS, at the s this level's own notes reserved for it. Taenia solium, metres of it, running ahead of you down the terminal ileum - it does not fight, it RUNS, and if it gets 110 units clear it is gone and you have lost it without ever being in danger. C's third pressure: a chase you can lose without dying. Spec: LANE_C_NOTES §Boss specs 2." },
|
|
{ "s": 5500, "type": "biofilm", "need": 60, "allies": 3, "coat": 40, "note": "THE CASH-OUT. Ten minutes of deciding whether to spray the cyan resolves here: high BIOME STANDING and the ileocecal biofilm parts - three phage escorts and a coat refill for the run at the valve. Low, and it stays sealed and you finish alone. This is the reputation loop's first appearance at the END of a level rather than the middle of one." },
|
|
{ "s": 5600, "type": "checkpoint", "name": "Ileocecal Approach" },
|
|
{ "s": 5700, "type": "spawn", "enemy": "chyme_clump", "count": 3, "spread": 80 },
|
|
{ "s": 5800, "type": "checkpoint", "name": "Valve Approach" },
|
|
{ "s": 5900, "type": "pickup", "kind": "nutrient_orb", "count": 3, "spread": 40, "note": "A last line of orbs on the racing line - the level lets you leave at speed." },
|
|
{ "s": 6000, "type": "gate", "id": "ileocecal_valve", "to": "L5_large_intestine", "secretTo": "LS_appendix", "secretNeed": 55, "note": "The ileocecal valve: a genuine one-way door in the real gut, which is exactly what a level gate is. You go through; the chyme does not come back. THE SECRET DOOR: the appendix hangs off the cecum immediately past this valve, so `secretTo` routes you into it instead of the colon when BIOME STANDING is >= 55 - the biome opens its reservoir to a pilot who has been kind to it. The secret is hidden behind conduct rather than behind a wall, which is the only kind of secret this game should have." }
|
|
]
|
|
}
|