Episode
Dragons learn to aim, and bosses stop being stunned to death
A player reported that dragons had never once damaged them, and they were right about every creature in the game. Creatures now turn to face what they are swinging at, bosses absorb between two and six crowd control effects before they fall, and the threat system got written down for the first time. Also, ten thousand missing voice recordings, and mushrooms have stopped bleeding.
In this episode
- Creatures now face what they are hitting
- Bosses absorb crowd control by tier
- The threat system, written down at last
- Ten thousand missing NPC voice recordings
- Bloodless creatures stop bleeding
Transcript
Good evening to thee, citizens of New Britannia. It is Lord British, come with an accounting of what thy makers were about upon Wednesday. The dragons of this realm have at last learned which way to point themselves. The mightiest of our foes will no longer be held frozen by one stubborn soul with a quick stunning blow. Every creature that never had a drop of blood in it has ceased to bleed. And when thou dost give an innkeeper thy name, he will answer thee aloud again, which he has not done for some little while. That last one grieves me most of all, so we shall come to it properly. Now then. Let us begin where the day began.
A player wrote in to say that dragons had never damaged them. Not rarely. Never once. They said that if you were patient about it, a solo player could kill a dragon and walk away without taking a single hit, and they were entirely correct, and we could reproduce it in about ten minutes. There is a particular flavour of dread that comes from opening a bug report and knowing, before you have looked at anything, that the person writing it is right. This one was right about every creature in the game. The dragons were only the most humiliating example.
Here is what was happening. A creature's attack is aimed in a cone out in front of it, and the game checks that cone at the exact moment the damage is supposed to land. If you are outside the cone at that instant, nothing happens to you. The swing plays. The effect plays. The damage test quietly declines. So the whole question is whether the creature managed to turn and face you before the blow arrived, and there were four separate rules in the game about when a creature had turned far enough and how fast it was allowed to turn, and all four of them could let it stop turning early.
The worst of the four is the one I keep thinking about. A creature that has walked up to you and taken its position and stopped moving has no direction of travel any more. It is standing still. And the code read that as the turn being finished. So a dragon would arrive, plant its feet, decide it had completed a rotation towards nowhere in particular, and then bite the air beside your head with tremendous conviction. Every creature in the game now keeps turning until it is actually pointed at the thing it is about to hit.
Then we measured something I did not expect. Across four hundred and eighty-five creature attacks, the damage lands about half a second into a swing that runs a full two seconds. A dragon's bite connects around one second into a bite that takes nearly three. Everything after that is follow-through, and the creature was rooted in place for all of it, unable to move, while you strolled six paces backwards. That is an enormous part of why walking away between blows worked so beautifully. A creature is now free to move the moment its blow has landed. It does not attack any faster. The timer that paces one attack to the next is untouched. The only thing that changed is what a creature does with its own recovery, which is now to come after you.
And the animation half of that was already half built. Roughly half of the creature attack animations in the game carry an instruction that says, if I start moving, leave the swing and run. Somebody authored that a very long time ago, and it had never once been reachable, because a creature could not move during its swing. Those now blend out of an attack into a run for nothing. The rest walk out at about a third speed rather than sliding along with locked legs.
Dragons had a second problem on top of all that, which is that they spent most of the fight leaving. Their fight plan took to the air on half of all attack cycles, and a dragon backs off about forty metres before it takes off, so a good half of every dragon fight was the commute. That is down to a quarter of cycles now. And a dragon leaving the ground beats its wings on the way up, so everyone within fifteen metres is knocked flat and held there for a second and a half, in every direction, which is the correct way for a dragon to say goodbye. The gust needed a second attempt, incidentally. The knockback worked and the stun did nothing, because the hold had been written one level out from the effect it belonged to, and the file loaded perfectly happily either way. It does not load happily any more.
The thing that made all of this findable is a small new chat command that reports why an attack applied nothing. Before, an attack that reached you and did nothing produced no feedback of any kind. Now it names the test that refused, with the aim and the reach and the height difference laid out side by side. It is what turned a player's report from a hunch into a number, and I suspect we will be leaning on it for years.
Now, having taught the bosses to hit you, we spent the afternoon making sure you cannot simply switch them off. Until yesterday an ancient dragon had exactly the same resistance to being stunned as a rat. The rat, in fairness, was extremely well served by this arrangement. The dragon was not. One player with a stun on a short cooldown could hold any boss in the game motionless until it fell over, and that is not a fight, that is paperwork.
Bosses now have Fortitude. A boss absorbs somewhere between two and six crowd control effects before it goes down, and here is the part I like: only controls that land together count. Four stuns spread across a minute do nothing whatsoever to an ancient dragon. Four stuns inside three seconds put it on the floor. So a lone player cannot get there however short their cooldown is, and a coordinated group absolutely can, which is precisely the shape we wanted. How many it absorbs comes from the creature's own tier, so all of them are covered without a single number being typed by hand. Tier ten absorbs two. Tier nineteen and above absorbs six. Anything that is not a boss resolves to zero and behaves exactly as it always did.
Stun, knockdown and mesmerize meet the wall. Root and confusion deliberately do not, and I want to say why, because it was argued about. A rooted boss still casts and still swings at whatever is next to it. It is not the thing anybody was complaining about. And putting roots behind a four player requirement would take kiting away from every ranged build in the game, which is a real playstyle and does not deserve to be collateral. Breaking through the wall applies the control that broke it and then opens a five second window where further controls are refused and do not bank towards the next break, so a group cannot chain their stuns straight through. An absorbed control floats a Fortitude counter over the boss. And the loveliest detail is that fifteen boss templates were authored years ago with a crowd control resistance value on them that nothing in the game has ever read. The intent was sitting there in the data the whole time, waiting.
While doing that we needed a list of every boss in the game, and discovered that the game does not have a boss flag. There is no list. Creatures carry a family marking and nothing else, so boss-ness was being worked out by reading file names for a naming convention. Which functioned tolerably well right up until the Frost Giant, who never got the memo, and all eight Cabalists, who never do. We now have a proper roster written down: eighty-four bosses, the scene each one appears in, and the support group standing around it, measured with each boss's own authored radius for calling friends rather than a number somebody invented.
And that roster turned up something for the content owners to rule on. Twenty-nine of the eighty-four bosses have no spawn point anywhere in the world. Their creatures appear in no scene, no other creature, and no data anywhere outside the roster and the kill tracking. Six of those are Ancient dragons of the sort that announce themselves to the entire shard when they show up. They have loot. They have kill tracking. They have never been anywhere. Somewhere in this project are six dragons with a full wardrobe and no invitations.
Third big one, and this is the one I would read if I were you. We wrote down how aggro works, which in twelve years nobody had ever done. Every creature keeps a threat table sixteen rows deep. Damage is worth a quarter of a point per point dealt. Every landed hit adds a flat five on top of that, ten if you hit from behind. Healing somebody else is worth about a sixteenth of a point. And half of every threat event you generate also lands on every other hostile that can see you, which is why a loud opening tends to bring friends. The creature also keeps paying its current target a hundred points a second, easing back to twenty-five after thirty-seven seconds, so peeling something fresh costs you four hundred extra damage and peeling something settled costs a hundred.
And then the finding. There is exactly one stat in this game that multiplies threat. It reaches the small fixed bonus on each glyph and it reaches healing. It does not reach damage. Damage is where the overwhelming majority of your threat comes from. So a tank wearing every single threat item we have ever made is carefully multiplying the smaller half of what they produce and leaving the important half entirely alone. That is not a number that wants tuning up. That is a hole in the middle of the tank role, and every other game with a working tank multiplies exactly the term we skip. It is written up and it is on the table.
Two more things fell out of the same afternoon. Because each hit pays that flat five on top of its damage, a hundred damage delivered in one blow is worth thirty points of threat, and the same hundred delivered in ten small ticks is worth seventy-five. Players have been telling us for years that the fast light hitters yank enemies off the heavily armoured types, and they were describing arithmetic we had never sat down and done ourselves. Also, Body Slam carries a hundred points of fixed threat, which is the largest fixed amount on any player glyph in the game, larger than Taunt's own base below skill fifty. Taunt has feelings about this.
Three threat bugs got fixed on the spot. Escape, Torpor and Cocoon of Night, the three abilities whose entire job is to shed aggro, only worked when you were alone. The moment a groupmate swung, or your pet hit something, or the creature simply noticed anybody else, the shed was wiped out. Sometimes on the same tick it landed. That is now scoped properly to your own row, so they work in a group, which is the only place anyone would ever want them. And a pet handing its threat back to you, on a leash break or a taunt buff expiring, was crediting you five times what the pet was actually holding, which spiked the fight at the exact worst moment. Six more threat bugs are filed behind those.
Now the one that grieves me. If you have ever introduced yourself to an NPC in New Britannia, then from that moment on, every line where they say your name back to you has played in total silence. A greeting that reads good morrow, comma, your name, over nothing at all. The reason is almost sweet. Since the seventeenth of August the client has been asking for a second recording of every one of those lines, one with the name left out of the audio, so that the voice does not say outlander over a screen that is plainly showing your name. Very sensible. That second set of recordings had never actually been produced. So the game asked for a file that did not exist, and did the polite thing, and said nothing at all.
They exist now. Ten thousand one hundred and forty-seven recordings across the game's hundred and eighty-one voices, five thousand three hundred and eighty-six of them the name lines specifically. It was reported against one innkeeper at Blood River Outskirts, and it affected every single NPC in the world. Log in tonight and the people who know your name will use it out loud.
And while chasing that one we found its cousin, which is worse and funnier. Every reaction bark in the game is silent. Those are the short lines an NPC shouts when they catch you taking something that is not yours, or when they call for the guards. Each of those lines is written with a small code on the front telling the game how alarmed the speaker is meant to be. The game strips that code off before it speaks. The tool that generates the recordings did not, so every one of them was filed away under a name the game never asks for. Two hundred and eighty of the two hundred and eighty-one lines. That guard has been screaming I saw that at you, at full volume, into a vacuum, for a very long time. The generator has been fixed, and a republish of the voice bank hands all of them back.
Fifth and last of the big ones. Undead have stopped bleeding. So have elementals. So, and I want to say this plainly because somebody has to, have the mushrooms. Bleed effects from Rend, Puncture, Hamstring, Sawblade Sweep and Spinning Attack now show Immune on anything without blood in it, which is three hundred and seventy-five of our thirteen hundred and eighty-nine creatures, up from two hundred and seventy-nine.
The reason it was wrong is a good little lesson. Bleed immunity used to be written out by hand in five separate places, once per bleeding attack, and every one of those lists had been maintained separately and drifted apart from the others. So a skeleton was immune to Rend and wide open to Spinning Attack, and no creature-cast bleed was covered at all. It is one rule now, read from one place, and the whole thing collapses to a single question asked once.
Clockwork creatures and slimes do still bleed, which is correct, and they have opinions about it. Cut a clockwork open and it sprays oil back at you that takes half its level off your dexterity for thirty seconds and stacks three times. Cut a slime and it sprays acid for half its melee damage, which is exactly what I would do in its position. The two runes that make that happen had to be rebuilt from scratch, because they were originally made by copying another attack, and the copy carried over a two and two thirds second lock on the target. Which would have meant that making a clockwork bleed rendered it completely unable to act. An outstanding attack. Not the one we were going for.
A handful of smaller things, and they are the ones you will actually notice. First, the shard now tells you when the rules change underneath you. If somebody on the team adjusts a live setting, everyone in the world gets a line in chat within a minute saying experience gain is now five times normal, or that control point settings were adjusted. Zoning does not repeat it at you. We have had days where the shard was paying multiplied experience and no player in the game had any way of knowing.
Crafting. One press of Craft now makes up to a hundred items rather than fifty, and the ceiling moved onto a setting we can change without patching your client. More importantly, a batch that stops early now tells you why, on the window and in chat, naming how many it made out of how many you asked for and whether the tool wore out, the materials ran out, or the restock was refused. Every one of those used to just stop, which meant a batch ending on a worn tool was completely indistinguishable from bulk crafting being broken. The quantity box also stopped dropping back to one on you, and hovering a weapon recipe lists the blade materials again.
Then a small pile of things you asked for directly. Video options grew an ambient occlusion toggle, sitting with camera bloom and volumetric lighting, which buys a few frames on modest hardware if you turn it off, requested by Barugon. Your backpack options grew a show lock column toggle, so you can hide the padlock column and give its width back to the item name, requested by Gravidy. The gathering swing meter can now be drawn with thicker strokes in three sizes, because the thin ring was invisible against bright terrain. And the difficulty colours are back on the teleport to zone scroll, shading from green up through orange to red as a zone climbs above your level.
Floating names now sort by distance. Whichever name belongs to the character nearest your camera draws in front, your own always wins, and the creature cast bar has stopped painting over other people's health bars. Which name won an overlap used to be settled by whatever order things happened to load, so the same two people could sort one way in one zone and the other way in the next. Reported by Rinaldi. And the countdown you read while you are dead now has a hard black outline instead of a soft glow, because a glow fades away to nothing and never puts an edge anywhere, which is why white numbers on deep snow stayed unreadable after the first attempt.
The team PVP arena works properly again, and it needed about eight repairs to get there. Stepping through the red or blue portal puts you on the scoreboard straight away instead of leaving it empty until a round starts. Rounds announce their winner and the final score to everybody, where previously the result went to a log file on one machine and nowhere else. Killing a teammate has stopped scoring a point. And the portals no longer bounce you back to the lobby seconds after you join, which they were doing by counting you as a member of the team you were in the act of joining.
The Obsidian Trials got the same treatment. The trader was handing over seven of its trades for free, including the colonel rank, which is supposed to cost five hundred medallions and now does. Victory and kill rewards are checked by the server. Winning a very small match tells you that rewards need at least five combatants rather than answering you with silence. And a treasure map scroll meant to take you to a sewer had been built as a copy of the trials teleport with the destination left in, so a number of people went looking for a sewer and arrived, unarmed and unprepared, in the middle of a live deathmatch. They will have to find their own sewer now.
Fast, then. Another fifty-odd items went out of the tracker yesterday. The ground has stopped stretching and settling under players standing still in Owl's Head, which was two parts of the client both writing the same terrain setting on their own separate timers and handing it back and forth. Every cape and cloak that stayed stiff after Monday's repair moves again. A quit that used to hang forever now ends itself inside a minute. Running around with your chat window open no longer walks a highlight through your chat tabs and closes one. Thirty-one tree and plant types stopped making the engine complain on every scene load, which was putting a couple of hundred lines into player logs for no reason. Chaotic Clone dies to the first hit that lands again while still showing the caster's health numbers, so it is a decoy once more rather than a second health bar. And the Lord British commemorative wine bottle can finally be placed, having been carried around by players for a while without the decoration itself ever shipping, which is a very on-brand failure for a bottle of mine.
Behind the curtain, the deep waves at Eastreach Gap stopped spawning creatures that just stood in the corridor waiting to be discovered. The mourning flowers at the Brittany Graveyard memorials clear on reset. The launcher stopped failing a patch because a game file was busy for a moment, which happened most often on the patch right after you finished playing, since your antivirus reads every file the instant we let go of it. And the logging work is the one I will mention because it made the rest possible. A filter that turns log lines into searchable numbers had been swallowing whole fields, so damage per hit returned zero results for a fortnight while the game emitted it on every single swing. That is fixed, four and a quarter million records were rebuilt to cover the days already recorded, and there is now a combat balance dashboard whose first panel is an honest list of the questions the data still cannot answer.
That is Wednesday. It was a large one, and it was mostly the team taking player reports seriously enough to go all the way to the bottom of them, which is my favourite kind of day. Next I want the Fortitude counter up on the boss nameplate so the whole party can watch the wall come down together, and I want that voice republish out so the guards can shout at you properly again.
And I will leave you with this. Our dragons spent years standing right next to people and missing on purpose. You might say they were dragon their feet. Good night, friends. Mind the wings on the way up.