SotA

The New Britannia Herald

Sunday, August 9, 2026

Work Log Podcast

Episode

Names stop showing through walls and the world gets its colour back

Sunday was spent putting right what a new image pipeline had taken away, including a lost exposure setting that had made every scene too dark and a night vision spell that had turned the world into an old green monitor. Overhead names finally stopped drawing through stone, after four attempts and one build where they vanished altogether. Pets stopped healing themselves, decorations stopped resting inside each other, and the Distract skill learned to distract something other than your own pet.

In this episode

  • Overhead names and health bars stop showing through walls
  • The lost exposure that made the whole world dark
  • Eye adaptation, and Night Vision losing its scanlines
  • Pets stop self-healing and remember their wounds
  • Decoration placement checks the spot at the moment you drop
  • Distract alerts five creatures at the right spot

Transcript

Good evening to thee, citizens of New Britannia. Lord British here, with word of what thy makers were about upon the Sabbath day. The light of the world is restored, and thine eyes now adjust as thou passest from sun into shadow. The names above thy fellows keep behind stone as they ought, though it took four attempts and one very dark hour. Thy tamed beasts no longer mend their own wounds while thou standest idle, and they remember what befell them. And a stone thrown to distract thine enemies will now distract thine enemies, rather than thy dog. Come, sit. We begin with the names.

So. Picture the test server as of Saturday night. Every name over every head was gone. No names. No health bars. No little icons. A whole town of people walking around with nothing above them at all, like a very well attended silent film. And that was our fix. That was the improvement we shipped the day before, the one meant to stop names from drawing through walls. We had asked the interface whether anything was blocking the view, and the answer came back saying, with total confidence, that there was a wall in front of absolutely everything. So every plate did the polite thing and hid itself.

Let me back up, because this took four passes in one day and each one was wrong in a more interesting way than the last. The complaint is old and it is simple. You stand in a dungeon and you can read the names of every creature through solid rock. Very handy. Completely wrong. The reason it happened is that the camera which draws those names was copied from the main camera, and the copy inherited a request for its own picture of how far away everything in the scene is. It dutifully built that picture using only the layer it could see, and that layer contains nothing but nameplates. So it produced a depth picture of an empty world, looked at it, and concluded that nothing was in the way of anything, ever.

That was the morning. Then we found that the health bar, the plate border and the status icons had never occluded at all, in the entire history of the game. Only the name text did, and only because the text had its own private way of working it out. The layer that draws world space interface has no scene depth in it to test against. So the team added a step that copies the real scene depth into that buffer once a frame, which means an ordinary depth test now works for everything drawn there instead of every shader needing to invent its own answer.

Third pass. Dungeons behaved. Towns did not. The depth being tested against lived in a shared slot that any camera in the game is free to write to, and whatever draws last wins the argument. Outdoors, something drew last. The depth now travels under a private name that only the camera rig writes, so nothing downstream can take it. And then the fourth pass, which is the one I opened with. The interface was handed a reference to depth data the renderer had already thrown away. A stale reference reads as a wall, and a wall in front of everything hides everything. It is now copied into memory the interface owns, where nothing can discard it out from under us.

Here is the part I liked. Somebody noticed that names drawing through walls looks exactly the same whether the feature never shipped or shipped and broke, which is most of the reason this took four goes. So there is now a command that tells you, in the scene you are standing in right now, whether occlusion is actually running and what the measured depth range is. The client also checks its own depth feed after every scene load and complains in the log if it is bad. Your party members still show through walls, by the way. That one is on purpose, name and bar together, so you can find your friends.

Now. The darkness. Saturday we moved the client's image effects onto a new post processing package, and the world came out dark. Not dramatically dark. Just wrong, in the way a room is wrong when someone has swapped the bulbs. Sunday morning was spent finding out why, and the answer is one of my favourite kinds of bug, the kind where a number was copied correctly and understood incorrectly. The old system set exposure in stops. A setting of one and a quarter meant two raised to that power, so roughly two and a third times the light, applied before the tone curve. The new system received the number one and a quarter and used it as a plain brightness multiplier applied after the tone curve. Same digits. Different meaning. Different place in the chain. Every midtone in every scene got crushed.

Saturation had the same shape of problem. The old grade ran saturation at one and a quarter in every profile, and the new profiles put that number on a vibrance dial, which barely does anything. The tone mapper had also been swapped for a cheap approximation, and is now back on the fitted curve that matches the old pipeline. But the real culprit was subtler than all of it. The old renderer applied contrast and saturation in logarithmic space, which lifts a dark dungeon about three times more than the same dials applied the ordinary way. No dial setting could have reproduced it, ever. So the team captured the old pipeline's actual baked grade table and handed it to the new stack whole. It was checked by running a live reconstruction of the old pipeline against the same frame. Brightness is now within about ten percent. It had been three times too dark. There was also a night vision shader path bleeding a fifteen percent blue wash into dark scenes while it was switched off, which is a fine thing for a switched off effect to be doing.

