This project is discontinued · the work continues at game-lab.trolz.dk →
← BACK TO STUDIO

CHANGELOG

Every release. Every iteration. Every bug fixed.

// RELEASES

#51 Terracotta Courier (cycle 2)
2026-05-09
SHIPPEDPIPELINE v3.7.8

Cycle-2 ship of Terracotta Courier — magnum-opus tier (drops -slice). 8 screens across 2 zones with run + jump + dash + double-jump. Sunset-clock palette progression within warm register. Save persistence. Dynamic misregistration. Patroller pigeon retune. Narrative bookend on screen 8. THESIS: VALIDATED — first 4-session MO game to ship cycles 1+2 cleanly with zero IMMUTABLE drift; first MO cycle-2 ship with 0 iterations within session 4.

UNRATEDLINES 4,150ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 2
Build History
  • cycle 2 v1.0 — game extension+632 lines on cycle-1 ship; 12/12 cycle-2 features wired; IMMUTABLE byte-identical; double-jump verb (vy = JUMP_VELOCITY × 0.85; refresh on ground AND on dash); 4 zone-2 levels (Harbor Approach, Scaffold Climb [thesis test — UNREACHABLE without double-jump], Dovecote Bridges, Sunset Tower).
  • cycle 2 v1.1 — style polishSunset-clock progression visibility (3-step alpha ramp on extra sky-band); save persistence UI layout (40px breathing room; accent-2 decorative separator); narrative bookend surface card for legibility. 61 lines, under 80-line cap.
#50 Terracotta Courier
2026-05-08
SHIPPEDPIPELINE v3.7.7

A precision sidescroller about reading rooftops at a glance and chaining four perfectly-tuned verbs across a sun-baked seaside town at golden hour. Cycle 1 ships 4 hand-tuned screens (intro / gap-tutorial / dash-introduction / finisher) in 1 zone, with run + jump (variable + coyote + buffer) + dash (8-dir, ground-refresh). Failure is instant respawn at last checkpoint, no penalty. Cycle 2 (deferred) adds double-jump.

UNRATEDLINES 3,313ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 0
Build History
  • v1.0 — magnum-opus-slice cycle 1 (initial implementation)game.html built on engine seed (3231 lines, 1583 added on engines/platformer-engine.html); validate + smoke + gameplay tests all PASS; 0 self-reported MAJORs; 4 zone-1 levels authored.
  • v1.1 — iteration 1 bug fixesCleared 4 MAJORs (P/Esc DEATH-pause guard; variable-jump-cut tick-loop; PA4 304.6ms→277.7ms; tile-3 collidability deviation logged) + 2 MINORs. 53 lines diff.
  • v1.2 — style polishDust-mote shape (squares→circles per riso contract); title-screen Mediterranean travel-poster typography; +1 sun-shaft on MENU. 43 lines, under 80 cap.
  • v1.3 — iteration 2 polish (SHIPPED)Dust-mote disturbance restricted to sun-shafts (2× / 18 frames) — promoted Identity Feel bullet #2 from PRESENT-BUT-FAINT to DELIVERED. Intro-lockout key feedback (4× typewriter accelerate). Soft dash-hint on Screen 3 Gap 2 after 3+ deaths. 66 lines, under 80 cap. ANTI-SAMENESS HELD: rendering-approach axis (flat risograph spot-color overprint with paper-grain + 1-2px misregistration kiss) is unprecedented vs the last 3 magnum-opus ships (Compass Apprentice / Lantern Descent / Pin & Reach — all cool/vertical/cold).
#50 Pin & Reach (Cycle 2)
2026-05-07
SHIPPEDPIPELINE v3.7.8

Cycle 2 of the magnum-opus Frozen Cathedral — Pin & Reach promotes from `magnum-opus-slice` to `magnum-opus` (drops the `-slice` qualifier). Zone 2 "The Cliff Above" adds 4 mixed-width segments (320/320/640/480 px) and the two cycle-1-IMMUTABLE-locked verbs ship: place-piton (P key, pinned-only, permanent grip; 0.05 stamina cost) and rope-swing (hold-dir + Space, 750 ms easeInOutSine pendulum arc; 1.5× normal-reach stamina cost). Camera horizontal-follow extension engages at width > 320 px with deadzone±16, lookahead 32 px, smoothing 0.18, level-clamp; cycle-1 zone-1 stay-centered behavior preserved bit-identical at width = 320 px. Save persistence v0.5 via localStorage. Falsifiability hypothesis structurally encoded in level data: Z2-S2 has a deliberate 41.76 px gap > 40 px reach radius bridgeable only via piton at exactly 40+40 px; Z2-S3 has a 220.69 px horizontal void (rope-swing only); Z2-S4 has two cycle-2-required gaps. **THESIS: VALIDATED.** All 14 IMMUTABLE clauses CONFIRMED (camera extended per RATIFIED cycle-2 mechanism — IMMUTABLE itself byte-identical to cycle-1 ship b43066b6). All 5 cycle-1 IFC bullets CONFIRMED-WELL with zero regression; both 2 cycle-2 IFC bullets CONFIRMED-WELL. **ENGINE ACCRETION: 218 lines** graduated from `games/pin-and-reach/game.html` into `engines/vertical-climb-engine.html` (1766 → 1984, +12.3%). HYBRID order: Phase 1 BEFORE P4.2 (+191 lines: buildLinearSegment + buildDecorTiles + wind-timeline format docs + pinnedTone audibility-chain pattern); Phase 2 AFTER P4.10 (+27 lines: renderRefractionTrace 2 px polish + alpha sampler).

UNRATEDLINES 4,362ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 1
MINOR 1
NITPICK 1
Build History
  • v2.0 — Cycle-2 foundation (P3.1–P3.8, session 3)Cycle boundary integrity verified (Cycle1ShipSHA=b43066b; IMMUTABLE captured 8743 chars; diff since cycle-1 ship = 3 post-ship orchestrator additions only). Cycle-2 scope = Option β (mixed-width segments 320/320/640/480 px); 4 zone-2 segments named; falsifiability anchor at Z2-S2; risk HIGH (simulator 3D extension critical-path). CONTRACT extension: IMMUTABLE byte-identical, RATIFIED (cycle 1) renamed, RATIFIED (cycle 2) populated with 11 entries. Design extension: 2 new verbs fully specced, 4 zone-2 segments hand-traced, 2 new IFC bullets (UNCUTTABLE), v3.7.7 IMMUTABLE Preconditions Audit 20 rows (17 still-satisfied / 2 EXTENDED / 0 FLAG), v3.7.8 Game-Internal Formula Audit 3 rows (caught Z2-S4 summitRevealY at design-time). Sprite plan audit: 2 new poses (place_piton + rope_swing_pendulum). Music: NO additional loop (cycle-1 loop carries cycle 2 unmodified). Engine accretion proposal: 5 candidates, HYBRID order (Candidates 1+3+4 BEFORE P4.2; Candidates 2+5 AFTER).
  • v2.1 — Engine accretion phase 1 + cycle-2 game extension (P4.1–P4.4)HYBRID phase 1: +191 lines lifted into engine seed (Candidates 1+2+3+4: buildLinearSegment + buildDecorTiles + wind-timeline format docs + pinnedTone audibility-chain pattern). Engine 1766 → 1957. Cycle-2 game extension: +846 lines (cycle-2 verbs, save persistence, camera horizontal-follow extension, sprite animations, telemetry; engine duplicates removed). game.html 3466 → 4312. Zone 2 level authoring: 4 zone-2 segment JSONs (1 Format A + 3 Format B); falsifiability anchor at Z2-S2 verified geometric (41.76 px gap > 40 px = UNREACHABLE on cycle-1; piton-bridge at 40+40 px = REACHABLE). Asset integration: 8 levels + 1 music inlined (5.3 → 20 KB).
  • v2.2 — Iteration 1 PA5 telemetry-provenance fix (P4.6–P4.7)QA caught 1 MAJOR: PA5 telemetry-provenance v3.7.1 violation — developer's first cycle-2 PA implementation hardcoded `pitonSfxLastPeakGain = 0.45` (the design-constant envelope target literal) instead of runtime-sampling. Falsifiability hypothesis CONFIRMED-VIA-GEOMETRIC-AUDIT. Fix at P4.7: `pitonSfxLastPeakGain` now setTimeout-samples `gain.value` at 10ms post-strike (runtime value 0.369). v3.7.1 discipline restored. Lesson: telemetry-provenance discipline doesn't auto-extend to cycle-2 PA additions.
  • v2.3 — Cycle-2 surface polish (P4.8)35 lines of cycle-2-surface-only art-director polish (well within 80-line cap; cycle-1 surface LOCKED). Piton glint widened, rope line 1→1.5px, summit choir refraction-shard scatter on camera-Y trigger (restored as PRIMARY for Z2-S4 where camera reaches summitRevealY=728), VICTORY 1.0s minimum-hold affordance gating before any-key returns to MENU.
  • v2.4 — Iteration 2 audio polish (P4.10–P4.10.1)14-line audio polish: sfx_piton_empty (silent-input clarity on no-pitons-left distinct from successful place) + sfx_fall_wind_arc (wind-arc-fall vs stamina-fall distinction). v3.5 polish-default rule satisfied. 7/7 IFC bullets CONFIRMED-WELL (5 cycle-1 carried + 2 cycle-2 added).
  • v2.5 — Engine accretion phase 2 + ship (P4.11)HYBRID phase 2: +27 lines lifted (Candidate 5: renderRefractionTrace 2 px polish + runtime alpha-sampler engine-baseline). Engine 1957 → 1984 (post-cycle-2-accretion total 218 lines, +12.3% from cycle-1). Assets re-inlined post-iteration. codeLines=4362, assetBytes=20518. **THESIS: VALIDATED** — all 14 IMMUTABLE clauses CONFIRMED, all 7 IFC bullets CONFIRMED-WELL, falsifiability hypothesis structurally encoded in level data and verified geometric + runtime. Pin & Reach is the studio's first magnum-opus to ship a NEW vertical-climb engine lineage (not a platformer fork) and the first to demonstrate measurable cycle-1 → cycle-2 engine accretion ROI. Tier promotes magnum-opus-slice → magnum-opus.
#49 Pin & Reach
2026-05-07
SHIPPEDPIPELINE v3.7.7

A solo climber scales the inside of a frozen waterfall — a cathedral of suspended ice arrested mid-pour — by committing to one deliberate grip at a time. Stamina drains while held, chalk is finite, and the wind decides whether you pin or you fall. Magnum-opus-slice (cycle 1) — 1 zone × 4 vertical segments, 4 cycle-1 verbs (reach, pin, chalk, down-climb), with cycle-2 verbs (place-piton, rope-swing) pre-locked in IMMUTABLE. First vertical-climb engine lineage in studio history (1766-line engine seed forking the base-game chassis with an inverted verb model — discrete grip-to-grip, no jump arc). Stained-glass + vector-cool aesthetic; a single hot orange parka against a cold cobalt-violet world.

UNRATEDLINES 3,466ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 1
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build (P2.1–P2.3)Session 1 foundation: CONTRACT.md IMMUTABLE locked (cycle-1 + cycle-2 verbs, identity constraint, camera precondition flagged); art-direction.md authored with 8-token cool palette + single hot parka spike; engines/vertical-climb-engine.html new lineage (1766 lines, base-game chassis with inverted verb model); game-design.md (630 lines, 26 sections); sprite-spec POSE_CLIMBER 13 shapes / 7 grip poses; pin-and-reach-loop.json (50 BPM A Dorian, 3 tracks, 16 bars). Session 2 implementation: game.html on engine seed (3425 lines initial), 4 zone-1 segment Format A JSONs, loadSegmentFromAssets bridge, inline-assets dry-run.
  • v1.1 — Bug fixes (P2.6)Signature Moment choir trigger relocated from a geometrically unreachable camera-Y threshold (summitRevealY = 24 - 120 = -96 against camera Y clamped >= 0) to onGripCommit when toIdx >= summitGripIdx - 4 on segment 4. Three minors handled: em-dash typography in CONTROLS_TEXT, refraction-trace partial-line discipline, R-key restart documentation. Runtime probe verified.
  • v1.2 — Style polish (P2.7)30 lines of art-director polish: refraction line bumped to 2px, stamina bar to 5px, title to 26px with cold-facet separator, segment-clear name subtitle. Aesthetic contract grep-clean (zero magenta sentinels, zero hex literals outside THEME, zero forbidden patterns).
  • v1.3 — Iteration 2 polish (P2.9.1)24-line pinnedTone audio cue (180Hz sine, 120ms attack / 500ms release, full audio-bleed integration via gameAudioReset chokepoint and updateContinuousAudio guard) closed the only weakly-confirmed Identity Feel Contract bullet (stamina drain audibly distinct between pinned and unpinned). 5/5 IFC bullets CONFIRMED-AT-SHIP. SHIP-WITH-NOTES per game-director triage. THESIS (cycle-1 baseline): full identity coherence captured for cycle-2 P4.12 verdict.
#48 Lantern Descent (Cycle 2)
2026-05-06
SHIPPEDPIPELINE v3.7.7

