Devlog
Building Second Chance
What was attempted, what broke, and what the fix turned out to be. Written for anyone building something similar.
-
Signs in Mid-Air
Fitting out the bookies on the corner - carpet, wallpaper, a lowered branded ceiling raft, a counter and two fruit machines - and the four traps that made it take twice as long. A centre-pivot cube that threw the ceiling signage into mid-air, a rug that shipped as the engine checkerboard while every readback insisted it was perfect, a second run that refused to wallpaper the walls it had just papered, and an editor that reported an actor missing right up until two of them turned up in play.
-
Zero Bytes
A one-line find-and-replace destroyed 155 KB of hard-won build notes on a project with no version control, because opening a file for writing empties it before anything can go wrong. Ninety-six per cent of it came back out of the AI agent's own session transcripts, and the recovery had four wrong turns of its own. Also - the fruit machine that paid nothing because a perfectly correct function was called by absolutely nobody.
-
A Different Culprit Every Week
Six weeks of frame-rate work on an open-world Unreal project, three confident diagnoses, and the real answer was that the editor was open the whole time and holding most of an 8 GB graphics card. Closing it moved GPU time from 1038 ms a frame to 14.5. Also - why the frame rate limit in your config file has never once taken effect.
-
Two Ways to Draw Nothing
A train exhaust plume refused to draw for an entire session. There were two independent faults and either one alone produces an identical, perfectly silent blank, so fixing one changed nothing and the bisect read as noise. The system reported zero errors and UpToDate the whole time. The day's other lesson was that almost every instrument used to check the fix was quietly lying - the screenshot tool, the viewport reporter, and a property readback that echoed my own words back at me.
-
Bottles at Attention
Street litter placed by script stood to attention like a parade and hovered above the pavement. The obvious "is it tall, then lay it down" test passed the very bug it was written to catch, and the obvious verifier reported the street as 100 percent clean while it was still wrong. The rule that actually works is shortest-local-axis-vertical, and the day ended with a second lesson about surveys that lie differently at every resolution.
-
Seven Metres Above the Road
A town bus that hovered over its own route and froze behind pedestrians turned out to be three unrelated faults - a baked height array that had gone stale under a re-carved road, an interpolation target twelve metres too far ahead, and two waiting conditions with no timeout. Includes the ground-trace fix that looked obvious and turned out to be impossible.
-
Pressing It Did Nothing
Three teleport keys in the game were dead for months while every automated check said they were fine - because the test that "proved" the binding worked injected the action and skipped the keyboard entirely. Plus the key-availability audit that lied twice, in two different ways.
-
The Walls Would Not Hold Still
A whole-level z-fighting audit across 722 static meshes - and the four separate ways the measurement lied to me before a single surface was fixed, including a scanner that was reading decimated geometry that does not exist in the source files.