And then, because we had the hood up anyway, eye adaptation went in. This is new. Walk from bright daylight into a dark interior and the room now starts darker than it really is and opens up over ten to twenty seconds. Step back out into the sun and you get a brief dazzle that settles after a few seconds. Once your eyes have adjusted, every place looks exactly as it did before this change, so nothing you know about a scene has moved. It ships with gentle limits so combat readability never suffers, there are five live tuning dials for the testers, and the measured cost is a fortieth of a millisecond per frame. I have wanted this in a game of mine for about thirty years and I am told it took an afternoon.

Which brings me to Night Vision, the spell, which after the move looked like a nineteen eighties computer terminal. The new package ships its own night vision, and it is not a tint. It is a science fiction goggle effect. It throws the rendered frame away, rebuilds it from brightness alone, multiplies in hard scanlines that black out half of every four rows of pixels, and then scales the tint colour by five, so the pale green our artists chose arrived at very nearly white. You cast a spell to see better in the dark, and the world became a striped monochrome monitor with the contrast knob missing.

It gets better. Casting Night Vision also switched off depth of field, sharpening and edge smoothing, because the effect it was routed through disables that entire block of the shader. So the spell that helps you see also made everything blurrier. The spell now draws through the same path the old renderer used, a soft green wash over the scene with everything visible underneath, and the rest of your image quality stays on. There is a test now that reads both shader files and the shipped scene looks, so if a future update to that package drops the change, the test goes red instead of the spell going strange again.

Right. Pets. This one is going to reorganise how tamers play, so listen. A tamed pet or a summoned creature recovered about a tenth of its health every five seconds while out of combat. Which means that after any fight, standing still, your pet was back to full inside a minute. On its own. Regardless of you. Pet food did not matter. Heal Creature did not matter. Your healing spells did not matter, and neither did a collar with health regeneration on it, because the pet had already handled it before you finished casting. An entire branch of the taming skill tree was decoration.

That self healing is gone. Keeping your companion alive is the tamer's job now, and all of those tools are the way you do it. Alongside that, pets remember the state they were in. Putting a pet away and bringing it back no longer tops it up. Crossing a zone line no longer tops it up. A pet that was on half health comes back on half health. Buffs come back too, and this is the part I think people will feel most, the two hour pet foods now survive a load screen and keep counting down from where they left off, rather than dying at the very first one. Feeding your pet before a fight is now worth doing, instead of after every doorway. Wild creatures, companions, quest companions and decoration pets are all unchanged. There are a hundred and one new editor tests holding this in place, and while we were in there we found the balance audit had been modelling pets that healed themselves between samples, and was missing the toughness line that Pet Hide Toughness Training feeds. Both now read from the same calculation the game runs, so the audit and the game cannot drift apart again.

The taming pass has a companion piece. An untrained tamer's pet used to follow you to five metres before it broke off and ran home. Five metres. A person walking at ordinary speed can outrun their own pet, which meant your pet would drop the thing it was fighting and jog after you like a small worried dog. That range is now fifteen metres, rising to twenty at high pet range training. And because a pet's station is capped at half its leash, the three follow distances of close, near and far had all been putting the pet in the same spot. Those mean three different things again. Pets also hold a creature's attention out to a greater distance now, so your bear keeps what it is fighting while you stand clear of the swing.

Decorators, your turn, and this was the largest single piece of work of the day. Placement now confirms the spot is clear at the moment you let go of an item, rather than trusting an answer worked out earlier, so a fast drop can no longer glitch two decorations into the same space. All nineteen planter types check for overlap before you sow again. Ten of them had lost that check entirely, the five pots, the barrel and the four ground beds, because a field was renamed and their prefabs kept the old name. Applying a saved decoration layout now measures each item as it places it, leaves anything that would land inside something else where it is, and tells you how many it skipped.

Then the stacking work, which is the clever bit. A stacked decoration used to record what it was resting on based on where your cursor was pointing. So a rotated block sitting squarely on another block could be recorded as sitting on the ground, and when you removed the block actually holding it up, it stayed floating in the air, supported by nothing but a bad memory. Stacks now record their true support. Rolling a building block re-seats it on the face that really is downward, where the old test picked corners by world axes, shifted depending on which way your camera faced, and could return no corners at all, which the game happily accepted as valid. Placing an item over thin air is refused now with a proper message, and one supported corner is still enough, so your overhanging builds are safe. And picking up a base with things stacked on it is refused on every path, including the right click menu, which had never checked.

Two more from the same corner of the world. The camera used to treat the decoration in your hands as an obstruction, so it would pull in toward the item, which moved the item, which moved the camera. Inside a greenhouse that read as constant snapping and made it very easy to grab the neighbouring planter instead of the one you meant. Thank you to Dulayne for reporting that one. And claiming a lot with a deed from your inventory could stop partway through while tax data was still loading, which spent the deed, left the lot unclaimed and said nothing at all. Claims complete on the first attempt now, and a failed one can no longer undo a claim that had actually gone through.

Now Distract, a Subterfuge skill, which is meant to work like this. You throw something noisy over there, creatures go and look over there, you go the other way. Here is what it did instead. It picked exactly one nearby character, in no particular order, and alerted it. One. And the list it picked from included your own pet, passing merchants and corpses. So you would throw your noisemaker into the middle of a room, and the thing that heard it would be your dog, standing behind you, or a dead body, which investigated the noise with all the urgency you would expect.

