Four things that were working
I spent an evening on four features. Three of them were already working perfectly and could not be seen. The fourth had never run once, and nothing in the entire project could tell me. The one instrument that behaved was…
I spent an evening on four features. Three of them were already working perfectly and could not be seen. The fourth had never run once, and nothing in the entire project could tell me.
The one instrument that behaved was the one built specifically around this failure mode, which is either reassuring or damning depending on how you look at it.
One: a heartbeat clamped out of existence
The damage vignette is the primary health readout — red builds at the edges of vision as you get hurt, and it pulses, faster and deeper as you fall. The pulse is the load-bearing part, because the comfort tunneling effect already darkens the periphery when you move; a rhythm is the one channel it does not use.
Wearing it, I asked for more: more red as I get really low, pulse it, move it in and out a bit.
Measured before changing anything, on the intensity I actually play on, the vignette returns a flat 0.860 from 23% health down and never moves again. The pulse swing peaks at 0.163 around 40% health, is 0.023 at 25%, and is exactly zero across the whole bottom quarter — the only quarter it exists for.
The reason is the interesting bit. There is a hard ceiling on how red the screen may get while you are alive, because blinding a living player is not a readout, it is a different failure that happens to look like one. That ceiling is correct. And it is what was silently eating the heartbeat: the steady red alone overshoots it below 23% health, so the pulse and the hit-flash were being added to a number already over the limit and subtracted straight back out.
A band clamped by a guarantee is as dead as a band that was tuned wrong, and it is much harder to spot, because the thing switching it off is a rule you want to keep. It reads as the reason nothing more can be done.
No constant fixes that. Raising the pulse depth adds to a clipped sum; raising the ceiling spends the guarantee. Alpha is genuinely out of range near death, so the signal had to move somewhere the clamp cannot reach — the geometry. The red frame now closes inward on each beat, which adds red by area rather than by opacity and costs nothing against the ceiling. That is also, as it happens, exactly what I had asked for without knowing why.
And then the first version of the fix re-created the defect: the new closing had a maximum picked by eye, the three terms driving it summed past that maximum, and the ring pinned from 23% health down with the beat shrinking as death approached. Same failure, new channel, caught only by measuring again. The limit is derived from the terms now, with a test holding the inequality.
Two: an explosion at my eye
Mage bolts hurt, and I said they seemed to just vanish into me — that I wanted something on the hit.
There was something on the hit. There had always been something on the hit. The impact burst fired every single time, at the bolt's own position — and a bolt triggers within 0.42 m of your head, with the largest particle in that effect about 5.5 units across. So it detonated at my face: half the particles born behind my eye, the rest inside the near clip plane on the one frame they mattered.
Every check said the effect played, because it did. An effect drawn at the camera is an effect that did not play, and no log, prefab or scene dump distinguishes the two. It is drawn a metre back up the line the bolt arrived on now, which is a small deliberate lie about where it landed and the only version that conveys anything.
Three: a pounce that never happened
The new enemy is a feral skeleton that gathers, then leaps onto the spot you were standing when the gather began — committed, so the tell is a window that moving in actually works.
I built it, put it on the headset, and went to play. From my notes after that session:
it did not fire once during the whole test. I was just doing things and then remembered it was supposed to and paid attention: not a one did it.
Before leaping, it checks the line is clear. That check cast a ray from the body to the landing point — and the landing point is the player's position, so every cast terminated inside my own character capsule and reported blocked. Refused on every frame of a nine-minute session.
Two things about this are worse than the bug.
It was already written down. There is a note in this project saying, in as many words, that a layer mask cannot tell the player from a wall — the rig's capsule sits on the default layer with everything else, so the only way is by hierarchy. The mages had the identical bug in August, where it presented as a range symptom rather than as a mis-cast and cost most of a day. That note was read the same afternoon the new bug was written.
Nothing could report it. The test suite was green. The device log was clean. The pathing
instrumentation showed skeletons walking around — which is equally consistent with a working
pounce that just had not triggered nearby. The only signal that existed in the entire system was a person noticing that the enemies never left the ground.
Four: the one that worked, because it was built for this
The exception was a probe added to diagnose enemy pathing, and it was built with one rule: the report is written on a timer, not only when something happens. If it only wrote on an event, then "nothing ever happened" and "the probe never ran" would be byte-identical files.
It ran for 531 seconds across ten rooms and produced 120 stalls, and the diagnosis is unambiguous in a way none of the previous arguments about this code were. The enemy's collision sweep reports whether it hit something; at the moment the steering code reads that flag it was false on 118 of 120 stalls. But the probe also records the name of the last thing the sweep touched, and on 105 of those 118 it names a real wall.
That has exactly one explanation: the name is only written in the same branch that sets the flag, and is never cleared. So the first sweep hit the wall and set both, and a second sweep in the same frame reset the flag and hit nothing. The steering then discards the wall normal it was holding and picks a side by coin toss — which is why 93% of consecutive stalls alternate direction, and why the body strafes a median 1.93 m, stalls, and strafes back.
I had five competing explanations for that and no way to choose between them. Now I have one, backed by a file.
What I am taking from it
Anything whose success is silent needs a counter. Not a log line on failure — those exist all over this project and they are the reason three of these four bugs were invisible. A feature that only speaks when it fails can be doubted but never confirmed. The pounce now counts launches and refusals, because "refused every frame" and "never even considered" were otherwise the same silence.