In der Beta von WoW Burning Crusade Classic wurde ein Bug entdeckt, durch den Wurzeleffekte (root-effect) wie Frostnova zu lange halten.
Das ist der Bug: In der Beta von WoW TBC Classic dauert es derzeit zu lange bis ein Wurzeleffekt wie Wurzeln oder Frostnova durch Schaden gebrochen wird. Für Blizzard war es nicht ganz einfach diesen Bug genau zu identifizieren, aber mit der Hilfe des Feedbacks der Beta-Tester ist es nun gelungen.
Ein Fix ist in Arbeit: Um diesen Bug zu beheben, ist ein Hotfix bereits in der Arbeit. Dieser wird pünktlich vor dem Start der ersten Arena-Saison von WoW TBC Classic fertig gestellt.
Kleiner Nebeneffekt: Die Chance Wurzeleffekte zu brechen, wird nach dem Fix etwas höher sein als es dies in der ersten Saison von Burning Crusade 2007 der Fall war. Das liegt daran, dass WoW TBC Classic auf Patch 2.4.3 basiert und dort die Chance erhöht wurde.
So hat Blizzard den Bug gefunden
Wer möchte, kann sich die Ausführungen von Community Manager Kaivax durchlesen (via offizielles Forum). Dieser erklärt, was so schwierig an diesem Bug war.
To start, one of the reasons this was such a challenge to find is that the behavior is intentionally random. There’s no fixed amount of damage that’s necessary to break roots; there’s a range of damage that might be necessary, which makes it a risk/reward calculation for the players. Reproducing the issue isn’t guaranteed, and testing it can look like normal luck streaks.
When this was first reported, we looked at the scripts on the spell, and verified that they matched the original data, which led us to initially conclude that this was just random luck streaks. However, we’ve seen previous examples of there being a deeper layer to issues like this one, so when the bug reports continued to come in, we knew it warranted further investigation.
What we’re looking at are scripts that are in data, so we can be confident that those match 100%. At the same time, we’re not using the exact same code as was used in 2007, so sometimes we see issues caused by steps we’ve taken to make the original data and the current code compatible with one another. Our next step was to examine the inputs to the spell script and verify that we really were sending all the same information for the script to evaluate. After completing an audit of that data, we once again concluded that this appeared to be just random chance. The data values that our code was sending the script matched, the things it did with the results from the script matched, and the script itself matched.
Everything we looked at appeared to be correct on all fronts, so after a second investigation we once again concluded that the random calculation was correctly matching our intent.
But it still felt wrong.
This is the point where uncovering a bug gets really challenging, and where sometimes we hope to get lucky. It turns out that after continuing to look at the bug and test it in the debugger, we saw an odd behavior: when the Waterbolt landed on a target that was in a Frost Nova, it was evaluated as though it was a melee attack, which is not correct. That turned out to be the clue that led us to the truth. There was no bug in the root-break calculation, the bug itself was a random.
The bug that would sometimes send the incorrect damage source to the formula. And since it wasn’t incorrect every time, we missed it on our code evaluation. It turns out that melee attacks are significantly less likely to break roots than ranged attacks are, and the bug was that ranged attacks could randomly be treated as melee attacks under certain hard-to-reproduce conditions.
What made this such a challenge to find was that it was a randomly occurring bug in a system that behaves randomly when it’s working correctly, and two sources of randomness combined to confound us.
Thank you to everyone out there who helped us find this one!