WoW Classic: Eine Anpassung an der Frost-Aura von Sapphiron
Die aktuell auf dem PTR von WoW Classic vorhandene Version des in Naxxramas positionierten Bosses Sapphiron bildete in den letzten Tagen die Grundlage für einige Diskussionen in der Fangemeinde der klassischen Spielversion von World of Warcraft, weil sich die Frost-Aura dieses Encounters auf dem Testserver ein wenig von der Variante aus Vanilla und WotLK unterscheidet. Auch wenn der Tooltip dieser Aura das Eintreffen von Frostschaden im Sekundentakt angibt, so wurde dieser Frostschaden in den bisherigen Varianten dieses Encounters aber immer nur alle 2 Sekunden verursacht. Für den PTR von WoW Classic haben die Entwickler diese Aura allerdings an ihren Tooltip angepasst und diesen Boss durch den jede Sekunde einsetzenden Frostschaden deutlich schwieriger gestaltet.
Aufgrund der Diskussionen rund um die Frost-Aura von Sapphiron hat sich der direkt an der Entwicklung von WoW Classic beteiligte Entwickler Pazorax gestern Abend in den Foren zu Wort gemeldet und dort einmal einen sehr informativen und ausführlichen Bluepost zu diesem Thema veröffentlicht. In diesem Beitrag bestätigt dieses Mitglied des Entwicklerteams nicht nur eine geplante Rückkehr zu dem Frostschaden alle 2 Sekunden, sondern er erklärt auch noch, warum der Tooltip falsch war und warum diese Aura in Vanilla und WotLK nur alle 2 Sekunden tickte. Laut dem Entwickler sollte diese Aura eigentlich jede Sekunde etwas Frostschaden verursachten, aber eine problematische Interaktion in Vanilla setzte den Debuff der Aura regelmäßig zurück und sorgte dadurch dafür, dass ein Großteil der Ticks übersprungen wurde und der Schaden nur alle 2 Sekunden bei den Spielern ankam. Die Behebung dieser Interaktion setzte die Aura auf dem PTR auf den Sekundentakt zurück und machte den Kampf deutlich schwieriger. Auch wenn Schaden in jeder Sekunde die ursprüngliche Absicht war, so möchten die Entwickler sich in diesem Fall aber an den Erfahrungen der Spieler orientieren und die Aura auf 600 Frostschaden alle 2 Sekunden einstellen.
Interessanterweise haben die Entwickler bei ihrer Untersuchung dieser Situation herausgefunden, dass die Frost-Aura von Sapphiron in einigen seltenen Fällen korrekt in Vanilla funktionierte und gelegentlich Schaden im Sekundentakt verursachte. Diese Momente sind wohl aufgetreten, weil die Spieler dem erneuten Auftragen des Debuffs widerstehen konnten und der normalerweise übersprungene Tick der Aura ganz normal weiterlaufen durfte. Diese überraschenden Situationen führten zu unerwarteten Schadensspitzen und gestalteten den Kampf etwas interessanter. Um auch dieses aus Vanilla bekannte Verhalten beizubehalten, haben die Entwickler den Kampf gegen Sapphiron auf dem PTR von WoW Classic mit einem neuen Effekt ausgestattet. Durch diese neue Mechanik kann die Aura des Drachen mit einer Chance von 1% einen zusätzlichen Tick erzeugen und somit mehr Schaden an Zielen verursachen.
Wer mehr über die Arbeit der Entwickler oder die Hintergründe der Frost-Aura von Sapphiron erfahren möchte, der sollte unbedingt einen Blick auf den folgenden Bluepost werfen.
Hey everybody!
We recently completed testing Naxxramas on the PTR. A big thank you goes out to everyone who helped us find bugs or exploits we could fix before release. We often get questions about how we decide what counts as a bug, and what’s worth changing, so I thought you might enjoy a deep dive into our investigation of Sapphiron’s Frost Aura.
- TLDR for anyone who only wants to know the conclusion: We’re changing the spell to tick every 2 seconds consistently.
When Sapphiron is engaged, the entire raid is affected by a Frost Aura which reads: “Deals Frost Damage every second”, but many players reported that it should be every 2 seconds. Our first thought was, “that was the Wrath of the Lich King version,” but we know that in a game as complicated as WoW, there can be surprising and unexpected interactions, and a lot has changed over the last 15 years. When a current behavior doesn’t match players’ or developers’ memories, it always makes us a little suspicious. Sometimes it turns out our memories are wrong, but we’ve also seen it lead to the uncovering of an unexpected interaction, so, it’s usually worth a look, and that was certainly the case here.
We looked at many old videos, and though some were from the wrong expansion, we were able to find videos that showed the original fight. The videos actually had evidence of both tick rates within the same fight. The frost aura seemed to mostly tick every 2 seconds, but occasionally tick once per second for a bit, before returning to ticking every 2 seconds. We also checked in our reference server, and the behavior was the same as we saw in the videos: mostly 2 second ticks, but occasionally a brief streak of 1 second ticks, before returning to 2 second ticks.
Perhaps the most useful clue was this post from WoW game designer Daelo in 2009, in which he describes fixing Sapphiron’s Frost Aura so that it does “the damage that was seen previous to the 3.0.8 patch”:
„We just hotfixed Sapphiron’s Frost Aura so it should do the damage that was seen previous to the 3.0.8 patch regardless of the size of the raid or your server’s performance. This should be 1200 every 2 seconds in Normal, and 1600 every 2 seconds in Heroic. You’ll notice that the Frost Aura debuff you have no longer has a duration that refreshes. The tooltip also incorrectly lists the damage as occurring every second. The tooltip error will be fixed the next time we make a client patch available.“
This certainly suggests that it was doing damage every 2 seconds prior to the 3.0.8 patch, but this was a hotfix to the Wrath of the Lich King version of Naxxramas. We’ve already found other differences between the original and Wrath of the Lich King versions of Naxxramas, so while this post was helpful, it wasn’t enough to satisfy us on its own. It contained an important clue about the debuff duration refreshing, which led us to suspect the DoT refresh might be clipping the damage tick. In WoW Classic, when you refresh a DoT, it resets the timer on the periodic damage, and can cause you to miss ticks, and since the Frost Aura has a 5 second duration that gets reset throughout the fight. It was a good bet that the damage timer was getting reset then too. Of course, we already reproduced that behavior in WoW Classic, so that still didn’t explain the discrepancy between the two.
At that point, we dug further into the game code and found the difference in the way Sapphiron re-applies the Aura. In both reference and WoW Classic, the aura re-application was done as part of an Action Trigger which fires every 2 seconds. However, in the original code, action triggers share a timer with periodic spell ticks, and action triggers were always processed first. In modern code, they run on independent timers, so a long-running action script won’t delay a spell tick.
This meant that when Sapphiron re-applied the Frost Aura in reference, it was guaranteed to clip the damage tick that was about to happen, leading to every other tick getting skipped. In modern code, the damage tick and the reapplication are both scheduled to occur at the same time, but are controlled by two separate timers, so either one might happen first. It just so happens that in this encounter, the reapplication generally happens after the DoT tick on the same second, so that players got the full damage on every tick, instead of every other tick.
But this mystery isn’t solved yet. What about those occasional one second ticks we saw in the original videos and in the reference server. They were rare, but if the reference code is guaranteed to do the refresh before the damage tick, how were they ever ticking at once a second? It turns out that the Frost Aura application didn’t always succeed, and if it failed, the existing DoT happily ticked away doing damage once per second until the next refresh attempt 2 seconds later, like this:
Time (seconds) | Event | Damage |
---|---|---|
0 | Aura #1 Applied | 0 |
1 | Aura #1 ticks | 600 |
2 | Aura #2 Applied (clips Aura #1) | 0 |
3 | Aura #2 ticks | 600 |
4 | Aura #3 fails (Aura #2 ticks) | 600 |
5 | Aura #2 ticks | 600 |
6 | Aura #4 Applied (clips Aura #2) | 0 |
7 | Aura #4 ticks | 600 |
Since Sapphiron is 3 levels higher than the player, the spell can only miss 1% of the time, but that’s what explained the occasionally 1 second ticks we saw in the videos, and with our reference.
We also reached out to the original designer, who still works at Blizzard, on a different game team. After we described our findings, he agreed that the intended behavior was for the damage to be every second, and the fact that the reapplication of the aura was clipping a tick of the DoT was a bug that wasn’t noticed or fixed until Wrath of the Lich King.
So where do we go from here? We often must carefully consider a conflict between original intent and original behavior. There’s no one right answer in all cases, but for this case, the original behavior is the correct decision, and we plan to fix this in much the same way Daelo did in Wrath of the Lich King. In modern code, we have a way to reliably apply an aura that deals damage every 2 seconds as long as the boss is alive, and we’ll re-write this ability to use that method, just as Daelo did in Wrath of the Lich King.
While the behavior that led to it originally occurring every 2 seconds instead of every 1 second was a bug, it was consistent enough as to be indistinguishable from a text bug in the Aura description. Choosing to go with the original intent would result in almost twice as much damage as players experienced in 2006, so in the end that makes this decision pretty clear.
I hope you enjoyed that trip through our development process. See you in Azeroth!
Hey everybody,
I wanted to drop in and give one more update. Astute readers of my earlier post may have noticed that the original implementation had a 1% to do an extra tick of damage, and while that’s pretty minor on average, taking an extra tick of 600 damage can create a dangerous streak that can make the fight significantly harder, especially if you don’t have much frost resistance.
I’m really happy to share with you that after I made my post, our newest team member added an effect that exactly reproduces the 1% chance to have an extra tick of frost damage, so you’ll have something even more true to the original difficulty.
Watch out for those damage streaks! It’s cold in there!