Devlog
Building Second Chance
What was attempted, what broke, and what the fix turned out to be. Written for anyone building something similar.
-
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.
-
Nobody Walked In
Four sessions of navmesh work built a correct route from the street to the bar, and the NPC spawner never put a single body on it - plus the voxel arithmetic that stops stairs meshing, a door leaf that eats a doorway, and a coverage figure that read 100% because the question was wrong.
-
Thirty Defects in One Sitting
A human drove the game while an agent fired 2560x1440 captures and read every frame as it landed. It found about thirty defects in one sitting, closed a bug that had been open for twelve days, and - just as usefully - produced three confident diagnoses that a readback then demolished.