The planet was round all along
Eight times the report came in: treetops are cut off. Seven fixes were real, and none of them was the disease. The disease was a flat-earth assumption buried in the tree grid since the day the terrain arrived — and a probe block holding 180 real trees that rendered exactly zero of them proved it. Plus: your kills now leave corpses, and looting them feels like 1999.
One hundred and eighty invisible trees
The investigation started where the last one ended: with better instruments. A new rig variable can now spawn the camera at any coordinate on the planet, and a new probe prints the world's biome map as ASCII art, with a tree census per 336-metre block. Standing in a block the census swore contained 180 trees, the camera saw rolling grass to the horizon. Not clipped crowns — nothing. An entire forest, gone.
The chain from there was short. Trees stand on the terrain, so each tree's base was lifted to the planet's surface — radius plus altitude. But the grid that the renderer uses to find trees still indexed by flat map coordinates. Push a point outward along the planet's radial and its map coordinates slide outward too — by about seven centimetres per metre of altitude per kilometre from the pole. Nothing at the spawn valley. Seventy-three metres nine kilometres out. The renderer's search window reaches thirty-five metres. Past a line roughly six kilometres from the pole, every tree's crown — and eventually the whole tree — sat outside the only cells the renderer ever searched.
That one geometric fact explains the entire eight-report saga. Crowns vanish first, because they sit highest and displace furthest — treetops cut off. Hills make it worse, distance makes it worse. And every prior fix "verified" cleanly, because the spawn valley where the proof screenshots were taken sat just inside the safe radius. Seven cutters were real bugs, honestly fixed. They were all standing on top of this one.
The fix made the engine faster
The repair is one idea: index the tree grid by where a point projects onto the planet's reference sphere, not by its raw coordinates. Project any point of a tree — root, trunk, crown tip — back down the radial, and it lands in the tree's own cell, at every latitude, at every altitude. The displacement doesn't get compensated; it ceases to exist.
And because the old code had been fighting the displacement with an ever-widening search radius, the new code gets to shrink that radius to a constant. Net result, measured in a controlled same-conditions duel: the fix is 1.3 milliseconds faster per frame than the code it replaces, while rendering strictly more world. Forests that no player has ever seen — because they have never once been drawn — are simply there now, everywhere, with collision and shadows to match. The full test gauntlet stayed green: 46 unit tests, 4 physics gates, a 44-stage two-server bot war, and the frame budget with room to spare.
One honest footnote: an exact fix for biome boundaries — the ±36-metre band where a forest block meets a field block — measured at +2.2 milliseconds no matter how it was gated, a register-pressure cliff on Apple GPUs. It was reverted with its measurements documented in the shader. The boundaries stay slightly blocky, on purpose, until a cheaper design lands.
Your kill, your loot
Earlier the same day, the game grew corpses. Kills no longer pay out like a slot machine — the fallen leave a body, and the body holds the goods. Walk up, press E, and a loot window opens: real icon tiles, click to take an item, F to take everything, coins counted out loud. The killer holds exclusive rights for two minutes, EverQuest-style; after that the body is anyone's, and unlooted corpses rot away in five. Experience and quest credit still land on the kill — only the treasure moves to the corpse.
The dead look the part, too. A slain creature plays its full death fall, then the body lies holding its final frame until someone loots it or the world reclaims it. The test suite now loots a corpse after every scripted kill — six per run — so the mechanic guards its own coin-exact ledger forever.
Engine v0.22.39 → v0.22.40, both live in the app and in the browser at ractr.com/play. The lesson of the week, carved into the loop: when a bug survives seven fixes, stop fixing and start doubting the coordinate system.