Episode
Attenuation is gone, smoke bombs hide you, pets stop looping
Combat experience no longer shrinks after a long session, and the hourly ceiling that paid nothing at all is deleted. A single bad drag could switch off the entire interface for the rest of your evening, and two faults plus a watchdog put an end to it. Also today, the smoke bomb finally conceals you, tamed pets stop dumping their fights on their handler, and every housing lot in town is drawn on the map at its true size and facing.
In this episode
- One bad drag killed the whole interface
- Combat experience attenuation removed entirely
- The smoke bomb finally hides you
- Pets stop leash looping and the taunt works
- Every housing lot drawn on the map
Transcript
Good evening to thee, citizens of New Britannia. Lord British speaks, from a throne that has read the day's whole ledger and found it a good one.
Tonight thy makers bring word of an experience ceiling struck down for good, a smoke bomb that at last conceals the one who throws it, tamed beasts that no longer hurl their quarrels back at their handlers, and every housing lot in the realm drawn upon thy map at its true size and facing. Grand things, all. But we begin, as we so often must, with something small and stupid and maddening: one drag of one item, and thy whole interface goes dark for the evening. Attend, and thou shalt hear how it was hunted down.
You are standing in a bank with a full pack. You drag one thing out of a container, and everything stops. Not the game. The world is perfectly fine. The trees still move, the camera still turns, your character still walks wherever you point them. But you cannot type in chat, and nothing will come out of a bag, and nothing will go into one, and that is how it stays for the rest of the night. The only cure was quitting the client and starting over. That happened to real people, in real sessions, eight separate times in a day and a half of logs. Today we found out why.
We are rebuilding the interface window by window, which means for a while the game has two interface layers living side by side. The code that starts a drag was writing to a small piece of information that only exists when the click arrives through the old layer. So a drag that began in one of the rebuilt windows threw an error every single time, and it took the whole window layer down with it. That is fault number one. Fault number two is even simpler and, I think, a little more embarrassing. If you picked an item up and then put it straight back down on the row you took it from, the game raised an error, because picking it up had already removed it from the container, so the row you were aiming at no longer described anything real. You dropped an item back where it came from and the drag system quit for the evening.
Both of those now put the item back where it was, which is what a person would expect. But the team did not stop at the two. They went and hardened five more places where a single error could switch the interface off and leave it off, including the stuck-cursor recovery, which is a lovely irony, because the recovery could get you stuck.
And then they added a watchdog, which is the part I actually find delightful. Twice a second it looks at the one piece of state that decides whether the interface is allowed to receive input at all. If it finds input switched off with nothing holding it that way, it switches it back on and writes a single line to the log so we know it happened. Now, there are perfectly good reasons for input to be off. Reticle mode. Holding the right mouse button. An open dialog. Playing with the heads-up display hidden. So each of those has a test proving the watchdog minds its own business and leaves them alone. Thirty-three tests in all.
The fix for a bug that turns your interface off is a small piece of code whose only job in life is to go around turning it back on. It is not glamorous. Neither is a smoke detector.
Now. Attenuation. This one I have been waiting to talk about.
If your adventurer level was above a hundred and ten, your combat experience started shrinking once you had earned fifteen million of it in the past hour. And past thirty million in an hour, a kill paid you nothing whatsoever. Zero. The creature still died. The loot still dropped. The number simply was not there. The idea, years ago, was to keep the very top of the curve honest. What it did in practice was reach out and tap the people who play the most on the shoulder, at hour four of a good grinding session, and tell them their evening no longer counted.
It is gone. All of it. Every kill pays its full amount no matter how long you sit there, and the little attenuated-experience icon and its tooltip have been swept out of the skills window along with the system behind them.
The interesting part was what we found on the way out. When you pull a system apart you end up reading all the arithmetic sitting next to it, and there were three separate problems in that neighborhood. There was a soft cap using a power function where a plain multiply was meant. There was a pooled experience balance being read at thirty-two bits, so a balance above roughly two billion could wrap around and take far more than it was ever supposed to. And my favorite: there was an overflow guard wrapped around the experience multiply that could never actually fire. We had a safety check on that number. It was well written. It was also unreachable, which is a wonderful quality in a safety net right up until the day you fall.
All three are fixed, with tests pinning the extreme cases, even the one sitting in a code path that is switched off today. Because someone will switch it back on in three years, and that someone will be us, and we will have forgotten.
Right. Let us talk about the smoke bomb, which has been quietly lying to you.
Obfuscate raised your stealth level. Really raised it. Other players could no longer select you, and creatures could not notice you from as far away. What it did not do, at any point, was make you disappear. The fade, the dissolve, the check that decides whether a particular observer can see you, all of that hung off the real stealth effect, and the smoke bomb was never applying one. So you threw your smoke bomb, and you stood there, fully rendered, in the middle of the road, technically concealed.
And it could not simply be made a real stealth effect either, because real stealth refuses to apply while somebody has you targeted, and being targeted is the only circumstance under which any sane person throws a smoke bomb.
So the fix was to split the thing in half, and I like this a lot. Concealment and stealth were tangled together as one idea, and they are actually two. The concealment half, the fade and the dissolve and the per-observer visibility, moved down into a shared base. Stealth keeps what stealth has always really been, which is the list of things that break it. Camouflage is that same concealment with none of the breaking conditions attached. Which means the smoke now lands while you are targeted, while you are moving, while you are being hit, and only its own timer takes it away. Fifteen seconds of it, and the caster of a Chaotic Clone finally fades out when the clone appears, the way that spell always read on paper.
There is a narrow companion to it. While the smoke holds, a poison or bleed tick will not strip a stealth you took inside it, and neither will someone freshly targeting you. That gives you a couple of seconds to clear the damage and reposition. Two seconds untrained, three and a half at Subterfuge Specialization eighty, five and three quarters at two hundred. Deliberately narrow. A direct hit still gives you away, and a bleed still breaks a stealth you took anywhere else.
One more thing about that skill, and I have to say it. Obfuscate declared a Smoke Bomb as its reagent and then never removed one from your bag. Not once. For years, the most economical skill in the game. It spends one now.
While we were in there, two other pieces of hiding got straightened out. Hiding used to shrink how far a creature could sense you without ever switching that sense off, so there was a small ring around every creature in the world where a fully trained hidden player was still spotted and attacked from the front or the side, and no amount of training would ever close it. Your hiding skill now sets that distance, and strong hiding takes the last of it away. And the shimmer over a hidden character was being cut to the shape of one piece of you, usually your drawn weapon, and then stretched over all of you. So drawing your sword made your stealth look wrong. Each piece cuts the effect to its own shape now.
Now, pets. Oh, the pets.
When a tamed pet gets too far from its handler it lets go of whatever it is fighting and comes home. That is a leash, and it is correct behavior. The Pet Range skill was written to loosen the tether, and it changed the distance at which a leash starts without changing the distance at which one ends. Sit with that for a moment. The pet gets far enough away, sets its leash, and is immediately close enough for the leash to end, so it clears it. Next tick, it sets it again. Two or three times a second, forever, dumping whatever it was fighting onto its handler every single time. The pet was not confused. The pet was following instructions perfectly. The instructions were a loop.
Both distances now come from one number, and the release always lands inside the tether, pinned by tests across the whole skill curve and all three follow bands.
The tether numbers themselves got some air, too. Five meters untrained, eight at Pet Range eighty, twelve at a hundred and fifty, up from two, five and ten. Two meters is not a leash. Two meters is a hug.
And then there is Pet Taunting Training, which players have been telling us does nothing, and which was doing nothing for three entirely separate reasons stacked on top of one another. There was a hook for the buff ending and no hook for it starting, so casting it never actually pointed a creature at your pet. The buff raised a value that nine of the ten pet basic attacks do not read, so for a bear or a wolf or a boar simply swinging at something, it multiplied nothing at all. And the distance falloff on pet threat bottomed out at exactly the range a pet stands at when it fights, which cut every pet in every ordinary fight to a tenth of its threat. Any one of those alone would have made the skill feel weak. All three together made it a decoration. It peels now, and it commits the switch on the same tick you cast it.
Something prettier to finish the big items with. Open your map in a town tonight and you will see every housing lot in it. Green means nobody owns it and you could claim it. Amber means it is empty but locked to you. Grey means it belongs to someone else. A lot you own stays the blue it has always been. And it did not stop at colored icons, because within the same day the markers stopped being little house pictures sized by tier and became the lot's actual boundary, a rectangle at its true size, its true rotation and its true facing, with the arrows on the front edge so you can see which way the door will look. A Row lot reads as a narrow strip. A Castle reads as a field. They rotate with angled lots and scale as you zoom.
The hard part, and I do mean hard, was player owned towns, because a lot in one of those is not part of the scene at all. The town owner places it at runtime, like a piece of furniture. So the markers had to appear and vanish as an owner adds and removes lots without you reloading the area, and a lot across town had to stop cheerfully claiming to be available while its ownership information was still on its way to you. There was a performance kindness folded in as well. One point of interest changing used to refresh every marker on the map, which is nothing in a scene with a dozen and quite a lot in a town with hundreds.
There is a thing to say from the throne about this. For a very long time the answer to where may I build has been to walk the streets and read signs. Now the realm draws you its own boundaries, and tells you plainly which stones are spoken for.
Away from the game itself, the team did something this week that I want to put on the record. The community wiki's hosting went unreliable, and rather than watch and hope, they took a complete local copy of it. Thirty-eight thousand four hundred and seventeen pages across every namespace. Twelve thousand seven hundred images at full resolution. A browsable copy that opens with no network connection at all, and a dump that could restore the whole thing into a fresh install if it ever came to that. Every page and every image checked against the wiki's own checksums. Then they put a second copy on separate hardware and checked all of it again, because one copy on one drive is not a backup, it is a hope. And to be clear about what this is: it is a backup and nothing else. That content belongs to the players who wrote it, and we are not republishing a word of it.
If you shop by vendor search, tonight is a better night. Item names had colour codes printing straight into them, so a stack of five cotton came out as nonsense. The icon column was empty. Clicking a column heading marked the heading and moved nothing. Hovering a listing gave you no tooltip. Two option boxes were drawn so far to the right of their own words that they sat next to the wrong ones. And the window kept the first town you opened it in for the whole session, so you could travel across the world, open it, and read yesterday's listings. All of that is fixed, and you can now Control-click and Shift-click several items at once in a shopkeeper window and drag the whole selection across in one go.
Harvesting had two problems that both made a node look like scenery. Once your pickaxe, sickle or harvest axe dropped below full condition, pointing at an ore vein or a tree left the pointer stuck and the node unclickable. And a node that was not live still drew as untouched and still raised the mining cursor, so you would walk up to a full-looking iron vein and get nothing back. Pointing at a node from too far away also gives you the proper out of reach cursor now instead of the plain arrow that made a cotton bush look like bare ground.
Three small ones for your ears. Cat mounts, the lion, the black panther, the jaguar and the snow leopard, have been riding in complete silence because their mounted animations carried no footstep events. They have footsteps now, at walk, jog and run, changing with the ground. Dash was playing its cast sound twice at once, which made it about twice as loud as every other skill in the game. And voiced NPC lines could not say your character's name, so a greeting written to address you personally came out as a cheerful "well met, outlander" that did not match the words on your screen. Those particular lines are left unspoken now, and the far more common ones still play.
Lightning round. Fifty-one tracker issues went down today, and a good share of them were worked by a new unattended pass over the bug queue, which takes the oldest open report, works out a fix, tests it, commits it, files a testing task and closes the report, then moves to the next one. Beautiful idea. The first time we ran it, it fixed exactly one bug and stopped, because the step that claims a report reported success and the runner read a leftover value sitting next to it and decided the whole thing had failed. And when we killed a run rather than stopping it politely, it left its lock behind and refused to start again for two hours on behalf of a process that no longer existed. It asks whether that process is actually alive now.
Elsewhere in the ledger of things nobody meant. Starting the editor with no scene name set threw an error during startup, and that particular path remembers its failure for the rest of the session, so every later call threw the same error again, once per frame, per caller. One session recorded nearly seven hundred thousand of them and left behind a four gigabyte log file. A town holding more than one device that forces the time of day could leave the sky clock flipping between two hours, and the meteor timer read that as a brand new moment on every frame, so people were getting shooting stars several times a second. Very romantic. Slightly alarming. And one island challenge scene was carrying a movement map from twenty twenty-four, which left every creature standing politely on its own spawn point with nowhere to go.
Last thing. Three deep dives went public today: guilds and guild wars, player owned towns, and player dungeons. Seventy-four proposals between them, every one with a comment thread and vote arrows, covering everything from a guild vault with per-rank withdrawal caps to a governor's console that runs a town from one window, to an entrance plaque on your own dungeon that remembers who cleared it first and how quickly. None of it is promised. All of it is asked. Go and argue with us.
That is Tuesday. What I am most looking forward to is logging in on a night with no hourly ceiling, taking a pet that stays where I put it into somewhere dark, and throwing a smoke bomb that actually works. It has been a while.
Before I go. I had a truly marvelous joke prepared about the new smoke bomb. Nobody saw it. Good night, friends.