Episode
Hills stop hopping, two dozen skills stop lying, and a sunset ruins an experiment
Friday brought a large combat correction pass, a movement fix that undid the wrong half of an older fix, and the first live run of an experimental pixel art rendering mode. The backpack was rebuilt on the new interface framework and now opens in place, and a batch of long-standing audio faults finally went down. Richard walks through why each one broke before saying it is fixed.
In this episode
- Downhill hopping and the fix that caused it
- Two dozen combat skills corrected in one sweep
- The phantom stun icon in player versus player
- Pixel art rendering mode and the sunset that fooled it
- The backpack rebuilt on the new interface
Transcript
Good evening to thee, citizens of New Britannia. Lord British speaking, with an accounting of what thy makers were about on Friday. Two dozen combat skills have been caught in small lies and corrected. Thy backpack has been rebuilt upon new bones and now opens in its own right. There is an experiment afoot to render the whole of the world as pixel art, and it has already been foiled once by a sunset. And thine axe now makes a sound each time it strikes a tree, which I am told it was not reliably doing, and which I would rather not think about too closely. Come, sit. We begin with the hills, for the hills have been behaving badly.
So. You are running down a hill. Nothing exotic about it. Just down a hill. And every few steps your avatar leaves the ground for a moment, drops back onto it, and is charged a little fall damage for the privilege. Do that the whole way down a long slope and you arrive at the bottom bruised, having done nothing more strenuous than jog. Testers reported it as hopping, which is exactly what it looked like. And the cause was in a place nobody would think to look. It was a fix. An earlier fix. Ours.
Here is what happens under your feet every single frame. The game keeps your character glued to the ground with a small correction. The ground dropped away a little? Pull the feet down to meet it. It is invisible, it is constant, and it is the entire reason walking feels like walking instead of skating.
Some months back we fixed a different problem. If you stood perfectly still on a slope and played an emote, that same ground correction would slowly drag you down into the terrain, sinking you like a man in a bog. The fix had two parts. The first part said to stop correcting while the character is standing still, and that was right, and that solved it. The second part put a hard ceiling on how far the correction could reach in a single frame, roughly eight centimeters. That second part was never needed. Nobody noticed it was there.
Eight centimeters a frame is plenty when you are ambling along. Run down a real hill and the ground falls away faster than that. So the correction reached as far as it was permitted, which was not far enough, your feet came off the ground, the game quite reasonably concluded you were falling, gravity took an interest, you landed, and you were billed for the landing. Every step. All the way down. We have taken the ceiling off for the moving case and left the standing-still rule exactly as it was. The movement code stops you at whatever surface you actually collide with, so a full correction can never shove you through the world. Hills feel like hills again, and you can still stand on one and emote without slowly becoming part of it.
Now, the combat pass, which is the biggest single block of work on the day. Something in the order of twenty skills went under the knife, nearly all of them from the old imported bug backlog, and the pattern that emerges when you read them all in a row is that these skills were not broken so much as they were quietly fibbing to you.
Taunt is my favorite of them. Taunt does no damage. Taunt is a noise you make. Its whole purpose is to convince a creature that you personally are the most irritating thing in the room. And the per-hit code that wears down your weapon when you strike something was running on every single Taunt, which means the shield strapped to your arm was being ground down by shouting.
You were breaking your own shield with your voice. Repeatedly. And doing zero damage while you did it. That one is corrected, and Taunt now behaves like the other stances that deal no damage.
Then there is Chaotic Clone with the Chaos specialization, which is supposed to hide you. It put a stealth icon on your bar. It told you, in writing, that you were hidden. It never actually called the part of the game that makes you invisible. So you had documentary evidence of your own concealment and absolutely none of the concealment. Every real stealth skill in the game uses one particular kind of effect, and this one had been authored as a different kind that only writes a number down. It uses the proper one now.
Fall damage was also ending stealth, which meant a stealthed character who dropped off any ledge revealed themselves to the world on landing. Enemy damage still breaks stealth, as it should. Gravity no longer gets a vote. And the Air school's defensive passive, Well Grounded, had been sitting at exactly half the protection of its Fire and Water siblings ever since those two were doubled and it was skipped. Fifty percent resistance at skill level one hundred now, where it had been giving twenty-five. There is a test pinning all three schools together so a future doubling pass cannot walk past one of them again.
A few more from the pile, because they are good. The Light spell was leaving glowing orbs behind that no longer belonged to anything, stacking them up, and taking your frame rate down with it. The over-encumbrance penalty was following you into ghost form after you died, which I want to note means we had ghosts who were too heavy. Sprinting in walk mode drained your Focus while giving you no extra speed at all, because walk mode caps your speed, so you were paying full price for nothing. Torpor's tooltip could display a negative cooldown at high skill. The summoned Ice Elemental's attack slow was zero percent for anyone without Water specialization, and it cheerfully displayed that zero to you. And Thrust, plus about two dozen relatives, never applied your weapon poison, because the code that fires weapon effects was checking for one kind of damage and those skills all use a slightly different kind.
The heaviest piece of the day, though, is a player versus player fix that goes back a long way. Stone Fist has a chance to stun. In a duel, the attacker's screen would show the stun icon land on the target when the stun had not landed at all. So the skill looked unreliable, or worse, looked like it was being resisted constantly, and neither was true.
The reason is a lovely little problem. Both clients roll the same stun chance from the same seed, so ordinarily they agree. But the threshold that roll has to beat subtracts the target's stun resistances. And your client does not have the target's resistances. It has a copy of them from a moment ago, sent over the network, and that copy is at its most wrong in exactly the situation where it matters most, which is right after you stunned somebody, when their resistance to being stunned again is climbing. So your client did the arithmetic with stale numbers, got a different answer to the one the target's own machine got, painted the icon, and then nothing ever came back to correct it.
The attacker's client now declines to guess whenever the outcome depends on the target's resistances. It waits for the target's own machine to say what happened and shows the icon when the real answer arrives, roughly one network update later. The same correction covers roots and mesmerize and the other chance-based control effects shown on another player.
And while inside that code, we found the game charging you twice. When your active effects were restored on login, the restore ran the full cast path again, which billed you a second time for reagents, glyph charges, and weapon wear. Logging in was wearing out your sword. Not anymore.
Right. The fun one. There is an experiment running to render the entire live world as pixel art. The real three-dimensional world, real lighting, real creatures, drawn as though it were a game from nineteen ninety, with your interface and your nameplates staying at full sharpness on top of it.
The hard part of this is not making it look chunky. Any screen filter can make it look chunky. The hard part is that the moment you move, every one of those big fat pixels starts crawling and shimmering, because the boundary between one pixel and the next keeps landing in a slightly different spot in the world. It looks like the whole screen is made of ants. So the trick is to snap the camera to a grid the size of one of those fat pixels, every frame, in the rendering only. Your actual position is untouched. The pixels then sit still while you move through the world, which is the effect you actually wanted.
The team built a measuring rig alongside it, a scripted camera that runs the same path repeatedly and counts how many pixels change from frame to frame. A small sideways drift redecided one and a quarter percent of the screen with plain low-resolution rendering, and zero with the grid snap on. Out in Soltown, live, a sub-pixel camera wobble redecided thirty-six percent of the screen normally, four and a half percent through the old-fashioned mosaic filter, and zero through the new one. That number is exactly zero and it is holding.
The honest finding from that same run was less flattering. With the camera perfectly still, half the screen still changes every frame. Fifty-one percent. Wind in the foliage, moving water, townsfolk going about their business. Animation itself is the noise floor now, and taming that is the next phase of the work, but at least there is a hard number to beat.
And my favorite moment in the whole day. The first live run appeared to show that the new rendering path had broken shadows. Everything was in gloom. A serious problem, duly written up as the top item to fix. It was not a problem. Game time runs about twelve times faster than real time, and the sun had simply gone down between taking the first screenshot and taking the second. The experiment was photobombed by our own sunset. Verified side by side at a pinned midday, shadows and all, entirely correct. There is now a test that guards that path permanently, and the measuring rig freezes the clock before it measures anything, which is a lesson that cost us an afternoon and I think was worth every minute.
The backpack. This is the one I have been waiting for. The interface rebuild has been grinding through the easy windows for months, and the inventory family was always going to be the hard part, because inventory is nothing but dragging things onto other things. Friday it landed, and it landed in stages you can watch on the clock.
Early morning, a way for the new windows to be recognized as somewhere you can drop an item, which the old system could not see at all. An hour later, a floating layer that carries the item's icon above every window while you drag it, so it does not vanish behind the thing you are dragging it onto. Mid-morning, a reusable grid that draws a container's contents with icons and names and counts. Then the window around it, with a frame you can drag and resize and a live weight readout. Then stacking, so dropping one item onto a matching one combines them.
And at three in the afternoon, the switch. Opening your backpack now opens the rebuilt window. Your items, your icons, your quantities, your carried weight. You can drag it, resize it, close it and open it again without it coming back blank, which was a real problem on this framework and took its own fix. Dragging picks an item up onto the cursor. Double-clicking uses or equips it. Right-click opens the same menu you have always had, with equip and repair and lock and link in chat. There is a search box now, which the old one never had. And the list refreshes while it is open instead of waiting for you to close and reopen it. Only your own backpack has moved this round. The bank, the loot window, and the vendor screens follow.
Now, sounds. Four faults went down in one sweep and every one of them has been annoying somebody for years. Chopping a tree only played its sound on every other swing, because the code that stops the same sound retriggering was shared across every resource node in the world rather than being kept per node. Which also meant that chopping one tree could mute a different tree entirely. It is per node now, with a much shorter guard, so you hear every swing.
The instruments that use one recording per key had a real howler. The eighth key, the high one at the top of the scale, wrapped around and played the lowest key's recording instead. So you would climb the accordion beautifully, all the way up, and the last note would fall off a cliff back to the bottom. All eight keys now play their own note. Crafting station sounds carried on playing after the craft finished and after you walked away, and stacked another copy the next time you crafted, so a busy crafter accumulated a small orchestra. Those stop properly now. Escorting companions made their combat bark every few seconds as they switched between enemies, rather than once when the fight started, so a walk across the countryside with a companion was a constant stream of battle cries. And the summoned Wisp made no sound at all, while the wild Wisp using the very same model had a full sound set. The summoned one has been given it.
For the addon authors, three things. A disabled addon could still have its functions called from the chat command, which is a real safety hole, and it was found by a tester who had an addon they had never once enabled. Disabled addons now define nothing and do nothing until you switch them on. The full addon documentation was rewritten with an entry for every function, and then published as a public website with no login required. And addons that draw your buffs can now use the real in-game skill icons and show a proper tooltip on hover, with the skill name, the effect, and the time remaining. Before this, an addon had to ship its own artwork and could not even tell you which skill an icon belonged to. There is a working example addon included.
Three small things about your screen, all reported by testers. The deck-name labels that were floating loose in the middle of the display now stay attached above the swap icon at any window size. The skill tracker went back to the right edge where it belongs, next to its own hide button, which players could not previously reach. And pet nameplates got their dark outline back, so a pale pet's name stops washing out against bright scenery.
The lightning round. Fifty tracker issues were closed on Friday, which is a number I had to read twice. Most were the long backlog of small combat and content faults being worked through in order, and a good few were tester verification tasks coming back green, which is the part of the process nobody photographs but everybody depends on.
Elsewhere, crash reports from a client stuck on a loading screen are now filed as their own kind of failure instead of being lumped in with clients that never started at all, which makes that whole class of hang findable. The old build farm learned to fail over, so a single machine going down no longer blocks an entire platform's builds, and the switch and the switch back were both proven on the live server. The dungeon tooling now seats wall pieces flush against walls and hangs ceiling pieces from ceilings, and refuses to finish a build at all if decoration has walled off a room, so no dungeon can ever ship with a section you cannot reach. The development log itself was rebuilt so several people writing at once stop overwriting each other. And a nightly sweep of the forums filed six more items from you lot, five suggestions and one stalled bug report.
Oh, and one journal entry in the Soltown fire quest had an extra word in it that made a sentence read very strangely indeed for about eight years. It is fixed in English and will refresh in the other languages.
That is Friday. A day of small corrections that add up to a game that lies to you considerably less than it did on Thursday, plus one experiment that is turning into something rather special. I am looking forward to the animation half of the pixel work, because holding a still camera steady was the easy half and I want to see what they do about the wind in the trees.
And I will leave you with this. Now that the chopping sound plays on every single swing, I am told the audio has finally been given a proper axe-cent. Good night, and mind the hills. They are safe now, but old habits.