guts/docs/LANES/ROUND1_INSTRUCTIONS.md
jing 4ccf5edcc0 [lane F] Round 1 integration + ROUND2 instructions: the game is a game
Wired B's player/combat + event pump, D's assets, C's level pick into boot.
Fixed qa ESM gate (node --check no-op, found by B) + added spline selfcheck.
TECH: world contract FROZEN v1.1, bus events ratified, colorspace + crest-speed
laws (CREST_FACTOR 1.6 — B proved surfing lost to throttle at 1.0). Stub complies.
Verified integrated build via 60s stepped sim: 9 draws, 0 errors, 0 asset misses;
one known gap (fiction-id spawn resolve) confirmed and assigned as B's top item.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:39:02 +10:00

6.0 KiB
Raw Blame History

GUTS — Round 1 lane instructions (from Fable, integrator)

⚠ SUPERSEDED by ROUND2_INSTRUCTIONS.md (2026-07-16). Round 1 is complete (lanes AD landed; E's scope carries into round 2). Historical reference only.

Date: 2026-07-16 · Repo state: F's round-0 scaffold is committed on main — docs complete (README/PROCESS/GDD/TECH/ART_BIBLE/PIPELINE + charters), shell boots the stub world (straight pulsing tube, flat shading) with a fly camera, tools/qa.sh GREEN. Everything below builds against that scaffold. Read PROCESS.md §A-lane-session before starting.

Integrator decisions (settled — don't relitigate in-round)

  1. Movement is the flow-locked hybrid (GDD). Look is synthetic scanner (ART_BIBLE). Wireframe-only and full-flesh-realism are both rejected.
  2. The world contract in TECH.md is v1. Round 1 is its shakedown: A implements it, B consumes it (via stub first). Friction → NOTES immediately; F freezes it at round end.
  3. Level schema v0 in TECH.md is C's to ratify — C may amend it this round (it's young), but must update the stub's sample level + notify A/B via NOTES in the same session.
  4. No mesh generation this round (D). Textures + audio proof first; hero meshes need C's boss specs and concept sign-off (round 2). Exception: sf3d drafts to test the concept loop are fine (free, seconds).
  5. Vertical slice target = level 2 (esophagus), not level 1: the tube is the core tech risk and the esophagus is the purest tube. Mouth/arena tutorial comes after the spine works. Round 2 goal: fly the esophagus with 2 enemy types, HUD live, textured walls.
  6. Dev port 8140; evidence law and exact-path git staging are in force everywhere.

Lane A — the canal, v0

Build js/world/ per your charter, priority order:

  1. Spline + parallel-transport frames + arclength LUT from level JSON (consume js/levels/L2_esophagus.json; the stub's inline level shows the shape). Seeded, and world.hash() + selfcheck wired for qa.
  2. Chunked tube geometry with (s,θ) UVs, streaming window, dispose-clean (cite renderer.info deltas in NOTES).
  3. Wall ShaderMaterial: biome tint + fresnel rim + fog (flat-tint fallback path — D's textures may land mid-round; integrate via assets.get if present).
  4. Peristalsis vertex displacement + world.flowPulse(s,t) JS mirror.
  5. ?fly=1 noclip camera. Screenshot set: esophagus straights, curves, a wave crest. Stretch: stomach arena icosphere v0. Don't touch: player, HUD, levels' content values.

Lane B — flight + first blood, on the stub

Work entirely against ?stub=1 (contract-identical); swap to A's world late in the round if it's landed, but don't block on A.

  1. createPlayer: tube-mode controller (s,x,y), mouse+WASD+gamepad, banking chase cam, boost + i-frames, wall-graze damage + shove. Feel numbers documented in NOTES.
  2. Weapons: lysozyme cannon (pooled, instanced, heat) + hit tests vs sphere targets.
  3. Enemy framework + 3 archetypes (floater/seeker/turret) as emissive primitives, spawned from level:event (the stub level includes sample spawns; C's L2 JSON is your real feed).
  4. Damage/coat model + all bus emissions per TECH §Bus (E builds against these — emit faithfully even with no listener). Evidence: capture or screenshot sequence + DBG numbers. Arena-mode controller = round 2.

Lane C — GDD ownership + the data spine

  1. Ratify/amend level schema v0 (TECH.md) — you own it from now; sync stub sample + NOTES.
  2. js/levels/index.js registry + headless selfcheck (qa.sh already calls node js/levels/index.js --selfcheck — make it real).
  3. L2_esophagus.json complete (the vertical-slice level): segments, flow, encounter curve with B's three archetypes, reflux-surge finale as a hazard event, checkpoints, par time. Fly it on the stub; pacing notes in NOTES.
  4. Draft L1_mouth.json + L3_stomach.json skeletons (biomes/lengths/arenas only).
  5. Boss specs (Pyloric Guardian, Tapeworm, Blockage) as one-pagers in your NOTES — phases/telegraphs/windows — so A can shape lairs and D can concept in round 2.

Lane D — pipeline online + first texture pack + audio proof

On the m3ultra box (clone the repo there; PIPELINE.md has the verified operator map):

  1. Port PROCITY's script shapes: gen_textures.py (--dry-run/--local/--harvest), derive_maps.py, build_manifest.py, validate_manifest.py.
  2. First pack: esophagus ×2, stomach ×2, small-intestine ×2 walls (grayscale, tiling, ART_BIBLE prompts) + 1 wet-tissue matcap → normals → WebP → manifest. Contact sheet + in-engine stub screenshots to docs/shots/laneD/.
  3. js/core/assets.js per the manifest contract (null-on-miss, ?localassets=0).
  4. Audio proof (small): port gen_audio.py shape; synthesize 1 esophagus bed (loop- clean) + 4 sfx (pellet, hit-squelch, boost, pickup). Spectrogram evidence. Full pack = round 2.

Lane E — instrument panel v0

  1. HUD overlay (DOM/canvas): coat/hull bars, heat, speed/flow, score — bus-driven only, against B's emissions (they land this round; stub-emit fake events for dev via a ?fakebus=1 helper you own).
  2. Gut-map v1: draw the alimentary silhouette once (SVG path), show it as progress bar with player blip. This is the game's signature UI — spend the taste budget here.
  3. Title screen (over the stub drift) + pause + respect ?shots=1/?mute=1.
  4. js/audio/engine.js: bed crossfade + sfx pool + autoplay unlock + procedural fallback beeps (D's pack may land mid-round; handle both paths). Screenshots of every state to docs/shots/laneE/.

Lane F (Fable) — done in round 0, then on-call

Scaffold committed. During the round: answer contract questions in NOTES daily-ish; end of round: boot matrix, verify evidence, freeze world contract, write ROUND2.

Round-2 preview (so you can aim): textured esophagus slice playable start-to-finish —

A's world + B's flight/enemies + C's L2 + D's pack + E's HUD, integrated by F, tagged v0.2.