game-lab, week 32: the camera started following the ball

·2026-W32 ·2 min read

game-lab weeknotesgamedevtypescript

metamorph-ball spent the week turning from a physics sandbox into something with a shape.

The route replaced the sandbox. The arena became an actual course, with obstacles wired into both the physics world and the renderer, a run clock, a checkpoint cue and a completion panel. There is now a thing to finish, which is the difference between a demo and a game.

Two new forms. A jelly form that squeezes through a grate, plus rubber and heavy forms with pads that trigger on contact. The grate opens by dropping its collider, which is either elegant or cheating depending on how closely you look.

Juice. Squash-and-stretch and spark bursts, fired on the same cues as the audio so the hit reads as one event instead of three. The sound is synthesised rather than sampled — fewer assets, and it can be tuned per-event instead of per-file.

The change that mattered was four lines. The camera now follows the ball instead of waiting to be dragged. Before that, playing it felt like operating a diagram. Nothing else this week moved the needle as far.

Plumbing: a small persistence package for namespaced, versioned local settings, used first by a quality switch that survives a reload. The asset pipeline exists now, with one model through it end to end. And the deploy key is confined to an rrsync jail, so the thing that can write to the server can only write to one directory.

Where this came from

Work between 3 and 6 August 2026 in the game-lab repository — about 20 commits, plus the decision records on the rrsync jail, the grate collider and the camera. The repository is private.

Everything above runs in the browser build; the deploy-key jail was applied and used, not just documented.