If something did react, it took three to five seconds, cast a buff on itself first, and then ambled over at a walk. And in a group, for most of the casters, the noise was registered near the caster rather than where the throw actually landed. A skill whose entire purpose is to make creatures look somewhere else was pointing them at you. All fixed. Up to five creatures nearest the landing spot are alerted, they react in about a second, and they run. Cast again at a new spot and you redirect them mid search. Posted guards who used to ignore it now at least turn to face the noise. It is a real skill now, and I would encourage the sneaking sort among you to go and abuse it.

A handful of things about your bag and your crafting table. The gold total is back on the inventory windows. It had been missing since the interface conversion, because the label was built behind a condition that no window could ever satisfy, so it simply never appeared. It is now on the backpack, containers, the bank, plot storage and the rewards window, and the vendor listing form shows what you hold and what you will hold after the fee, updating as you change the price.

The test that was supposed to guard that readout had been green the entire time, because it was checking the wording of the broken condition rather than checking whether any gold appeared. It builds the real thing and looks for the number now. I mention it because I think that is the more useful lesson than the bug.

Also on your table. Choosing a recipe at a crafting station keeps the materials you already placed, instead of emptying the table and refilling it with whatever came first out of your pack. Dropping a repair kit onto an item now tells you in chat how many points of durability it actually restored, which had been giving you no confirmation at all. And double clicking a container in the bank that you deposited at a different bank no longer yanks it across the world into your backpack. It tells you where it lives.

Things you can hear got a good day too. NPCs now take turns speaking. Every bark cooldown in the game was per character, so nothing prevented a dozen of them from talking over each other, and a crowded market was a wall of noise. One voice at a time within earshot now, with a short pause between speakers, and the crowd holds its tongue while an NPC is speaking to you. A line that loses its turn is skipped rather than saved up, so nobody replays yesterday's chatter at you. Dogs now bark out loud when they spot a hostile, where the word woof had been appearing over their heads in total silence. The two giant castle gates in Ardoris were the only doors in that city that swung without a sound, and now they do not. And the bagpipes finally have a real low octave, because holding the modifier key had been playing the exact same recording as the normal key.

Two on cameras and bodies. Corpses can now be clicked and looted wherever the body came to rest. The clickable volume had been pinned to a fixed patch of ground in front of where the creature was standing when it died, so any body carried off that spot by its own death animation answered your cursor only over a small square of empty grass nearby. And conversations hold together properly now. The camera stops clipping into the wall behind you when you talk to someone on a balcony, and once a conversation window is open, keywords keep working from any angle, so a counter or a doorway between you and the banker no longer leaves you clicking words that never answer.

The lightning round, and the numbers on this day are the story. Sixty six tracker items were closed, twenty three of them bugs reported by real people. Fifty three tester reports that had gone unanswered since the end of July now have a reply and an owner. A hundred and fifty two issues on the development tracker that had nobody's name on them now have somebody's name on them. And the editor test suite went from fifteen failures to zero across ten thousand four hundred odd tests, where three of the fifteen were real bugs the suite had been correctly shouting about for days and the other twelve were checks that had gone stale. On the server, the deed ownership check that runs every time you enter a zone was averaging fifty milliseconds with spikes past three hundred, and now runs three queries no matter how many deeds you own.

Then there is a category I will call objects behaving badly. A row home losing its roof from a hundred and twenty five metres away, so it looked open to the sky from across town. A lighthouse beacon aimed forty five degrees into the ground. Wall webs casting the square shadow of the flat panel they are painted on. Two tetras in a fish tank swimming in perfect lockstep because they both started their cycle at the same instant. Decorative servants belching, cheering and dancing on your lawn, now restricted to coughing and looking thoughtful. The Black Horse, which was the only mount in the game given a wider body than the others and therefore could not cross a bridge every other mount fits over. And a set of bracers that equipped, gave their stats, and were never drawn on a female character at all.

Last cluster, all in the same spirit. Creature loot recycled from things players sold to merchants had been arriving still carrying whatever the seller typed on it, so you could kill a wolf and find a book with a stranger's title and a stranger's writing inside it. Sometimes with zero durability, so it broke the moment you touched it. Both fixed. Also fixed, in no particular order, a mannequin wearing a decoration it should have refused and locking your inventory until you restarted, a column divider that could be dragged so narrow it vanished and left the column permanently thin, and the mouse pointer being held hostage in the centre of your screen while you were off looking at your desktop.

That is Sunday. It was a day of putting things back that we had taken away by accident and finding things that had been broken so long nobody thought to mention them. My thanks to everyone filing reports, and particular thanks to the testers whose notes made half of tonight's episode possible. I am looking forward to hearing what the tamers do with pets that can actually be kept alive by a competent handler.

And before I go. We fixed decorations that were resting on absolutely nothing, hanging there in mid air with no support whatsoever. My builders tell me that was a floating point error. Good night, friends. Be excellent to one another.