Lich Survivors · round 54 · the white squares
2026-10-07. Anchor build, headless.
In your runs
I replayed your five runs since this morning headless and checked every frame. The squares are in four of them: 96 by 96 pixels, flat white, 2 to 11 frames each, all out in the dark where snakes start. The one at the top left is in three runs at the same spot, because the waves draw from the same seed every run.
What it was
A snake is 4.4 m long, but a new one started from a trail only 3.99 m long, a mistake in the snakes since they were first built. For its first 0.3 to 0.4 s of crawling, the last bit of its tail had nowhere to lie: those rings were stacked on one point, one above the other. Stacked straight up like that, the tube around them can't be built and their surface gets no direction. The shader turned that into an invalid colour (NaN) on one pixel, about 1 cm of tail tip. The bloom, the glow round bright things, blurs a quarter-size copy of the frame, and the invalid value spread through every step of that blur into a 24 by 24 block, 96 by 96 on screen, which the last pass showed as white. That's why it was square, big, out in the dark with no snake visible there yet, and only a couple of frames long: it lasted while that tiny tip covered a pixel.
Round 53's check couldn't see it: it read the game's own data, which was fine, and never what was drawn. This time the probe read back what was drawn every frame and hid the scene's objects one by one until the bad pixel went away: snakes.body, a snake on its first tick after a wave sent it, with its tail rings stacked.
With that fixed, a longer run with every attack forced in turn found a second way in, the same fault: a snake struck by a thrown rock becomes a hanging rope, and when its head hung straight down, its first ring couldn't be built either. The tube had a fallback for exactly this case, but the fallback direction was straight up too, so it never helped.
The fixes: the fallback is now a level direction, so a ring running straight up or down, whatever put it there, gets a surface direction like any other. And a snake starts from a 4.59 m trail, so its whole body lies on the floor from its first frame. Only drawing and the first moments of a new snake change. How the snakes move and what they do is untouched.
Checks
The probe (each rendered frame: the bloom target read back, any NaN / infinite / huge value counted): before the fix, 2 min of waves, attacks on auto: 3 squares first fix only (the trail), same 2 min: 0 first fix only, 3 min with every attack forced + the ending: 8 squares (the rock's rope) both fixes, the same 3 min + the ending (won): 0 both fixes, 5 min of waves, attacks on auto: 0 The game otherwise (both fixes): 3 min of auto play with all six: 0 reached the egg the guarantee sweep, near and far, 20 cases: 0 reached with any power held; 7 and 10 with none (the ending) the old room (LICH_ROOM=1) digest: identical to round 48's static check: 0 errors
Something else I found: the lens in the viewer
Not the same bug: when the glass catches the light at the right angle, its highlight is so bright that the bloom draws the blur’s own square shape round it. It is soft-edged and comes and goes as the lens turns. I left it as it is. Tell me if you want it tamed.