Cycle 2 of the magnum-opus Drowned Archive — the librarian-creature continues the descent into the Lower Archive (Banister / Cold Reading-Room / Atrium / Memory-Index). New verbs paired: wall-cling (vy clamp 30 px/s slow-slide as forgiveness) + wall-jump (kick away from wall). New palette token accent-3 cold-violet (#8878c0) for the memory-fragment accent — geometry the player has been rim-light-shown previously gradually tints itself, closing the skilled-tier mastery fantasy "becoming a library yourself." THESIS: VALIDATED — cycle-1 IMMUTABLE byte-identical, all 5 cycle-1 Identity Feel bullets re-CONFIRMED, zone-1 levels remain solvable with cycle-1 verbs only.

UNRATEDLINES 4,174ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 0
Build History
  • v2.0 — Cycle-2 game extension (P4.2)Wall-cling + wall-jump verb pair, accent-3 palette token, memory-fragment per-tile state, zone-2 level loader, save persistence v0.5, zone-1→zone-2 VICTORY_INTERNAL transition with "deeper, then." narrative beat. +848 lines on cycle-1 ship.
  • v2.1 — Zone-2 + simulator shim (P4.3)Lower Archive level (320×1088 px, 4 segments, 7 fauna corridors). Designer surfaced honest deviation: wall-jump INTRODUCED but NOT REQUIRED for progression — kinetic envelope (~5 tiles wall-to-wall) cannot host wall-jump-required at IMMUTABLE-locked 320 px chamber width. v3.7.6 simulator constant-contract shim added (WALL_GRAB_VY_DAMPING bumped 0→0.78).
  • v2.2 — Iteration 1 fixes (P4.7)Two-piece lantern radius curve (zone-1 56→26 preserves cycle-1 PA1 byte-for-byte; zone-2 26→22 continuous at boundary). Symmetric col-2/col-17 walls in Banister (designer fix; 12 tile cells). Welcome-back subtitle. VICTORY_INTERNAL pause guard.
  • v2.3 — Cycle-2 polish (P4.8)Memory-fragment alpha floor bump 0.094/0.144/0.184 (above PA5 floor post sub-pixel rendering). Wall-cling chestBulb pulse acceleration (1.4× idle as bioluminescent stress). Memory-Index exit-tile accent-3 breathing (mirrors cycle-1 Vault breathing in accent-1). 68-line diff under 80-line cap. SHIP-WITH-NOTES per game-director triage. THESIS: VALIDATED.
#47 Lantern Descent
2026-05-06
SHIPPEDPIPELINE v3.7.7

Celeste-tier precision-descent platformer in a pure oceanic abyss. A small bioluminescent librarian-creature falls deeper into a drowned archive, navigating only by a passive radial lantern that shrinks with depth. Bioluminescent archivist-fauna pass behind the level plane and rim-light distant geometry for ~300 ms — the player's only previews of what's ahead. The mastery fantasy is "becoming a library yourself" by memorizing fragments fauna repeatedly rim-light.

UNRATEDLINES 3,274ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 0
Build History
  • v1.0 — Initial buildP2.1 forked engine seed → game.html with lantern strict-render-mask compositor, fauna archivist with rim-light reveal pass, custom POSE_LIBRARIAN sprite (10 parts, 7 anims). P2.2 authored the canonical 320×1152 px trench level (4 segments, 6 fauna corridors). P2.3 wired data-driven corridors and corrected LEVEL_W_TILES 30→20 to match IMMUTABLE.
  • v1.1 — Bug fixes (P2.6)Fauna rim-light flash now drawn AFTER the lantern destination-in mask (restores the signature visual move beyond lantern radius). Engine's default renderParticles overridden with a no-op (prevents double-draw). Music ducks on VICTORY; any-key dismisses the VICTORY screen.
  • v1.2 — Style polish (P2.7)Lantern feathered edge (2.5 px radial gradient — strict mask preserved). Lantern hum gain node gets a 0.3 Hz LFO at ±5 cents on top of the existing 0.15 Hz tremolo for organic irregularity. Vault exit tile breathes at 0.5 Hz in accent-1 — patient destination read. SHIP-WITH-NOTES per game-director triage.
#46 The Compass Maker's Apprentice (Cycle 2)
2026-05-06
SHIPPEDPIPELINE v3.7.5

Cycle 2 of compass-apprentice — un-sliced magnum-opus build. Adds DASH verb (Z/X, 280px/s × 0.18s), horizontal-grammar zone 2 (lateral pilgrimage across the orrery's outer rings), multi-pedestal alignment finisher (3 pedestals, any-order, 0.6s hold), tide-pressure tempo modulation (60→72 BPM with phase-continuity invariant), and save persistence. Cycle-1 surface preserved byte-identical.

UNRATEDLINES 4,827ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 4
MINOR 2
NITPICK 0
Build History
  • v2.0 — Initial cycle-2 buildGame extended in place with dash verb, multi-zone level loader, save persistence (compass-apprentice:save:v05), multi-pedestal alignment, tide-pressure tempo modulation, music-runtime setTempo extension with phase-continuity invariant. Engine seed UNTOUCHED (engineAccretionLines: 0 per IMMUTABLE clause). Wall-jump deferred to cycle 3 per realistic-fallback scope.
  • v2.1 — Iteration 1 (bug fixes)QA found 4 MAJORs + 2 MINORs. All cleared: pedestal-tick audio bleed on PAUSE (added STATE.PAUSED branch), handleCrankInput pedestal-context guard, old SPACE/W/Up MENU handler bypassed cycle-2 menu (removed), PA-10 ceremony audio UNMEASURABLE (added ceremonyAudioActive flag). +14 net lines.
  • v2.2 — Iteration 2 (style polish)Added dash_horizontal rig animation: 2-keyframe forward-lunge posture (torso +0.21 rad, gear-key arm extended +0.80, trailing arm back -0.60). Ghost afterimage copies render in dash_horizontal pose, making the copper gear-key the leading warm mark on each ghost silhouette. Sharpens DASH AS PRECISION INSTRUMENT identity bullet. 39 lines under 80-line polish cap.
#45 The Compass Maker's Apprentice
2026-05-05
SHIPPEDPIPELINE v3.7.4

A vertical-climb precision platformer set inside an enormous brass orrery in a 19th-century observatory tower. The apprentice ascends the clockwork, using an inherited gear-key to briefly hush the spinning machinery — letting them slip past swinging counterweights, moving copper platforms, and patrolling clockwork patrollers — until they reach the armillary summit and align the rings. Studio's 2nd magnum-opus game (cycle 1 of 2 — vertical slice).

UNRATEDLINES 3,523ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 0
Build History
  • v1.0 — P2.1 implementationForked engines/platformer-engine.html (1648 lines, +91 from cycle-1 accretion of generic updateCameraFollow). Wired Etched Brass aesthetic, POSE_APPRENTICE custom rig with crank_engage/crank_release animations, diegetic 6 px chest cooldown ring, signature copper-foil chromatic streak on entity velocity vectors during slow window. 5 continuous audio voices (ticking pad, brass-hum, percussion duck/snap, ambient organ, summit bell). 12 sfx_ functions. Stub level for smoke verification.
  • v1.1 — P2.2 level authoringDesigner authored ONE TALL LEVEL (60 rows × 20 cols, 320×960 px), 6 entities (chain + 2 patrollers + 3 cradles). First attempt FAILED completability simulator (UNREACHABLE — 2-tile vertical jump at engine limit). Redesign with ≤ 1 tile vertical steps + alternating LEFT/RIGHT zigzag pattern. Final: 1/1 REACHABLE in 29 frames using cycle-1 verbs only (walk + jump + coyote + buffer).
  • v1.2 — Iteration 1 fixes (7 MAJORs)QA surfaced 7 MAJORs: victoryTransitionPending never reset, particles not scaled during time-slow (Identity Feel bullet #5 FAILED), chromatic streak alpha curve too dim (PA1c 0.40 vs threshold 0.45), visibilitychange bypassing setState chokepoint, tickingPad lifecycle (gain node not nulled in gameAudioReset), sfx_jump defined but never called, percussion duck unverifiable via gain.value (telemetry lag). All 7 fixed; 4 gates green.
  • v1.3 — Polish iteration 2Playtester verdict SHIP-WITH-NOTES with 3 ROI-ordered polish suggestions. All landed under the 80-line cap (78 lines actual). Checkpoint flags at rows 46+32 with diegetic brass-post visuals + activation sfx. Row-5 platform narrowed from 8 tiles to 3 (geometry variation). Patroller-2 tuned (trackHalf 16→20, speed 24→32) for crank-gear decisiveness.
#44 Soft Embers (Cycle 2)
2026-05-04
SHIPPEDPIPELINE magnum-opus v0.5

Cycle 2 of the studio's first magnum-opus game — the first cycle-2 build in studio history. Grew the cycle-1 4-screen vertical slice into a full 8-screen / 2-zone game without breaking it. Added two new player verbs (dash and wall-jump, both physically gated to zone 2 via `screen.zone === 2`), one new zone ("The Clearing") with four hand-tuned screens of escalating verb requirements, sunrise visual progression (per-screen sky-band tint shift from `#251a32 → #6b3340`, NOT a countdown timer — preserving the gentle-teacher tone), and a watchtower scale curve fix (8-step `0.12 → 0.90`) carrying the diegetic forward-motion beat across the doubled journey. Magnum-opus THESIS: VALIDATED — CONTRACT.md byte-diff vs cycle-1 SHA `6cb63ef` returned empty body, all 7 cycle-1 IMMUTABLE fields CONFIRMED, all 7 Identity Feel bullets CONFIRMED. Engine accretion: 5 candidates graduated (+176 lines, 3% engine-seed delta).

UNRATEDLINES 3,942ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 3
MINOR 4
NITPICK 3
Build History
  • v2.0 — Iteration 1 (bug-fix)QA found 0 CRITICAL, 3 MAJOR, 4 MINOR, 3 INFO after Phase 4.6. 1. PA (a) telemetry wrong-axis (telemetry-faking redux): `_sampleDashTrailMetrics()` measured spawn-relative particle displacement (~4.64px) instead of ember-relative distance per the spec's intent. The PA passed automated tests because the threshold was loose (`> 1`) AND the metric was wrong-axis. Fix: rewrote to `Math.abs(p.x - emberX)` ember-relative; live now reports 14.45px. Second instance of v3.7.1 self-attested-correctness pattern catching a bug — telemetry can be sampled-from-runtime AND still measure the wrong thing. 2. Stress timer expires during wall-grab (Identity Feel #5 + #7 violation): `emberStressTimer -= dt` ran unconditionally even during wall-grab; if the player entered a stressed state then grabbed a wall, the timer kept ticking and pulse-rate would drop from 1.6Hz to 0.5Hz mid-contact — directly violating the cycle-2 wall-jump-as-bracing bullet (#7) and the cycle-1 landing-threshold bullet (#5). Fix: `&& !player_isWallGrabbing` guard. 3. VICTORY sky-band desaturation animation missing: spec'd in game-design-cycle-2-addendum.md `## 3` but never implemented. Fix: 2500ms easeOutCubic lerp `#6b3340 → #5a3340` on `state === STATE.VICTORY && screenIdx === 7`. Helpers (`_parseHex`, `_lerpHex`) reused for MINOR 1 (sky-band cross-fade between screens — ~12 lines synergy). 3 of 4 MINORs addressed inline; MINOR 3 (zone-2 birch silhouettes) deferred to iter-2. Total iteration 1 diff: 106 additions / 25 modifications. P4.8 Style Polish (Kai Lund — within iteration 1, separate 80-line cap): 33 lines (under 80-line polish cap). Phase 5 dominance check resolved: sky-band narrowed 96px → 64px (40% → 27% canvas area) so ember dominates over `#6b3340` on Z2-S4. Dash trail rendered as two-pass alpha-layered gouache (paint-layer depth vs flat single-fill). Cloak-rustle polygon edges morph during 300ms decay (fabric-settling read).
  • v2.1 — Iteration 2 (polish)Playtester P4.9 returned SHIP-WITH-NOTES with 3 actionable polish suggestions. Per v3.5 polish-default + Morten's reasoning ("a 700ms silent cooldown in a game whose entire identity is 'every state communicates redundantly via visual + audio + motion' is not a feature gap — it's a contract violation against our own design philosophy"), iter-2 auto-triggered. 75 lines against iter-1 commit `2c575e8` (under 80-line cap with 5-line margin): 1. HIGH — Dash failed-press whisper: 1-2 ink-soft particles on failed dash press during cooldown. NOT accent-1 (warm-pixel rule preserved). NO sfx (gentle-teacher tone preserved). Critical regression caught at write-time: failed-press particles use `kind='dash_fail'` so `_sampleDashTrailMetrics` filters them out (PA (a) telemetry isolation). 2. MEDIUM — Zone-2 birch per-screen variation: replaced fallthrough with 4 explicit cases (Z2-S1 wide → Z2-S2 clustered → Z2-S3 single → Z2-S4 empty). Reads as forest opens → cluster → thinning → empty across zone 2. 3. LOW — First-wall-contact trajectory hint: 3 cool particles in push-off direction on first wall-grab in zone 2; session-flag `firstZone2WallContactConsumed` flips on first contact and resets on `resetGameState`. Magnum-opus THESIS: VALIDATED. 7/7 Identity Feel bullets CONFIRMED. Engine accretion: 5 candidates graduated (+176 lines). Cycle-2 ship: 3 consecutive cold starts all PASS (cycle-1 had one cold-start blip on bell assertion; cycle-2 has zero — better than cycle-1).
#43 Soft Embers
2026-05-04
SHIPPEDPIPELINE magnum-opus v0.1

A Celeste-style precision platformer about carrying a single fragile ember through a predawn watercolor forest to a distant watchtower. The ember is the player's heart — visible at all times, pulsing with the player's breath, extinguished by panic. There is no health bar, no game-over screen — only the quality of your inputs. Hard landings extinguish the flame; the screen restarts gently, no apology. The studio's first magnum-opus pipeline game, built across two ~2h sessions (cycle 1, vertical slice).

UNRATEDLINES 3,281ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 4
MINOR 2
NITPICK 7
Build History
  • v1.0 — Iteration 1 (bug-fix)QA found 0 CRITICAL, 4 MAJOR, 2 MINOR after Phase 2.5. 1. Ember bell torn down on LEVEL_CLEAR → PLAYING (gameAudioReset unconditionally cut bell). Fixed by guarding stopEmberBell() to skip when destination is LEVEL_CLEAR or transitioning from LEVEL_CLEAR to PLAYING. Restored Identity Feel Contract bullet 3 ("plays uninterrupted for the entire duration the ember is in steady state"). 2. sfx_wisp_whoosh entirely absent from implementation despite being in the Audio Design spec. Fixed by adding 220Hz sine continuous gain node with proximity-driven volume modulation, registered in gameAudioReset for clean teardown. 3. window.__test.emberPulseHz returned hardcoded design constants (0.5 / 1.6) instead of measured values, making perceptibility assertions unverifiable. Fixed via _samplePulseFrequency() doing peak-detection on the same sin(2π·freq·emberPulseTime) that renderEmber consumes — derivation, not declaration. 4. drawBirchSilhouettes compared level.id === 'screen-1' but canonical IDs are 'zone-1-screen-1' (zone prefix added during canonical-level authoring). All screens fell through to screen-4 fallback. 4 string changes. Plus 2 minors: _relightFired/_jumpFired cleared in resetGameState; stopEmberBell defensive double-stop guard. Total iteration 1 diff: 191 lines. P2.7 Style Polish (Kai Lund — within iteration 1, separate 80-line cap): 54 lines. MENU title "SOFT EMBERS" in Lora 600 18px accent-1; extinguish gradient 0.4 mid-stop (smoother cold transition); steady ember breath ease (sin → (sin+1)/2 — held-breath feel); paper grain alpha 0.08 → 0.10; LEVEL_CLEAR fade-in 600 → 400ms; VICTORY "you arrived." italic Lora 13px lowercase period text.
  • v1.1 — Iteration 2 (polish)Playtester returned SHIP-WITH-NOTES with 3 actionable suggestions, all on the MENU's first 7 seconds. Per v3.5 polish-iteration-default rule (≥2 actionable suggestions + iter-1 cleared all majors), iteration 2 auto-triggered. Game-director Morten Mai's triage: "tender games don't survive a broken-feeling opening 7 seconds." 35-line surgical diff (well under 80-line cap): 1. Pulled controls-hint fade-in from 6.4s → 3.5s, duration 1200ms → 1500ms. Fully visible at second 5, before input is enabled at 7.6s. 2. Controls hint legibility: 8px → 10px, inkSoft → ink. Stays subtle, stops whispering. 3. MENU → PLAYING ember-pickup punctuation: brief one-shot ember radius spike (4.6 → 6.5 over 120ms, settle to 4.6 over 240ms, blended via Math.max above breath baseline). New sfx_ember_pickup (440 → 660Hz triangle, 180ms, gain 0.07 — quieter than the 0.14 relight chime, which stays sacred for respawn). Only fires on prev === STATE.MENU branch. Playtester verdict moved to SHIP-READY by triage. Cap reached at iteration 2.
#42 Death Circuit
2026-05-03
SHIPPEDPIPELINE v3.7

A top-down combat-survival arena where five cars are locked inside a walled coliseum oval, the inner fence is a damaging electric ring, and the only way out is to be the last car running. Forward machine gun, rear-drop mines, no laps, no clock — just the hunt.

UNRATEDLINES 2,235ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 2
Build History
  • v1.0 — Iteration 1QA found 4 MAJORs that all passed automated tests but failed close code reading. 1. BLAM hold was 630ms, not 380ms — freezeTimer and blamTimer were running sequentially because updateGame was gated behind isGameFrozen. Fixed by removing the redundant triggerFreeze call and letting BLAM_FREEZE state's own guards pause gameplay. 2. Fence damage double-decrement — fenceContactTimer was being subtracted in both the general timer block AND the fence-contact block (a code comment even acknowledged this then did it anyway). Effective rate was 50 dmg/sec instead of the spec's 25 dmg/sec. 3. window.__test.colorDelta was hardcoded from spec constants, not sampled from rendered sprites. Replaced with getImageData sampling at 6 points per car sprite, cached. 4. Countdown "GREEN" frame never rendered because setState(DRIVE) ran before renderGame. Fixed with a 250ms greenFlashTimer overlay rendered during DRIVE. Plus the BLAM 200Hz tail was missing (Identity Feel Contract bullet failure) — added a 200Hz sine layer to sfx_blam.
  • v1.1 — Iteration 2 (polish)All MAJORs cleared in iteration 1, playtester verdict was SHIP-WITH-NOTES with three actionable suggestions. v3.5 polish-default rule auto-triggered iteration 2 with a 32-line surgical diff (well under the 80-line cap): 1. Empty-ammo cue: 30ms 800Hz dry click + 120ms HUD chip flash, gated on rising-edge of Space and an 80ms cooldown to prevent spam. 2. Countdown 4.0s → 3.0s — shaved a second off every restart. 3. Starting ammo 60 → 70 — one extra solo kill of headroom against late-game starvation. 4. Pause overlay text "Press P to resume" → "PRESS P TO RESUME" to match the all-caps newsprint identity. Playtester verdict moved to SHIP-READY.
#41 Void Drifter
2026-05-01
SHIPPEDPIPELINE v3.7

A 2D top-down Newtonian space shooter where momentum is the entire skill. The void streams endlessly around your camera, enemies coast in patterns instead of chasing, and your job is to read your own drift three seconds into the future and shoot through it. Thrust is precious — audible, overheating, committed — and most kills should be made with the engine cold.

UNRATEDLINES 2,127ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 1
Build History
  • v1.0 — Iteration 0 (implementation + style polish)- 2 MAJORs caught: ambient bed cut on death (audio lifecycle sequencing — fixed by routing fade-down into onStateExit before resetAudioState), GAMEOVER → Space skipping MENU (consumed twice per frame — fixed by clearing spaceJustPressed at point of use). - 7 MINORs caught and resolved during Phase 5 art-director polish (missing 4th narrative line, leaderboard panel, ENGINE LOCKED text, multiplier scale-pop, ambient bed thicken, death desaturation, 'P / Esc to resume' label). - 1 regression introduced + fixed: art-director polish triggered timing-window flake on Perceptibility 1; restored α decay with quadratic ease-out (logged in deviation-log.md).
  • v1.1 — Iteration 1 (polish, 60 lines / 80-line cap)- D. cursor: none CSS — hide OS cursor over canvas - E. Pause-state juice freeze — particles, popups, flash, shake, slowMo, freeze, multPopTimer all use `juiceDt = (state===PAUSED) ? 0 : dt` - F. Enemy fire cadence time-scaling — `max(0.60, 0.85^floor(runTime/90))` multiplier across all 3 archetypes - A. Per-tier threshold pop scale — x2→1.25×, x5→1.5×, x10→1.8×, x20→2.2× (was flat 1.25×) - C. Lingering ignition nozzle dot — 3.5px THEME.plumeIgnition circle, alpha 0.9→0 over 120ms after the ring expires at 80ms - Verify-iteration: PASS (smoke + gameplay green, QA clean, playtester moved to SHIP-READY)
#40 Lighthouse Keeper
2026-04-29
SHIPPEDPIPELINE v3.6

A meditative top-down nautical puzzle in which the player rotates a lighthouse beam through fog. Ships are visible only inside the beam's cone — and they move only when outside it. The player conducts a small fleet of ships home each night by sweeping carefully, memorising drift patterns from a single lit frame, and trusting what they can no longer see. Five nights of rising fog density and ship counts form a short career arc.

UNRATEDLINES 2,132ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 4
NITPICK 1
Build History
  • v1.0 — Iteration 0 (initial build)Single-file 2132-line build with freeze-on-light identity coupling — ships' hulls stop dead inside the beam cone while bow-wave particles keep drifting. Parametric ship paths (spawn → jittered waypoints → harbour, sin-drift along the path normal). Pre-baked 256×256 fog noise tiles drawn ~12 per frame at two parallax velocities. Three continuous gain audio sources (foghorn drone, beam hush, danger-pitch LFO) plus three pentatonic ship voices and a convoy-completion chord.
  • v1.1 — Iteration 1 (bug fixes)Phase 4 QA found 6 MAJORs — Night 5 not accumulated in RUN_COMPLETE, untracked setTimeout for convoy chord, inverted wreck-darken envelope, missing resetGameState() on GAME_OVER, hardcoded beam-edge perceptibility telemetry, hardcoded drone-detune telemetry. All 6 plus 3 minors fixed. Beam edge fix required follow-up: thickened the rim to 16px white with a 5×5 sample block to absorb anti-alias variance, settling at 0.851 (well above the 0.6 threshold).
  • v1.2 — Iteration 2 (polish, 49-line diff under 80-line cap)Phase 6 caught 1 new MAJOR — GAME_OVER score display zeroed by resetGameState() before render reads it (the iteration 1 fix introduced an order bug). Triage combined the bug fix with 2 of 3 playtester polish suggestions: wreck position markers visible only when the beam passes over them (turning the fog-as-information-cost theme into juice) and a harbour landing pulse swell. Playtester verdict moved from SHIP-WITH-NOTES to SHIP-READY.
#39 Conduit
2026-04-29
SHIPPEDPIPELINE v3.6

Conduit is a turn-based deckbuilder where every card is a single note and every play is a syllable in a phrase. The player descends through a silent cathedral, fighting warped fragments of liturgy by composing chord progressions from their hand — recognized progressions (I-IV-V, ii-V-I, V-I, etc.) chain damage and restore the cathedral's silenced hymn for a moment, while broken or off-key plays fizzle and stall the phrase.

UNRATEDLINES 2,907ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 1
Build History
  • v1.0 — Iteration 0 (initial build)2319 lines, all 11 gameplay tests passed BUT QA caught 1 CRITICAL (chord swell oscillators silenced by setState→resetAudioState) + 4 MAJORS (cathedral pad stuck at 0 post-pause, phrase memory bleeding into DRAFT, perceptibility telemetry hardcoded not measured, boss signature moment fired on raw-damage kills too).
  • v1.1 — Iteration 1 (post-style + bug fixes)Style pass added cathedral palette, parchment cards, music-staff phrase render, organ timbre tweaks. Then 3 newly-found majors fixed (cathedral pad torn down on PLAYING→DRAFT, Censer Spirit weakness pattern wrong, Controls Display text mismatch). Cleared all CRITICAL/MAJOR.
  • v1.2 — Iteration 2 (polish, 40-line diff under 80-line cap)Boss-kill cadence gate relaxed to UNION (chord-multiplied kill OR any chord resolved during boss fight), near-miss ghost text on phrase clear, intro stagger skipped on restart runs, masterGain 0.42 on tab restore, VICTORY input guard 4s. Signature Moment shifted from coin-flip to expected outcome.
#38 Cogsmith
2026-04-28
SHIPPEDPIPELINE v3.6

A meditative restoration puzzle inside a silent clock-tower. Drag five part types — master gear, transfer gear, hammer, bell, bellows-reed — onto an 8x8 workbench, press SPACE to run a tick-quantized contraption, and listen for the master's score. Each restored floor joins a tower-mix bus that hums beneath the next build, so by floor 5 you are conducting four voices on top of three already-restored floors. Signature solve: clack into 250ms silence, then a harmonic-overtone wash fades in over 800ms while the contraption plays two free bars underneath. The machine doesn't play the music — the machine IS the music.

UNRATEDLINES 2,950ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 2
Build History
  • v1.0 — Initial build + art polish2,379-line scaffold against the design contract: 8x8 grid drag-and-place workbench with rotation, 5 part types each with tick-driven animation and a per-part registry function, master clock at fixed BPM, quantized audio scheduler architecturally enforcing tick-boundary voice firing, 5 floors of rising rhythmic complexity, exact-tick pattern matching over a 4-bar window, tower-as-level-select with restored floors visibly humming and audibly contributing voices to a tower-mix bus that survives state transitions per a documented gain-node whitelist, narrative intro on title screen, journal beats between floors. Pre-QA play surfaced a title-screen controls visibility bug. Phase 4 QA: 2 CRITICAL (floors 4–5 structurally unsolvable due to a deviation that changed MASTER_PULSE_PERIOD from 1 to 4 without re-validating authored level data; menuFadeIn cap hides controls + "Press SPACE" prompt) + 2 MAJOR (master scheduler stops on SOLVED entry breaking the "contraption keeps playing for 2 free bars" promise; visibilitychange uses bare flag instead of setState routing). Phase 4b fixed all four. Art-director added 489 lines of wood-and-brass identity (procedural workshop background, gear gradients, tower exterior with stained glass, deeper voice tuning on bell partials, reed cutoff sweep, brass-bodied solve clack). Game.html grew to 2,937 lines.
  • v1.1 — Iteration 2 polish13-line diff under the v3.6 80-line polish cap. Three surgical fixes triggered by SHIP-WITH-NOTES playtest verdict: win-check threshold raised from tick 20 to tick 32 so the contraption plays two full 16-tick passes before the signature clack fires (the signature moment now lands as a held breath let out, not as an interruption); goal-bar matched-tick afterglow alpha raised from 0.18 to 0.40 so partial-progress reads as a real feedback channel during RUNNING on floors 2–5; title-screen controls scrim added (rounded rect, alpha 0.35 black, gated by controlsAlpha) so the controls block is legible against the warm tower-glow art at every fade level. Post-iter-2 QA: 0 CRITICAL, 0 MAJOR, 0 MINOR, 2 NITPICK. All 5 Identity Feel Contract bullets CONFIRMED. All 4 Perceptibility Assertions CONFIRMED at runtime. Playtester re-evaluation: SHIP-READY — "the signature moment now fires at the right emotional time." 2,950 lines / 3,500 ceiling (84%). SHIPPED.
#37 Cadence
2026-04-28
SHIPPEDPIPELINE v3.6

A KAZ-inspired turn-based arcade roguelite where the 5×5 grid is a tuned percussion instrument. Each cell has a fixed pentatonic pitch — bashing enemies plays the cell's tone, chains compose melodic phrases, and round-end resolves to a deliberate V→I cadence chord. Between rounds, the player drafts items / maluses / spells from a 4-archetype pool (Harmonic, Rhythmic, Chain-Extender, Dissonant) — the build determines what kind of musician you become. Round 10 boss = signature playback of the round's bash sequence as a composed phrase.

UNRATEDLINES 3,252ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 1
Build History
  • v1.0 — Initial build + art polish2,828-line scaffold with full audio engine and gameplay shipped first build; smoke + gameplay tests passed 17/17. Identity audio engine: 25-cell pentatonic pitch matrix (5 columns C–D–E–G–A × 5 octave/timbre rows) via parameterized playCell, sub-bass continuous drone at chain ×3 (sine 130.81 Hz), harmonic continuous drone at chain ×5 (triangle 392 Hz), V→I cadence-close chord on round-resolve, 200ms drone fade overlapping chord onset. Build draft as first-class state with archetype hover preview + pick-confirmation chord. Round 10 Signature Playback replays the round's bash log scaled to 8s. Phase 4 QA: 0 critical, 4 major (3 pause re-init bugs in ROUND_RESOLVE / BUILD_DRAFT / SIGNATURE_PLAYBACK; 1 missing signature particle trail), 6 minor. Developer fixed all 4 majors in 30 lines (3 one-line `if (prev === STATE.PAUSED) return;` guards + signature particle trail). Art-director (Kai Lund) polished visual identity (1978 dimly-lit recording-studio palette, warm radial amber gradient body, Georgia serif narrative typography, idle-resonance cell pulse synced to BPM) and addressed 5 of 6 minors. Game.html grew to 3,196 lines.
  • v1.1 — Iteration 2 polish78-line diff under the v3.6 80-line polish cap. Phase 6 QA cleared (0 critical, 0 major, 1 minor MINOR-7). Playtester verdict SHIP-WITH-NOTES with 3 actionable polish suggestions triggered the v3.5 polish-default rule. Game-director assigned 4 art-director items: chain-break visual event (CHAIN counter snap-flash + edge-glow desaturation pulse), run-end build summary (archetype-colored squares + item names below score), signature playback ceremony enlargement (130px banner + 28px serif title + 800ms grid-dim fade-in), spell-denied HUD slot blink (visual companion to denial audio). All 3 accumulators (chainBreakFlash, deniedFlashT, signatureDimT) routed through resetGameState() per v3.6 discipline. Playtester re-evaluation: SHIP-READY — "the iteration 2 change that most improves feel." 3,252 lines / 3,500 ceiling (93%). SHIPPED.
#35 Dice Dungeon
2026-04-23
SHIPPEDPIPELINE v3.6

Tactical roguelite on bone dice in The Gambler's Crypt. Each turn you roll 5 dice and assign their faces (1=Move, 2=Block, 3=Block+Attack, 4=Attack, 5=Charge, 6=Wild) across three parallel room-fights. Two re-rolls per turn. The Hook: re-rolling a bad hand into exactly what you needed, signalled by a clarion bell (820Hz, 1.4s ring-out) and a gold bloom on the die face — the one sacred palette break in an otherwise candle-and-stone world. Click-select baseline, 3 floors, Rusher/Caster/Shielder archetypes with telegraphed intents, Tomb Warden boss on floor 3, bone-ivory dice with ink pips on riveted stone doorframes, continuous charge hum, rhythmic breath ambient, localStorage for deepest floor reached.

UNRATEDLINES 3,478ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 1
Build History
  • v1.0 — Initial buildFull must-have scope: 5-die roll engine with tumble animation (500ms, 4-5 unique faces per die), face→action mapping with Wild auto-heuristic, 3-parallel-room assignment via click-select, enemy intent telegraphing, turn resolution with attack/block/move/charge semantics, 2 re-rolls per turn, Hook detection (4 OR-conditions for "needed face"), 3-floor progression with 4 enemy archetypes + Tomb Warden boss, procedural Web Audio for every event (bone clatter 5 variants, three-beat re-roll choreography, clarion bell exclusive to Hook), ambient drone + candle hiss, window.__test telemetry for all 4 Perceptibility Assertions. 2577 lines. Pre-QA play gate caught 3 criticals: room.assignedCount state bleed across same-encounter turns, dead room click zones (downstream), Space/Enter not resolving after turn 1.
  • v1.1 — Iteration 1 bug fixesFixed 6 MAJORs from Phase 4 QA: FLOOR_CLEAR/ROOM_CLEAR states wired into finishResolve, charge hum continuous gain node implemented (200→500Hz rise, per-charge scaling), breath ambient scheduler (~8bpm, ASSIGN-state only), sfx_enemyHit wired into executeResolveStep, pause guards added to updatePopups/updateParticles/updateShake/updateFlash, MENU cold-load ambient routed through setState(MENU) so onStateEnter fires. ~180 lines added, under 2800 line threshold.
  • v1.2 — Iteration 2 bug fixes + polishFixed 3 post-style MAJORs: FLOOR_CLEAR→WIN bypass on floor 3 (now routes through ROOM_CLEAR for the full climactic beat), bestFloor persistence on LOSE (new persistRunMeta helper), re-roll candle click handler (radial 45px hit test). Rolled in 4 surgical polish items: Wild slot label (BLK/ATK) restoring action visibility without a picker modal, first-input audio = dice clatter instead of UI blip, camera held still during 250ms Hook freeze-frame (ceremonial beat), intro text sequential fade-in (4 lines, 550ms stagger, 500ms fade, easeOutCubic), and "Deepest floor reached" label rename. ~80-line combined diff. QA: 0 Critical, 0 Major, 1 Minor, 1 Nitpick. Playtester: SHIP-READY — "the iteration 2 change that most improves feel." 3478 lines. SHIPPED.
#34 Undertow
2026-04-22
SHIPPEDPIPELINE v3.6

Tetris, but the floor is flooding. Pieces fall from above; a waterline rises from below on a tide clock. Every line you clear pumps the waterline down — clears are physically draining the compartment. Cells that the water engulfs flip to drowned blocks and rise one row per tide tick alongside the waterline; they stay clearable but force the stack upward from underneath. Dual lose state: stack the ceiling OR let the water reach it. Industrial submarine vocabulary: riveted steel, brass gauges, bulkhead CLUNK, three-tier alarm escalation (silence → 800Hz whisper → 1200Hz crisis), pressure hum drone tracking waterline height.

UNRATEDLINES 2,287ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 6
NITPICK 2
Build History
  • v1.0 — Initial build + art polishFull must-have scope: classic Tetris core (7 tetrominoes, SRS-lite rotation with I-piece kick table, 7-bag bag, lock delay, hard drop with freeze, soft drop, hold, 4-deep next preview, scoring, level/speed curve), dual gravity with rising waterline on tide-tick timer, grid-native Drowned Blocks (cells engulfed by waterline flip a drowned flag and lift one row per tide tick with column-cascade push), line clears pump waterline down, dual lose conditions with announced death cause (CEILING TOUCH vs HULL FLOODED), 300ms Tetris freeze-frame signature moment, pressure hum tracking waterRow, narrative intro on title screen. Art-director established industrial submarine identity: riveted steel plates, brass rivet corners, porthole frame with 12 rivets, depth and flood gauges, water color interpolating teal → dark teal → danger red as waterRow decreases. QA found 1 CRITICAL (row-0 drowned-lift crash writing to grid[-1][c]) and 4 MAJORs (coolShift saturation FAILED for 4/7 pieces, sfx_drownedConvert unreachable, controls phrasing deviation, bare state = in initGame).
  • v1.1 — Iteration 1 bug fixesFixed all 1 CRITICAL and 4 MAJORs from Phase 4b. Row-0 drowned-lift now triggers CEILING LOSE cleanly instead of crashing. coolShift rewritten as 80% blend toward cool-gray target — monotonic saturation drop across all 7 pieces. sfx_drownedConvert wired into reevaluateDrowned(). Bare `state = STATE.MENU` in initGame() replaced with sentinel + setState(). Deviation log established for "P / Esc — Pause" wording (Esc is a common pause key; listing both reduces discovery friction).
  • v1.2 — Iteration 2 polish53-line diff under the v3.6 80-line polish cap. Five surgical fixes: sfx_drownedConvert gain 0.08 → 0.12 (restored inaudible identity-feel bullet), new sfx_midAlarmChirp at 800Hz/0.06 firing when waterRow ≤ 8 && > 3 (bridges the DEFCON ramp between safe and crisis alarm), per-cell red flash on uplifted drowned cells (100ms 30% alpha — telegraphs floor-moving-upward), caustic shimmer opacity 0.15→0.30 restored to spec 0.20→0.40, depth-gauge needle exponential smoothing. QA: 0 Critical, 0 Major, 6 Minor, 2 Nitpick. Playtester: SHIP-READY — "the most thematically coherent game this pipeline has shipped." 2287 lines. SHIPPED.
#33 MotherLoad
2026-04-21
SHIPPEDPIPELINE v3.6

A side-scrolling arcade mining game where you pilot a drill pod through a procedural tile grid, striking rich while a geothermal pressure gauge ticks up with every meter of depth. Dig, hoard cargo, and surface before the earth buries you — one tight 10-15 minute session with a real ending. 9-state machine, destructible tile grid with 7 tile types (dirt, stone, bedrock, lava, gas, 6 mineral tiers, Mother Lode), 4 upgrade tracks × 5 tiers (fuel tank, hull, drill, cargo), fuel/hull/cargo/pressure resource model with depth-scaled pressure tick, identity mechanic pressure gauge with warning vignette, CLEAN RUN signature moment (slow-mo + major chord) on high-pressure high-cargo surface, procedural Web Audio for every event, Consortium-survey grim-industrial visual identity with CRT bezel and geological strata banding.

UNRATEDLINES 2,924ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 6
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 9-state machine, destructible tile grid with viewport culling and 7 tile types, 4 upgrade tracks × 5 tiers, fuel/hull/cargo/pressure resource model with depth-scaled pressure tick (clamp(2000 - 8*depth, 250, 2000) ms), pressure gauge identity mechanic with warning vignette persisting until hull and pressure both clear, CLEAN RUN signature moment on high-pressure high-cargo surface, procedural Web Audio for every Feel Spec event, grim-industrial CRT bezel + geological strata visual identity. QA found 3 CRITICALs (empty grid on restart, lift WIN missing, LIFT_PROMPT cancel teleport) and 5 MAJORs (Escape in LIFT_PROMPT, warning persistence on hull<20%, CLEAN RUN via lift, cargo-full chime spam, freeze-frame overwrite).
  • v1.1 — Iteration 1 bug fixesFixed all 3 CRITICALs and all 5 MAJORs from Phase 4b. Identity Feel Contract Bullet 2 fix broadened stateAllowsWarning to SURFACE/SHOP/SELLING, which exposed 2 new MAJORs for iteration 2.
  • v1.2 — Iteration 2 bug fixes + polishFixed 2 post-style MAJORs: self-drill surface pressure not zeroed (regression from warning-persistence broadening), and lava contact dealing no hull damage. Rolled in 2 polish items: CLEAN RUN amplified from 0.5x × 0.5s → 0.35x × 1.2s with 56px overlay (identity-mechanic feel), and SPACE input buffer on MENU intro for faster restart. ~83 line diff, under the 150-line combined-polish cap. QA: 0 critical, 0 major, 6 minor, 3 nitpick. Playtester: SHIP-WITH-NOTES. 2924 lines. SHIPPED.
#32 Salt & Bone: Tidebound
2026-04-15
SHIPPEDPIPELINE v3.6

A cursed island action-adventure where skeletal sentinels migrate with the tide. 5 overworld zones + 3 crypt rooms (tilemap-based, screen transitions), 3-phase tide cycle (LOW/MID/HIGH, sinusoidal ~90s period) that floods tiles, migrates sentinels, and spawns drowned risen, 13 overworld skeletal sentinels with per-phase migration positions and bone-dust particle trails, real-time combat (attack, dodge roll with i-frames, 5HP health system), 2-phase Shepherd boss fight (Bone Sweep arc + Sentinel Call then Faster Sweeps + Tide Surge arena flooding), continuous tidal drone (55Hz-95Hz), full signature moment with slow-mo, fracture lines, silence hold, beacon materialization, signal fire escape sequence, permadeath with clean state reset.

UNRATEDLINES 2,936ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 0
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 5 overworld zones + 3 crypt rooms with screen transitions, 3-phase tide cycle (sinusoidal ~90s period), 13 skeletal sentinels with per-phase migration positions, drowned risen spawning at high tide, real-time combat with dodge roll and i-frames, 2-phase Shepherd boss fight, continuous tidal drone, beacon fragment and signal fire escape sequence, permadeath. QA found 3 MAJORs (boss sweep 360-degree hitbox, tide surge tiles cosmetic-only, missing menu fade) + 3 playtester feel fixes.
  • v1.1 — Bug fixes + feel polishFixed all 6 items: boss sweep narrowed to 180-degree arc, tide surge tiles now block movement, menu fade-to-black added, fracture visual stored on death trigger, signal fire proximity prompt in amber, bone clatter volume raised to 0.2. QA: 0 critical, 0 major, 2 minor. Playtester: SHIP-READY. 2936 lines. SHIPPED.
#31 Gravity Well
2026-04-11
SHIPPEDPIPELINE v3.6

A contemplative physics puzzle game where you place gravity wells to sculpt invisible forces that guide a stranded astronaut to an exit hatch. Each solution traces a unique curved trajectory through space — trail lines as calligraphy. 10-level physics puzzle with click-to-place gravity wells (2-5 per level) on a 20px grid, inverse-square gravity simulation at 240Hz substeps, dual-layer trail rendering (3px gold core + 8px glow), harmonic well hum audio system (5 wells tuned to consonant intervals), time control slider (0.25x-3x), 3-star rating per level with localStorage persistence, level select with sequential unlock.

UNRATEDLINES 2,514ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 4
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 10 handcrafted levels with click-to-place gravity wells (2-5 per level) on 20px grid, inverse-square gravity simulation at 240Hz substeps, dual-layer trail rendering (3px gold core + 8px glow), harmonic well hum audio system (fundamental + fifth + octave stacking), time control slider (0.25x-3x), 3-star rating per level with localStorage persistence, level select with sequential unlock, instant reset on failure with wells preserved. Art-director pass: deep indigo star field, Georgia serif title, 8-point sparkle stars, detuned ambient drone, rounded exit hatch, vignette overlay. QA: 0 critical, 0 major, 4 minor, 3 nitpick. Playtester: SHIP-WITH-NOTES.
  • v1.1 — Polish passAdded launch particle burst, well undo shrink animation (150ms scale-to-zero), proximity warning ring (amber dashed ring within 100px of astronaut), trajectory flash on fast failures (orange dashed trail held 400ms). All four feel-spec gaps from iteration 0 addressed. Playtester: SHIP-WITH-NOTES.
  • v1.2 — Polish tweaksExit hatch collision radius 16→20px, orbit detection timer 30→15s sim time, keyboard shortcut labels on level select buttons. 11-line diff (under 80-line cap). Playtester: SHIP-WITH-NOTES. 2514 lines. SHIPPED.
#30 Hex Beat
2026-04-10
SHIPPEDPIPELINE v3.6

A rhythm game on a honeycomb grid where tapping illuminated hexagons in time builds a layered electronic track from silence. Every correct chain adds a musical layer; every miss strips one back. The music IS the game. 19-hex pointy-top honeycomb grid, beat clock driven by AudioContext.currentTime, 5 procedural audio layers (kick, bass, arpeggio, lead, pad), timing windows (Perfect ±50ms, Good ±120ms) with EARLY/LATE feedback, chain length scaling 3-8 tiles, 3-minute song structure (360 beats at 120 BPM, 6 sections), dark neon arcade aesthetic with CRT scanline overlay.

UNRATEDLINES 1,350ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 6
NITPICK 4
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 19-hex pointy-top honeycomb grid with axial coordinate hit detection, beat clock driven by AudioContext.currentTime with lookahead scheduling, 5 procedural audio layers (kick/bass/arpeggio/lead/pad) that add/remove based on streak thresholds (5/15/30/50), timing windows (Perfect ±50ms, Good ±120ms), chain length scaling (3-8 tiles) with spatial complexity progression, 3-minute song structure (360 beats at 120 BPM, 6 sections). Art-director pass: dark neon arcade aesthetic with CRT scanline overlay, chromatic aberration title, layer-colored glow escalation. Player agent found 2 CRITICALs (streak reset between chains, game starting in GAME_OVER) — fixed. QA found 3 MAJORs (menu overflow, victory audio cut, tab auto-resume) — fixed.
  • v1.1 — Polish passAdded EARLY/LATE timing feedback on misses, ghost bass hint during layer 1, best-layers-held HUD stat, manual pause fix, section transition bandpass cymbal. Fixed ghost bass routing bug (was routing through silent bassGain instead of masterGain). Playtester upgraded from SHIP-WITH-NOTES to SHIP-READY. 1350 lines. SHIPPED.
#29 Twisted Snake
2026-03-31
SHIPPEDPIPELINE v3.3

Classic snake where every food pickup triggers a random time-limited mutation — reversed controls, speed boost, phasing through self, toxic trails, mirrored controls, or shrinking body. Mutations stack when you eat fast enough, creating compounding chaos and escalating score multipliers. 6 mutation types with independent timers, mutation stacking with score multiplier (1x base + 1x per active mutation), phosphor CRT visual identity, 21 procedural SFX, background heartbeat pulse that scales BPM with active mutations.

FUN 5/5COHERENCE 5/5LINES 1,854ITERATIONS 0
QA Final
CRITICAL 0
MAJOR 0
MINOR 8
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 20x20 grid-based snake with smooth visual interpolation, 6 mutation types (Reverse, Speed, Phase, Toxic Trail, Mirror, Shrink) with independent timers, mutation stacking with score multiplier, 21 procedural SFX via Web Audio API, background heartbeat pulse scaling BPM with active mutations. Art-director pass (Kai Lund): phosphor CRT identity with 16-bit sprite shading, scanlines, glitch effects, mutation-reactive grid tinting. Phase 4 QA found 5 MAJORs (visibility pause, signature double-flash, grid flare, multiplier animation, input priority) — all fixed in Phase 4b. Post-style QA: 0 critical, 0 major, 8 minor, 3 nitpick. Playtester verdict: SHIP-READY. 1854 lines. SHIPPED.
#28 The Clockmaker
2026-03-30
SHIPPEDPIPELINE v3.3

A tower defense game framed as building a precision killing machine. Place mechanical towers that fire in coordinated rhythms along a fixed path, upgrade them to tighten the pattern, and watch your clockwork defense dismantle waves of enemies with industrial elegance. 4 tower types (Gear, Piston, Sprocket, Tesla Coil) with 3 upgrade levels each, distinct percussive sounds at separated frequency bands (1200Hz/80Hz/150Hz/2000-4000Hz) creating emergent polyrhythmic soundscape. 3 enemy types + bosses, 20 waves, constrained economy with no tower selling, industrial/mechanical aesthetic with dark steel-grey and warm brass/copper accents.

UNRATEDLINES 3,122ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 4 tower types (Gear/Piston/Sprocket/Tesla Coil) with 3 upgrade levels, distinct targeting logic per type, 3 enemy types (Normal/Fast/Armored) + bosses at waves 5/10/15/20, 20 waves with escalating difficulty, grid-based placement with hover preview and range indicators, constrained economy (150 starting, no selling), 7 game states with comprehensive transition logic, 21 procedural SFX functions via Web Audio API, full Feel Spec implementation (particles, damage popups, freeze frames, screen shake). Art-director pass (Kai Lund): industrial clockmaker aesthetic with 6-color locked palette, checkerboard steel-blue grid, riveted iron-brown path, brass UI accents, enhanced tower/enemy rendering with mechanical details, rebuilt tower fire sounds with proper envelopes and harmonics. Phase 4 QA found 2 MAJORs (em dash in controls, game-over swallowed by wave-clear). Player agent: COMPLETABLE. Phase 6 QA: 0 critical, 0 major, 6 minor, 3 nitpick.
  • v1.1 — Bug fixes + feel improvementsFixed 4 bugs (3 click zone alignments, resumeAudio on P-key unpause) + 3 feel improvements (invalid placement red flash with sfx_invalid, enemy-leak 200ms shrink/fade tween, 3-pulse lives flash). QA verification caught 1 MAJOR regression (cleanup loop removing enemy before tween rendered — fixed with one-line condition). Playtester upgraded from SHIP-WITH-NOTES to SHIP-READY. 3122 lines. SHIPPED.
#27 Top-Down Racer
2026-03-29
SHIPPEDPIPELINE v3.3

A top-down drift racer where drifting is the economic engine of speed. Slide through corners to charge your turbo meter, then punch the boost on straights to blow past AI opponents. Spin out and you lose your charge. Tiny cars, tight curated tracks, smoke trails that prove you earned every inch. 5 tracks from easy sweepers to technical hairpins, 3 AI opponents with difficulty scaling, Quick Race and Championship modes.

UNRATEDLINES 2,735ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: drift physics with grip/slip model, turbo meter charged by drifting (drained on spinout/wall-hit), 5 curated Catmull-Rom spline tracks, 3 AI opponents with waypoint following, Quick Race and Championship modes, minimap, HUD with turbo meter, skid marks on persistent offscreen canvas, tire smoke and turbo speed lines, full procedural audio (engine drone, tire screech, turbo whoosh, collision, countdown, fanfare), neon-arcade visual identity by Kai Lund. Player agent found 2 critical rendering bugs (camera offset, mouseClicked ordering). QA found 1 MAJOR (AI false lap), 4 MINORs.
  • v1.1 — Bug fixesFixed AI false lap at race start (lastProgress initialization), turbo meter red flash, screen flash triggers, 2s results hold, sinusoidal AI wobble, controls text visibility. QA: 0 critical, 0 major.
  • v1.2 — Polish passDefault difficulty to Easy for first-time players, DRIFT label near turbo meter for identity-mechanic discoverability, best lap time on results screen. Playtester upgraded from SHIP-WITH-NOTES to SHIP-READY. 2735 lines. SHIPPED.
#26 Toxic River
2026-03-28
SHIPPEDPIPELINE v3.3

A Frogger variant where you ferry cargo back and forth across an industrial canal that dies a little more with each crossing. The outbound trip is planning. The return trip is consequences. Every crossing poisons the river, and every return trip forces you through the wreckage you just made. Grid-based committed movement, 5 river lanes with sinking logs, 4 traffic lanes with vehicles, per-crossing timer that tightens with deliveries, bidirectional crossing state machine, pollution escalation system (log sink levels 0-3, water color shift, vehicle speed increase, timer tightening), committed hop animation with squash/stretch, procedural audio with industrial drone that thickens with pollution harmonics, ferryman aesthetic with industrial decay.

UNRATEDLINES 2,202ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 0
Build History
  • v1.0 — Initial build + art polishFull must-have scope: grid-based movement with committed weighted hops, 5 river lanes with log/platform riding, 4 traffic lanes with vehicles, bidirectional crossing (outbound delivery + return pickup), pollution escalation system (log degradation 0-3 sink levels, water color shift, vehicle speed increase, timer tightening), one-hit death with instant restart, per-crossing timer, delivery counter with localStorage high score persistence. Full procedural audio: industrial drone with pollution-dependent harmonics, water bandpass filter shifting 500Hz to 180Hz, hop impact, log creaks, differentiated death sounds (water/vehicle/sunk log), delivery groan. Art-director pass (Kai Lund): ferryman aesthetic, dark water with sickly green pollution accents, weighted hop squash/stretch, pollution pulse animation, CRT-style visual treatment. QA found 3 MAJORs (death-to-game-over 300ms pause missing, drone harmonic volume not reset on restart, gameplay test strategy false negative).
  • v1.1 — Bug fixesFixed 3 MAJORs: death-to-game-over 300ms hold pause inserted in updateDying(), drone harmonic target volumes reset in initGame(), gameplay test strategy refactored to remove death-forcing preamble. QA: 0 critical, 0 major.
  • v1.2 — Polish passSteepened early pollution visual curve (power 0.55 for front-loaded color shift), added delivery marker pulse on far bank, added log degradation shimmer (250ms green outline flash), fixed death hold visibility (alpha clamp 0.15 for ghost silhouette). Playtester upgraded from SHIP-WITH-NOTES to SHIP-READY. Fun: 4/5, Coherence: 5/5. 2202 lines. SHIPPED.
#25 Star Force
2026-03-24
SHIPPEDPIPELINE v3.2

A horizontal-scrolling space shooter inspired by Gradius III, featuring the strategic power-up bar system where players collect capsules, cycle through upgrades (Speed Up, Weapon, Option, Shield), and choose when to cash in. Death strips all power-ups, creating a tense escalation-and-loss loop. 4-slot Gradius-style power-up bar, 5 enemy types (basic fighter, swooper, formation flyer, capsule carrier, turret), 3 boss encounters with 2 phases each (Vanguard, Leviathan, Rift Core), parallax starfield, CRT-era arcade glow aesthetic with neon projectiles, 18 procedural audio SFX + boss drone ambience, particle effects, screen shake, freeze frames, muzzle flash.

UNRATEDLINES 2,958ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 4-slot Gradius-style power-up bar (Speed Up, Weapon toggle Spread/Laser, Option x2, Shield 3-hit), 5 enemy types (basic fighter, swooper, formation flyer, capsule carrier, turret), 3 boss encounters with 2 phases each (Vanguard, Leviathan, Rift Core), parallax starfield, score system with localStorage high score persistence, narrative intro on title screen, pause overlay with controls. Art-director pass (Kai Lund): CRT-era arcade glow aesthetic, neon projectiles, multi-layer beam rendering, boss auras, enhanced SFX. 18 procedural audio SFX + boss drone ambience. QA found 2 MAJORs (stage intro sound timing, missing muzzle flash on basic/spread fire) + 3 MINORs.
  • v1.1 — Bug fix + difficulty tuningFixed 2 MAJORs (stage intro sound fires on STAGE_INTRO entry not exit, muzzle flash added to basic/spread fire). Difficulty tuning: turrets pushed from wave 5 to wave 7, early bullet speed reduced 17% for waves 1-6. Playtester upgraded from SHIP-WITH-NOTES to SHIP-READY. Fun: 4/5, Coherence: 5/5. 2958 lines. SHIPPED.
#24 Last Light
2026-03-24
SHIPPEDPIPELINE v3.2

A Missile Command reimagining where six named cities with visible populations and dimming light become the emotional center. Three defense bases with limited ammo, click-to-target counter-missile system with nearest-base auto-selection, chain-explosion mechanic with escalating visual/audio feedback, wave progression with escalating difficulty, wave-end interstitial with casualty reports and population regeneration, city destruction fade-to-dark animation with mournful audio. Somber visual identity: dark indigo sky with procedural stars, warm amber city lights, harsh white explosions. 10 procedural audio effects via Web Audio API.

UNRATEDLINES 1,500ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 1
Build History
  • v1.0 — Initial build + art polishFull must-have scope: three defense bases with limited ammo, six named cities (Meridian, Solace, Port Ember, Haven, Kindling, Ashford) with population counters and proportional amber glow, click-to-target counter-missile system with nearest-base auto-selection, expanding/contracting explosion mechanic, chain-explosion with escalating visual/audio feedback (shockwave rings, pitch escalation, screen shake), wave progression with escalating difficulty, wave-end interstitial with casualty reports and population regeneration, city destruction fade-to-dark with mournful audio, 10 procedural audio effects, particle system, localStorage high score (civilians saved). Art-director pass: procedural stars, radial gradient city glow, gradient missile trails, nighttime satellite photo aesthetic. QA found 1 MAJOR (GAME_OVER→MENU city data persistence — dark silhouettes on menu) + 2 MINORs.
  • v1.1 — Bug fixFixed MAJOR: comprehensive city data/particle/popup/juice state cleanup on GAME_OVER→MENU transition. Cities now render warm amber glow on menu. QA: 0 critical, 0 major.
  • v1.2 — Polish passTrimmed WAVE_CLEAR from 3.5s to 2.5s (pacing). Increased ammo counter visibility (11px→14px, brighter #dde8f0). Added green shimmer particles during wave clear (relief beat). Completed ghost entity cleanup on menu. Fun: 4/5, Coherence: 5/5. 1500 lines. SHIPPED.
#23 Cascade Breaker
2026-03-23
SHIPPEDPIPELINE v3.2

A brick-breaking arcade game where same-colored bricks detonate in chain reactions when adjacent bricks are destroyed. The classic Breakout grid becomes a puzzle to read: aim for the right brick, and a single hit cascades into a screen-clearing avalanche of destruction. BFS flood-fill chain reactions on same-colored adjacent bricks, escalating cascade audio (rising pitch per chain link, resolution chord on completion), crystalline 4-layer brick rendering, neon-on-dark Geometry Wars aesthetic, combo counter, exponential chain scoring, 5 levels with escalating difficulty, and a 250ms signature moment freeze on 6+ cascades.

UNRATEDLINES 1,859ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 1
Build History
  • v1.0 — Initial build + art polishFull must-have scope: paddle-and-ball physics with paddle-edge angle control, 5-color brick grid with intentional cluster seeding, BFS flood-fill cascade mechanic with staggered destruction timing, escalating cascade audio (sawtooth crunch per brick with rising pitch + 4-voice resolution chord), crystalline 4-layer brick rendering (base glow + dark inner + gradient highlight + specular edge), combo counter, exponential chain scoring, 5 levels with escalating difficulty, 3 lives, 14 procedural audio functions, particle system, screen shake, localStorage high score. Art-director pass (Kai Lund): neon-on-dark Geometry Wars aesthetic, radial gradient background with dot grid, layered brick rendering, gradient paddle with cyan glow, ball trail with color tint, cyan HUD hierarchy, enhanced audio (layered sawtooth+sine paddle hit, crunchier brick break with noise burst, beefed cascade complete chord with reverb delay). QA found 2 MAJORs (cascade dying flag blocking level clear, arrow key input overwritten by mouse) + 1 MINOR (vertical ball trap on center launch).
  • v1.1 — Bug fixesFixed 2 MAJORs (dying flag cleared in updateCascade, mouseActive flag for keyboard/mouse coexistence) + 1 MINOR (enforceMinAngle called on launch). QA: 0 critical, 0 major.
  • v1.2 — Polish passFixed residual dying flag in handleBallDrop force-complete path. Added 'no cascade' micro-feedback (white ring + short sfx on isolated hits). Added 250ms freeze frame on 6+ cascade completion for signature moment. Fun: 4/5, Coherence: 5/5. 1859 lines. SHIPPED.
#22 Deep Drop
2026-03-23
SHIPPEDPIPELINE v3.2

A vertical falling shooter inspired by Downwell where every shot creates a shockwave on impact, pushing enemies and nudging platforms. The player descends an endless well, using their gun as a weapon, brake, and spatial reshaping tool. A sonar-pulse aesthetic ties the visual identity to the core mechanic: you see by shooting. Canvas-based vertical scroller with gravity-driven falling, downward shooting with recoil, shockwave system applying radial force to nearby entities on impact, sonar-pulse visuals (expanding cyan rings illuminate the dark well), two enemy types (Walkers and Flyers), stomp mechanic, rising ceiling forcing continuous descent, procedural well generation with difficulty scaling, full procedural audio (shot crack, sonar thump, stomp crunch, ambient rumble), and art-directed visual polish (chiseled well walls, multi-ring sonar pulses with birth flash, enemy silhouettes, CRT-style bezel).

UNRATEDLINES 2,052ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 7
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: gravity-driven falling with horizontal air control, downward shooting with recoil and limited ammo (reloads on platform landing), shockwave system (radial force pushes nearby enemies and nudges platforms on bullet impact), sonar-pulse visuals (expanding concentric cyan rings illuminate the dark well), two enemy types (Walkers patrol platforms, Flyers sine-wave hover in shaft), stomp mechanic (landing on enemies kills them and bounces player), rising ceiling forcing continuous descent, procedural well generation with difficulty scaling, HP system (3 hits), full procedural audio (shot crack, sonar bass thump, stomp crunch, ambient rumble deepening with depth), juice system (freeze frames, screen shake, particles, score popups, i-frames). Art-director pass (Kai Lund): chiseled well wall texture, multi-ring sonar pulses with birth flash, enemy silhouettes with glow, CRT-style bezel frame, ceiling drip detail. QA found 4 MAJORs (death animation timer scaled by slow-mo, missing title screen fade, inverted score popup scale, walker shockPushed race condition) + 7 MINORs.
  • v1.1 — Bug fixesFixed 4 MAJORs (death timer uses real time, MENU_FADE state for title transition, score popup scale corrected, walker shockPushed guard). QA: 0 critical, 0 major.
  • v1.2 — Polish passDoubled shockwave force (200 to 400) for visible platform displacement. Added stomp hint text for mechanic discovery. Increased flyer base visibility with per-instance sine pulse (0.4-0.6 opacity). Fun: 4/5, Coherence: 5/5. 2052 lines. SHIPPED.
#21 Dark Path
2026-03-23
SHIPPEDPIPELINE v3.2

A text-based survival journey through a hostile, unknowable world. The player moves forward one decision at a time — fight or flee, rest or press on, eat or save. Every step costs something. There is no going back. Death is frequent, fast, and instructive. A Souls game compressed into text. 19 data-driven encounters across 3 difficulty tiers, full procedural Web Audio API soundscape (breathing ambient drone, percussive combat, deliberate silence), typewriter text presentation, and a Signature Moment (The Hunter) that rewards mastery through death.

UNRATEDLINES 1,887ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 3
Build History
  • v1.0 — Initial build + art polishFull must-have scope: 19 data-driven encounters (18 tiered + 1 finale), 3 resources (HP, Supplies, Weapon Quality), per-step supply attrition, combat with weapon-quality checks, rest mechanic, typewriter text with skip, DOM-based rendering. Full procedural audio: breathing ambient drone (3 oscillators + noise), footstep pulse, damage impact, weapon ring, heal tone, wind gust, death tones, victory tone. Art-director pass (Kai Lund): title text-shadow, intro text styling, HUD separator, choice button polish, vignette attack/release, drone breathing LFO, 4th drone oscillator, combat tension pitch-shift, tuned sounds, fire crackle on rest. QA found 2 MAJORs (tab-return not auto-unpausing, pause during continue transition causing stuck state) + 3 MINORs.
  • v1.1 — Bug fixesFixed 2 MAJORs (tab-return auto-unpause, transition timer cancellation on pause). Fixed Space key on menu, supplies display clamp. QA: 0 critical, 0 major.
  • v1.2 — Polish passFixed drone breathing LFO restart across runs. Pinned E13 (The Hunter) as first Tier 3 encounter for reliable Signature Moment delivery. Added weapon upgrade visual flash + scale pulse. Implemented 600ms menu fade-out. Fixed E17 supply reward, added farthest distance to victory stats. Fun: 4/5, Coherence: 5/5. 1887 lines. SHIPPED.
#20 Death Race
2026-03-22
SHIPPEDPIPELINE v3.1

Faithful recreation of the 1976 Exidy Death Race with modern audiovisual feel. Drive a car across an open field, run over gremlins for points, and watch each kill become a permanent tombstone obstacle. The field fills with your own success until navigation becomes a white-knuckle threading act through a graveyard you built. Tank-style car with weight, momentum, and drag-based deceleration. Gremlins with random-walk AI and tombstone avoidance. Permanent tombstone placement at every kill location — the core self-sabotaging mechanic. Full procedural audio: engine drone with LFO pitch modulation, gremlin hit composite, tombstone collision crunch, graveyard atmosphere drone that builds with tombstone count. Monochrome bone-on-charcoal visual identity with CRT scanline overlay, vignette, and phosphor glow effects.

FUN 1/5COHERENCE 2/5LINES 1,631ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 0
Build History
  • v1.0 — Initial build + art polishFull must-have scope: tank-style car with weight and momentum, gremlins with random-walk AI and tombstone avoidance, permanent tombstone placement at kill locations, tombstone collision with stun and screen shake, 90-second countdown, high score persistence, procedural audio (engine drone, gremlin hit, tombstone crunch), particle effects (dust trail, debris burst, sparks). Art-director pass: engine LFO modulation, graveyard atmosphere drone, CRT scanlines, vignette, enhanced tombstone and car rendering. QA found 1 MAJOR (engine drone + graveyard atmosphere playing during tab hide) + 2 MINORs (score popup scale inverted, opacity hold fading from frame 1).
  • v1.1 — Bug fixFixed tab-hide audio MAJOR (visibilitychange handler now mutes gain nodes). Fixed score popup scale animation and opacity hold. All 3 fixes confirmed by QA. QA: 0 critical, 0 major.
  • v1.2 — Polish passIncreased stun duration from 0.4s to 0.55s for signature moment. Improved score popup legibility (22px + dark shadow). Added quiet graveyard drone on title screen. All 3 confirmed by playtester. Fun: 4/5, Coherence: 5/5. 1631 lines. SHIPPED.
#19 Lunar Lander
2026-03-22
SHIPPEDPIPELINE v3.0

Faithful recreation of the 1979 Atari Lunar Lander with modern audiovisual feel. Rotational thrust control, procedurally generated terrain with landing pads of varying difficulty and score value, limited fuel, and physics-based descent. The silence-roar-silence audio axis and vector-modern aesthetic are the differentiators. Dual-layer bandpass filtered white noise thrust, crash impact with layered thud+noise+ring+sawtooth, landing chime, ambient hum, fuel warning beep, level advance arpeggio, high score fanfare. Two-tier star field, Kai Lund art direction with Courier New typography, green/cyan HUD hierarchy, lander glow, terrain fill, pad bracket markers.

UNRATEDLINES 1,752ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 0
Build History
  • v1.0 — Initial build + art polishFull must-have scope: physics with gravity, rotational thrust, angular damping, horizontal screen wrapping. Procedurally generated terrain with 2-3 landing pads per level. Fuel system with consumption during thrust. Landing validation with PERFECT detection. Level progression with scaling difficulty. Procedural audio: thrust roar, crash impact, landing chime, ambient hum, fuel warning, level advance arpeggio, high score fanfare. Visual juice: thrust flame particles, crash debris, screen shake, freeze frames. Art-director pass (Kai Lund): Courier New typography, green/cyan HUD hierarchy, lander glow, terrain fill, pad bracket markers. QA found 2 MAJORs (title screen controls text mismatch, crash timer counting slow-mo time) + 5 MINORs.
  • v1.1 — Bug fixesFixed 2 MAJORs (tab-hide formal PAUSED state with overlay, game-over grayscale desaturation). Fixed audio tab-hide suspension, ambient gain targets, slow-mo retiming, fuel flash rate, juice pause freeze. QA found 1 new MAJOR (double star render defeating desaturation filter).
  • v1.2 — Final fixFixed double star render (one-line deletion of redundant renderStars() call in renderGameOverScreen). Iteration cap reached. QA: 0 critical, 0 major. Fun: 4/5, Coherence: 5/5. 1752 lines. SHIPPED.
#18 Sea Wolf
2026-03-22
SHIPPEDPIPELINE v2.9

A submarine survival horror game where sonar pulses are your only vision, every torpedo reveals your position to hunting destroyers, and the ocean is dark. Based on the 1976 Midway arcade game, reimagined as atmospheric survival where silence is your best weapon. Canvas-based survival with sonar-as-vision mechanics. Triple-pass sonar ring rendering with phosphor decay and 100ms echo hold. 11+ procedural audio functions including layered sonar ping with echo return, stereo-panned propeller wash, proximity-modulated depth charge rumble, and 45/47Hz ambient beat-frequency drone. Signature moment: destroyer kill triggers explosion-as-sonar-pulse illuminating nearby ships, with rising audio sting and drone dip. CRT-aesthetic visual treatment: scanlines, edge vignette, depth gradient, phosphor green palette.

UNRATEDLINES 1,805ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 0
Build History
  • v1.0 — Initial build1167 lines. Full must-have scope: sonar pulse mechanic with decaying phosphor-green echoes, merchant and destroyer ship entities, torpedo firing with real travel time and position reveal, depth charge system with screen shake and hull damage, player submarine movement, hull integrity system, escalating difficulty over 180 seconds, score tracking with localStorage high score, procedural audio (sonar ping, torpedo launch, underwater explosions, depth charge descent, propeller sounds, ambient pressure drone, hull stress groaning). QA found 5 major bugs (first convoy timing, pause audio resume, missing depth charge descent audio, no sub on title screen, death desaturation timing).
  • v1.1 — Polish pass + art directorFixed 3 QA minors (pause audio bleed, high score tie, propwash/DC rumble pause). Added dry-fire feedback, sonar echo hold, title fade-out, depth boundary line. Art-director pass (Kai Lund) added extensive visual polish and propeller wash system. QA found 1 new major (slowMo during pause). 1805 lines.
  • v1.2 — Bug fixesFixed slowMo pause guard, oscillator array cleanup, propwash buffer cleanup. QA found 2 new majors (high score banner unreachable, DEATH_ANIM pause state corruption).
  • v1.3 — Final fixesFixed high score banner (newHighScore flag), pause state restoration (stateBeforePause), propwash try/catch. Iteration cap reached. All tests pass. QA: 0 critical, 0 major. Fun: 4/5, Coherence: 5/5. 1805 lines. SHIPPED.
#17 Mrs Pac-Man
2026-03-22
SHIPPEDPIPELINE v2.9

A maze-chase journey through four distinct worlds inspired by Ms. Pac-Man (1982). Each maze has its own color palette (blues, ambers, purples, reds), audio mood, and ghost aggression profile. Semi-random ghost AI replaces deterministic targeting, making pattern memorization unreliable. Moving fruit bounces through corridors. Four structurally distinct 28x31 maze layouts with compacted string encoding. Per-maze visual identity and audio identity with shifting siren frequencies, waka-waka tones, and sound effect timbres. 12+ procedural audio effects via Web Audio API. Signature Moment on first Maze 4 clear: sustained four-tone chord, 40 multi-colored particles, double flash.

UNRATEDLINES 1,379ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 0
NITPICK 2
Build History
  • v1.0 — Initial build + art polish848 lines. All must-have scope: four distinct 28x31 maze layouts with compacted string encoding, semi-random ghost AI (25%/35%/50%/65% random turns per maze), moving fruit entering through tunnels and bouncing randomly, per-maze visual identity (cool blues, warm ambers, deep purples, stark reds), per-maze audio identity (shifting siren frequencies, waka-waka tones), 12+ procedural audio effects, ghost pen with scheduled releases, scatter/chase mode cycling, frightened mode with chain scoring, input buffering. Art-director pass (Kai Lund): corridor-style wall rendering, bezier bow on Mrs Pac-Man, ghost dome rendering with directional eyes, per-maze fruit shapes, layered audio effects. QA found 2 major bugs (ghost eyes pathfinding stuck due to tile-center threshold, ghosts walking through pen gate).
  • v1.1 — Bug fixes + polishFixed 2 MAJORs (ghost eyes pathfinding with tile-crossing detection, pen gate collision). Added 0.5s invulnerability on respawn, shorter READY on death (1.2s vs 2s). Polish: power pellet visual punch (stronger flash + screen shake), Signature Moment sustained chord (four simultaneous oscillators at all maze tonal centers), doubled signature particles with second delayed flash. QA: 0 critical, 0 major. Fun: 4/5, Coherence: 5/5. 1379 lines. SHIPPED.
#16 Joust
2026-03-21
SHIPPEDPIPELINE v2.9

A recreation of the 1982 Williams arcade classic with a rising lava twist. Players ride a flying ostrich and defeat enemy knights by jousting from above. Each wave the lava rises, swallowing platforms from the bottom up, compressing the arena into a desperate knife-fight in the sky. Flap-to-fly physics with gravity, impulse, momentum, and drag. 3 enemy tiers (Bounder, Hunter, Shadow Lord). Egg mechanic: defeated knights drop eggs that hatch into tougher knights if not collected. Rising lava swallows platforms each wave, with platform re-emergence between waves. CRT-dark visual aesthetic with entity glow, lava underlight, and procedural audio including 14 sound effects and lava ambient drone.

UNRATEDLINES 2,064ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build + art polishFull must-have scope: flap-to-fly physics with gravity/impulse/drag, height-based jousting with 3 enemy tiers, egg mechanic with hatch timer, rising lava with platform dissolution, 5-platform arena with screen wrapping, 14 procedural audio effects + lava ambient drone, full juice system. Art-director pass (Kai Lund): CRT noise texture, entity glow, lava underlight, platform edge highlights. QA found 2 major bugs (platform re-emergence logic, lava ambient during pause). Balance: reduced wave 1 to 2 enemies, airborne start spawn.
  • v1.1 — Bug fixes + polishFixed 2 MAJORs (high score banner regression, WAVE_CLEAR pause exploit). Polish: enemy walk speed halved during invincibility, first-encounter tier labels (HUNTER, SHADOW LORD), HATCHED! popup on egg hatch. QA found 2 new MAJORs (newHighScoreThisGame not reset, seenTier not reset between games). Fun: 4/5.
  • v1.2 — Final fixesFixed both state-carry-over MAJORs: newHighScoreThisGame reset via else branch + restart path, seenTier reset in MENU-to-WAVE_INTRO. QA: 0 critical, 0 major. Fun: 4/5, Coherence: 4/5. 2064 lines. SHIPPED.
#15 Nutty Dash
2026-03-21
SHIPPEDPIPELINE v2.8

A side-scrolling platformer where a squirrel races through an autumn forest collecting nuts before winter arrives. 10 short, fast levels (15-30 seconds each) that progressively strip the forest bare — trees lose leaves, gaps widen, wind pushes you sideways — turning a cozy autumn romp into a desperate survival scramble. Auto-running squirrel with variable-height jump physics, coyote time, jump buffer, and auto-hop at branch edges. Full seasonal visual progression from warm gold/orange to near-monochrome gray/white. Wind system starting at level 5 with visual telegraph streaks. 13+ procedural audio effects including ascending nut-pitch ladder and background drone shifting from 80Hz to 60Hz. Signature moment on level 10: slow-mo into hollow, victory chord, sleeping squirrel surrounded by nuts.

UNRATEDLINES 1,531ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build + art polish1029 lines. Full must-have scope: auto-running squirrel with variable-height jump, coyote time, jump buffer. 10 procedurally generated levels driven by seasonal parameters (tree density, gap width, nut scarcity, wind strength). Seasonal visual progression from warm gold/orange to near-monochrome gray/white. Wind system at level 5+. 13+ procedural audio effects. Art-director pass (Kai Lund): sky gradients, ground detail, squirrel character work. QA found 2 major bugs (phantom auto-jump on restart, wind audio not tracked). Fixed before style pass.
  • v1.1 — Feel improvements + bug fixesAdded auto-hop at branch edges, quota-met celebration (golden flash + particles + GO! popup), background drone (80Hz→60Hz shift at level 8). Fixed touch-during-pause phantom jump, slow-mo timing, particle persistence, level-complete denominator. QA found 3 new major regressions (L10 hollow multi-fire, burst coordinates, tab-switch L10 transition). Fun: 3/5.
  • v1.2 — Final fixes + tuningFixed all 3 regressions. Tuned wind telegraph opacity (0.55-0.65) and auto-hop velocity (45%). QA: 0 critical, 0 major. Fun: 4/5, Coherence: 5/5. 1531 lines. SHIPPED.
#14 CASCADE
2026-03-21
SHIPPEDPIPELINE v2.8

Tetris with cascade/chain reaction mechanics. When a line clears, individual blocks fall independently under gravity, potentially triggering additional line clears in chain reactions scored exponentially (2^(N-1) multiplier). All 7 standard tetrominoes with SRS-lite rotation and wall kicks, ghost piece, next piece preview, DAS/ARR for smooth movement. Dark modern arcade aesthetic with vivid saturated block colors, beveled rendering, motion trails on cascade blocks, and per-chain-depth chromatic glow. Direct restart from game over for zero-friction retry.

UNRATEDLINES 1,469ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 0
Build History
  • v1.0 — Initial build1194 lines. Full must-have scope: all 7 tetrominoes with SRS-lite rotation, wall kicks, ghost piece, next piece preview, DAS/ARR, cascade gravity system with individual block falling after line clears, exponential chain scoring (2^(N-1) multiplier), ascending audio tones and screen shake per chain link, resolve chord, dark arcade visual identity with beveled blocks, high score persistence. QA found 0 critical, 3 major (dead CASCADE->GAME_OVER path, I-piece rotation drift, tab-switch during CASCADE bypassing pause).
  • v1.1 — Bug fixesFixed all 3 major bugs + 3 minor (high score tie display, juice state bleed on restart, cascade keyboard pause). Art-director pass added visual polish. QA cleared to 0 major. Fun 4/5, coherence 5/5.
  • v1.2 — Polish passMotion trails on cascade blocks (vacated-cell ghosts at 0.35/0.12 alpha). Direct restart from game over (any key after 1-second lockout). Per-chain-depth block glow (shadowBlur scales with chainCount, capped at 16). Fun raised to 5/5. 1469 lines. SHIPPED.
#13 Galaxian
2026-03-20
SHIPPEDPIPELINE v2.8

A faithful recreation of the 1979 Namco Galaxian arcade shooter with modern game feel and CRT arcade cabinet aesthetic. 38-enemy formation (2 Red Flagships, 16 Purple Guards, 20 Blue Drones) with idle sway animation, Bezier curve dive attack paths, flagship escort mechanic for bonus scoring (150/200/800 points), and a single-bullet-at-a-time constraint. CRT visual treatment with scanline overlay, phosphor bloom, vignette, and enhanced sprites. 12 procedural audio events including formation hum. The gap in existing browser Galaxian clones is not missing mechanics — it is missing feel.

UNRATEDLINES 1,790ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 1
Build History
  • v1.0 — Initial build1367 lines. Full must-have scope: 480x640 portrait canvas, 38-enemy formation with idle sway, Bezier curve dive paths with weighted random selection, flagship escort mechanic (0-2 escorts for 150/200/800 bonus), single bullet constraint, full scoring system, stage progression with 5 difficulty scaling formulas, 3-life system with invincibility respawn, 12 procedural audio events, full juice system (screen shake, freeze frames, particles, score popups). QA found 0 critical, 4 major (stage transition particle leak, return-state scoring, simultaneous death+kill edge case, localStorage key).
  • v1.1 — Bug fixes + art polishFixed all 4 major bugs. Art-director pass: CRT visual identity (scanline overlay, phosphor bloom, vignette, deep navy-black background), enhanced sprites (antennae/wings/cockpit details with shadowBlur glow per type), three-tier starfield with twinkle, dual-pass bloom on bullets, formation hum at 55Hz, richer audio (4-oscillator flagship explosion, wider dive swoosh, warmer stage clear fanfare). 1790 lines.
  • v1.2 — Polish passSlow-mo on final death, near-miss spark particles on bullet exit, stronger signature moment flash (70ms/45% opacity), stage clear particle burst (25 gold/white/cyan particles), tied high score display fix, explicit formation hum restart on stage transition. SHIPPED.
#12 Wave Climb
2026-03-20
SHIPPEDPIPELINE v2.7

Hill climb racing reimagined as a dolphin riding ocean waves. Physics-based momentum game where you ride a bezier-curve dolphin over procedurally generated waves, managing angle and energy to travel as far as possible. The dolphin flows with the water — it curves, arcs, and flexes with angular velocity. Momentum physics on procedural sine-wave terrain with landing quality tiers (clean/okay/bad), flip tricks, combo chains, and a sunset-over-ocean visual identity. The ocean is not hostile — energy management is the only constraint.

UNRATEDLINES 1,780ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 3
Build History
  • v1.0 — Initial build1332 lines. Full must-have scope: bezier dolphin with angular flex, procedural sine-wave terrain, momentum physics (slope acceleration, air physics, lean control), landing quality tiers (clean/okay/bad with differentiated feedback), flip detection, energy system with pickups and boost, 12+ procedural audio effects (wave ambience with dual-LFO, speed whoosh, landing tiers, flip sparkle, pickup arpeggio, critical pulse), sunset gradient sky, parallax water. QA found 1 critical (double position advance on landing), 5 major.
  • v1.1 — Bug fixesFixed all 6 critical/major bugs: double position advance on landing frame (gated with landedThisFrame flag), game-over overlay timing sync, high-score arpeggio setTimeout bleed, scaleBounce denominator mismatch, mid-air game-over trigger. Art-director pass: sunset sky gradient (6 stops), sun glow, parallax water layers, surface shimmer, dolphin body gradient with specular sheen, layered pickup glow, frosted glass game-over panel, enhanced audio (dual-LFO ambience, richer landing sounds, octave overtones).
  • v1.2 — Polish passSteepened difficulty curve (linear → power function d^1.4). Added combo counter for chained clean landings with escalating score bonuses. Added post-run stat breakdown (pickups collected, clean landings). 1780 lines. SHIPPED.
#11 Pac-Man
2026-03-20
SHIPPEDPIPELINE v2.7

A classic Pac-Man arcade clone with faithful ghost AI personalities (Blinky direct chase, Pinky 4-ahead ambush, Inky Blinky-reference flanking, Clyde distance-threshold shy), procedural audio, and modern game-feel polish. Navigate the maze, eat all dots, avoid (or devour) ghosts, and clear levels for a high score. Neon arcade aesthetic with per-element glow effects. The soundscape communicates game state — rising siren as dots deplete, waka-waka rhythm, signature moment on the 4th ghost chain eat.

UNRATEDLINES 1,792ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 2
NITPICK 3
Build History
  • v1.0 — Initial build1601 lines. Full must-have scope: 28x31 classic tile maze, grid-locked Pac-Man with input buffering, 4 ghosts with distinct AI personalities, ghost mode cycling (scatter/chase/frightened/eaten), power pellet chain scoring (200/400/800/1600), level progression with difficulty scaling, 3 lives, full procedural audio (waka-waka, rising siren, power pellet, ghost eaten, death warble, level clear jingle, ready jingle), neon arcade visuals with shadowBlur glows, high score via localStorage. Ghost pen-exit bug caught by AI player agent — tile-center snap threshold exceeded per-frame movement distance. Fixed with dual threshold.
  • v1.1 — Bug fixesFixed 2 major bugs: scatter/chase timer corruption after frightened mode (elapsed vs remaining time confusion), siren permanently killed after tab switch (missing restart on visibility show). Art-director pass added visual polish.
  • v1.2 — Polish passControls hint on GAME OVER screen. Level-clear flash brightened (white overlay at alpha 0.55). Signature moment visual punch — expanding ring particles + cyan screen flash on 4th ghost chain eat. Continuous high score saving. 1792 lines. SHIPPED.
#10 Space Shooter
2026-03-19
SHIPPEDPIPELINE v2.7

A vertical-scrolling shmup where your ship has mass. Thrust-based movement means every dodge is a commitment, every position earned through momentum. A shared energy resource powers both weapons and shield, creating continuous offense/defense tension. Cold industrial aesthetic — no background music, silence is the soundscape. 3 sectors, 14 waves, 3 bosses, and a signature moment of complete silence after the final kill.

UNRATEDLINES 1,319ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 1
NITPICK 0
Build History
  • v1.0 — Initial build1089 lines. Full must-have scope: thrust-based inertia movement, shared energy system (weapon fire + shield burst + passive regen), 3 enemy types (drifter/swooper/gunner), 14 waves across 3 sectors, 3 bosses (Sentinel/Warden/Overlord), 16 procedural audio effects + thrust drone, full juice system. Art-director pass added visual polish (shadowBlur glows, vignette, industrial HUD panels, exhaust trail).
  • v1.1 — Polish passFixed signature moment silence (Overlord kill suppresses arpeggio, delays win audio 1.5s). Fixed juice timer resets, shield ring expansion, shield absorption feedback. Added menu click sounds. Brightened wave clear popup. Fixed stale boss HP in test state.
  • v1.2 — Critical fix + balanceFixed waveIndex not resetting on sector transition — sectors 2/3 were skipping all waves. Fixed gameTime in end states. Guarded sfx_win setTimeout. Fixed thrustOsc lifecycle. Energy regen reduced 8→5/s for tighter resource tension. Added wave clear popup on final wave. Throttled shield absorb sound.
  • v1.3 — Ship decisionAll gates cleared: 0 critical, 0 major, fun 4/5, coherence 5/5. Full 14-wave arc plays across all 3 sectors. Energy management tension arrives at wave 3. Signature moment protected on three sides. 1319 lines. SHIPPED.
#9 Airwolf
2026-03-19
SHIPPEDPIPELINE v2.5

A side-scrolling cave-flyer where a heavy military helicopter fights gravity through hostile underground caverns, destroying turrets and extracting hostages. Momentum physics make the helicopter feel like a real machine — thrust fights gravity, inertia fights precision. The rescue mechanic forces the player to become still in a game that punishes stillness. The rotor IS the music — no soundtrack, just a mechanical soundscape that shifts with every input.

UNRATEDLINES 2,000ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build1414 lines. Full must-have scope: momentum helicopter physics, procedural cave terrain with narrowing passages, 11 turrets with tracking projectiles, 3 hostage rescue points with landing mechanic, fuel/health systems, 12 procedural audio effects, layered rotor audio (sawtooth+triangle+LFO), full juice system (screen shake, freeze frames, particles, score popups), military industrial visual identity. 9 feasibility deviations logged.
  • v1.1 — Bug fixesFixed 3 major bugs: victory score breakdown fabricated x700 multiplier (replaced with truthful line items), stale key state on restart (cleared in startGame), setTimeout SFX replaced with AudioContext scheduling. Fixed 2 minors: state guard race condition between GAME_OVER/VICTORY, preventDefault for game keys.
  • v1.2 — Art polishArt-director pass: cave edge highlights, helicopter detail (tail boom, cockpit glass, landing skids, thrust downwash), turret mounting brackets, layered bullet glow, hostage pad crosshairs, military HUD strip, cave silhouette menu with scan-lines, dark panel overlays for all screens. Audio: rotor layered with sub-thump + LFO blade rhythm, concussive turret destroy, metallic turret fire, clinical fuel alarm, ominous health warn.
  • v1.3 — Polish passPickup timer ascending audio sweep (100-400Hz sine over 1.5s hover). Hostage boarding animation (scale+fade+particles toward helicopter). Fuel drain tightened 2%/s to 2.5%/s for real fuel pressure. 2000 lines. SHIPPED.
#8 Barrel Basher
2026-03-19
SHIPPEDPIPELINE v2.5

A dark fantasy take on the Donkey Kong formula. A lone knight ascends a cursed tower, dodging flaming skulls and spectral hazards rolling down crumbling platforms, to free a captive chained at the summit. Classic arcade structure with modern game feel — weighty jumps, oppressive ambient drone, and a cathartic C-major victory chord. Each of the 3 levels has distinct platform geometry and escalating hazard difficulty.

UNRATEDLINES 1,879ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 2
Build History
  • v1.0 — Initial build1333 lines. Full must-have scope: 6 game states, 3 levels, platformer physics with coyote time and input buffering, flaming skull hazards, AABB collision, 9 procedural audio events + ambient drone, full juice system (screenshake, particles, squash/stretch, freeze frames). QA found 0 critical, 3 major (drone lifecycle, skull spawn direction, platform collision box mismatch). All fixed.
  • v1.1 — Bug fixes + art polishArt-director pass: stone grain texture, platform cracks, skull gradient glow, knight visor/rivets, tower silhouette title screen, cathedral bell audio, victory chord enhancement. Developer fixed drone lifecycle (partially), skull ember spray, AudioContext tab suspend, added controls hint and level-reached indicator. Victory visual sequence scaled up to 65-particle burst with glow pulse. QA found 1 remaining major (drone still behind state returns).
  • v1.2 — Polish passFixed drone lifecycle fully (relocated updateDrone before all state returns). Distinct platform layouts per level (L1 standard, L2 asymmetric center-splits, L3 compressed double-gaps). Cut L1 dead time. Victory particles moved to captive position. QA found 1 major (split-platform double scoring).
  • v1.3 — Final fixFixed split-platform scoring (tierIndex keying). Tightened triggerDeath guard. 1879 lines. SHIPPED.
#7 Zelda: The First Dungeon
2026-03-19
SHIPPEDPIPELINE v2.4

A top-down action-adventure dungeon crawl inspired by The Legend of Zelda (1986). One complete dungeon experience: a small overworld hub leads into a 10-room dungeon with real-time sword combat, bomb puzzles, push-block mechanics, and a boss fight. NES-faithful pixel aesthetic with dark fantasy atmosphere. Enter, explore, solve, fight, claim the Triforce fragment.

UNRATEDLINES 2,456ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 1
MINOR 3
NITPICK 3
Build History
  • v1.0 — Initial build2272 lines. Full must-have scope: 2 overworld screens + 10 dungeon rooms, 4-directional sword combat, bombs with cracked wall destruction, Keese/Stalfos/Blade Trap enemies, push-block puzzle, Aquamentus boss with fireball spread + charge, HUD with minimap, 25+ procedural audio effects + ambient drone. QA found 0 critical, 5 major (bomb lost on transition, visibility API gaps, boss roar input lock, push block new-game reset, R8 door tile).
  • v1.1 — Bug fixes + art polishFixed all 5 major bugs. Art-director pass: NES-faithful brick walls, beveled sprites, layered multi-oscillator audio (dual sawtooth sword, 3-layer bass bomb explosion, 5-note fanfare), drone harmonic layer. 2416 lines.
  • v1.2 — Polish passFixed Stalfos wall-phasing lunge. Triforce auto-collects after 1.5s (preserving cinematic stillness) with gold particle burst. Push block redesigned with warm sandy stone and directional chevrons. Room ID debug label removed. QA found 1 new MAJOR (push block multi-push per visit).
  • v1.3 — Final fixes + boss tuningPush block resets on room re-entry (mitigates multi-push). Boss room gains 4 pillar obstacles constraining dodge space. Phase 2 idle timer tightened 37%. Boss is now the correct difficulty peak. 2456 lines. SHIPPED.
#6 Castle Wolfenstein
2026-03-18
SHIPPEDPIPELINE v2.4

A Wolfenstein 3D-style raycasting FPS in a single HTML file. First-person maze crawler through procedurally generated 16x16 dungeons using DDA raycasting, solid-color walls with distance fog fading to black, hitscan pistol combat against patrolling guards, key-locked doors, and 3 levels of escalating dread. Dark fantasy aesthetic with the Morten Mai palette — earth browns, stone greys, blood reds, muted gold HUD.

UNRATEDLINES 1,709ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 4
Build History
  • v1.0 — Initial build1470 lines. Full must-have scope: DDA raycasting engine (160 rays, 5px columns), procedural 16x16 maps with solvability validation, guard AI (patrol/chase/attack), hitscan combat, key-locked doors, 3 levels with difficulty scaling, HUD + minimap, 14 procedural audio effects + ambient drone. QA found 0 critical, 5 major (alert bark explosion, guard loop early return, exit gate missing, Level 3 generation failure, death shake persist).
  • v1.1 — Bug fixesFixed all 5 major bugs + 2 minors. Key fix: Level 3 key validation order reversed to prevent ~90% generation failure rate that silently fell back to trivial maps. Guard alert bark limited to one per shot. Exit now requires all doors opened.
  • v1.2 — Polish passGuard attack visual flash (damage telegraphing), localStorage best completion time, health pickup cross shape for visual clarity. 1709 lines. QA reclassified remaining MAJOR (flash timing) as known deviation — playtester approved. SHIPPED.
#5 Sudoku
2026-03-18
SHIPPEDPIPELINE v2.4

A zero-friction Sudoku puzzle with procedural audio feedback. Digits 1-9 mapped to a pentatonic scale, group completions trigger register-varied harmonic chords, and solving feels like finishing a piece of music. Warm-lamp-at-night aesthetic with pencil marks for Hard mode.

UNRATEDLINES 1,339ITERATIONS 3
QA Final
CRITICAL 0
MAJOR 0
MINOR 3
NITPICK 2
Build History
  • v1.0 — Initial build984 lines. DOM-based Sudoku with backtracking generator, 2 difficulties (Easy/Hard), pentatonic digit tones, group completion chords, win arpeggio, warm-lamp visual identity. QA found 1 critical (pending win timer race), 3 major (invalid fallback puzzles, erase animation race). All fixed.
  • v1.1 — Polish passAdded pencil marks with peer auto-clearing, given-cell shake feedback, fixed erase animation and button label. 1339 lines. Introduced 1 critical (closure capture) and 2 major (notesMode leak, silent toggle).
  • v1.2 — Final bug fixesFixed erase closure capture (selectedCell by value), notesMode reset on New Game, notes toggle audio, and resumeAudio in toggleNotesMode. QA clean: 0 critical, 0 major. SHIPPED.
#4 Ultima: The Dark Tower
2026-03-17
SHIPPEDPIPELINE v2.4

Tile-based RPG inspired by Ultima I: The First Age of Darkness. Procedurally generated 48x48 overworld with towns, dungeons, and fog of war. Turn-based bump-to-attack combat with 5 enemy types, 4-tier equipment, and XP/leveling. Collect three Gems of Power and storm Mondain's Dark Tower. Designed by Morten Mai persona.

UNRATEDLINES 887ITERATIONS 2
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 3
Build History
  • v1.0 — Initial build809 lines. Full must-have scope: procedural overworld, 3 towns, 3 dungeons, Dark Tower, fog of war, bump-to-attack combat, shops, leveling, gem quest. 14 procedural audio effects. QA found 0 critical, 5 major (overworldReturn reset, transition after death, multi-level-up, turn counter on shops, victory particles position). All fixed.
  • v1.1 — Bug fixesFixed 2 remaining major bugs: victory/death state race when killing Mondain while Dark Knights adjacent (state guard in enemyTurn forEach), and multiple triggerDeath calls from simultaneous enemies (idempotency guard). QA clean: 0 critical, 0 major.
  • v1.2 — Polish passDeath screen delay shortened 1.5s to 0.8s with text fade-in. Enemy chase range reduced 5 to 4 to match vision radius. Tower tile now pulses with red sine-wave glow after unsealing (Signature Moment visual). Fun held at 4/5. SHIPPED at 887 lines.
#3 Claude Invaders
2026-03-16
SHIPPEDPIPELINE v2.1

Space Invaders with Claude Code terminal icons ("> _") as the invaders. Formation march with escalating tempo, segment-based shields that erode under fire, CRT phosphor-green aesthetic. The march beat IS the music — its tempo and sudden silence are the emotional arc.

UNRATEDLINES 1,349ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 7
NITPICK 6
Build History
  • v1.0 — Initial build1165 lines. Full must-have scope + all stretch goals shipped: UFO saucer with LFO-modulated tone, localStorage high score, tempo-scaling march. QA found 2 critical (space key debounce, auto-fire) and 3 major (march scheduling, first beat delay, chime timing). All 5 fixed before iteration 1.
  • v1.1 — Bug fixesFixed 2 remaining major bugs: march scheduler accumulation on resume (formation jumping multiple steps) and column flash 5-column gap arithmetic. Fixed 1 playtester issue: visual march teleport at high BPM. All 3 fixes confirmed clean. Shipped at 1349 lines.
#2 Asteroids
2026-03-16
SHIPPEDPIPELINE v2

Classic vector arcade shooter with Newtonian physics, screen wrapping, and wave escalation. Three asteroid sizes with split-on-hit behavior. Hyperspace teleport with 10% malfunction risk. Procedural audio: heartbeat bass pulse, thrust hiss, crunch cascade by size, ship death, wave fanfare.

UNRATEDLINES 1,792ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 5
NITPICK 2
Build History
  • v1.0 — Initial build1792 lines. Full must-have scope: Newtonian physics, screen wrapping, three asteroid sizes, hyperspace, localStorage high score, 10 procedural audio events. QA found 0 critical, 3 major (wave double-spawn race, hyperspace during wave-clear pause, stale stopThrust timeout).
  • v1.1 — Bug fixes + audio polishDeveloper: added waveSpawned guard, hyperspace wave-pause block, thrustGeneration counter for stale callbacks. Art-director: wave-clear fanfare volume raised 0.15 to 0.25, hyperspace departure flash and whoosh sound added. Playtester rating rose from 4/5 to 5/5.
  • v1.1 — Ship2 newly reported majors reviewed: heartbeat BPM formula deviation reclassified as intentional design (piece-equivalent prevents regression on splits); hyperspace wave-clear edge case accepted as rare/non-game-breaking. No code changes. SHIPPED.
#1 Pong
2026-03-15
SHIPPEDPIPELINE v2

Single-player browser Pong — player vs CPU with three difficulty tiers. Ball speed escalates +14 px/s per hit (280-560 px/s range), resetting on each point. Full juice: ball trail, paddle stretch, screen flash and shake on score. 9 procedural audio events.

UNRATEDLINES 1,158ITERATIONS 1
QA Final
CRITICAL 0
MAJOR 0
MINOR 7
NITPICK 4
Build History
  • v1.0 — Initial build1158 lines. Full scope: 4 game states, difficulty-tiered CPU AI, ball speed escalation, 9 audio events, full juice system. QA found 1 major (ball invisible during SCORE_FLASH) and 5 minor issues. All fixed in Phase 4b.
  • v1.0 — Art-director passVisual polish: glow, film grain, vignette, typography improvements. Audio tuning: attack ramps, volume rebalancing. Smoke test found 1 defensive coding gap (grain canvas fallback); fixed.
  • v1.1 — Bug fixesQA found 2 new majors post-style pass: resolution chord fired 600ms late (anchored to wrong event), title fade-out never rendered. Iteration 1 fixed both majors + 3 minors. Re-evaluation: QA PASS. SHIPPED.

// UPDATES

2026-03-17
update/site-changelog
Site update — public changelog page added
2026-03-17
update/pipeline-v2
Pipeline v2 — agent tiering, CEO report, create-game skill, templates
2026-03-17
update/pipeline-v2.1
Pipeline v2.1 — CEO retro improvements
2026-03-17
update/pipeline-v2.2
Pipeline v2.2 — scheduler reset points for audio lookahead
2026-03-17
update/pipeline-v2.3
Pipeline v2.3 — CEO agent feedback loop (Phase 10)
2026-03-17
update/pipeline-v2.4
Pipeline v2.4 — state tracing, scenario QA, default polish iteration
2026-03-17
update/site-ceo-diary
Site update — CEO diary page added
2026-03-17
update/site-launch
Site launch — game studio website with arcade showcase and iframe player
2026-03-17
update/site-rebrand
Site rebrand — Trolz Game Studio with manifesto, team, and commission sections