Commits with substantial prose (≥120 chars) — the rationale behind each move.
db229b2 · 2026-09-08 · Wild Orbs: complete single-file canvas arcade shooter
Rebuilt from a broken starting artifact. Fixed along the way: undefined
'timestamp' in the fire handler (shooting threw on every press), gameLoop
called with no argument (NaN delta poisoned every position), per-frame
velocities multiplied by dt (everything crawled ~60x too slow), orbs spawned
off-screen at negative coordinates, splice-during-forEach skipping entities,
recursive spawn handlers that multiplied orbs without bound, hex colours
interpolated into rgba(), particles that re-randomised direction every frame,
a game-over overlay that covered the start screen, and a ship heading 90
degrees out of phase with its thrust vector.
Added: 12 distinct orb types with unique silhouettes and on-hit rules, gravity
wells / black holes / stasis bubbles / shockwaves as real force and time fields,
ricocheting shards, homing swarmlings, wrap-aware collision and homing, a glow
sprite cache, motion trails, trauma screen shake, combo scoring, waves with
staggered type unlocks, lives and extra lives, per-type WebAudio synthesis with
a wave-scaled bassline, and start/pause/game-over screens with a live bestiary.
Verified with node --check plus a Playwright suite: every orb behaviour, the
field-effect lifecycles, death to game-over to restart, pause, mid-game resize,
and a 20s soak. Zero console errors, 73fps under load.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NMeFvLtrZNgG2sQnYqmUp