Jump to content
FORUMS
Sign in to follow this  
Starym

Ahn'Qiraj Stress Test Developer In-depth Comments, New Stress Test

Recommended Posts

50219-ahnqiraj-stress-test-shenanigans-g
 

We have some comments from the Classic devs on how the stress test for the opening of the Ahn'Qiraj gates went and what they learned from it. First and foremost they are very thankful for all the support the testers gave and noted that the experience was very much like the gate openings back in Vanilla. There's a lot of improvement to be done, especially with game code optimizations to handle so many players in the same area. They go into a lot more detail below, so definitely give it a read.

We also found out that there's another stress test scheduled for Thursday, June 25th, so if you want to see some crazy stuff like the gargantuan Lethon and all manner of bosses running around Silithus, you should probably mark the date.

Blizzard LogoStress Test Details (source)

Hey Everybody!

I want to personally thank everyone who came out to help with our stress test yesterday. We had the whole WoW Classic team in there, and we really enjoyed our interactions with all of you.

Here are a few more details about the test.

What we saw

A lot of people asked during the test if performance is going to be that bad in the live game, while some joked that they thought it was ready, and we should ship it. Or maybe they weren’t joking? After all, the experience in our stress test yesterday was pretty similar to the original AQ gate opening in 2006. We had a ton of lag, some server crashes, and when players gave up and the population dwindled, the event finally completed. We are planning to do better than that, but we won’t be able to eliminate the lag entirely.

I especially want to thank all of the players who were stuck at the end of flight paths, because we found and fixed the issue with that. As with many issues, once we found the root cause it was easy to fix and turned out to be contributing to other problems, too. So to all of you who saw a geometry salad at the end of your flight: thank you; you made this better for everybody.

If you hung around until about 5:00 p.m. PDT, our test conditions changed to a point where the lag you were seeing was close to what we expect to see in the live game. We have no choice but to make a trade-off between server lag and population density. The more people, the more lag, and eventually, with too many players in the same area, the lag gets so bad that the server thinks it’s deadlocked (a fancy computer science word for “stuck and can’t recover”), and it restarts.

A restart because the server thinks it’s deadlocked is a crash, but it presents a special challenge. Other kinds of crashes happen when a program is trying to do something really bad, so we find the bad thing, and fix it, and that’s it. Deadlocks are more challenging because there’s no single problem, just a lot of jobs getting further and further behind. There are still improvements that we can make to address this.

Population density

Our first problem is one of exponential scaling. Imagine a Blizzard that hits 10 players, which applies an aura to each of them, slowing their movement (you talented Improved Blizzard for the slow, right?). For each player that gets the slow aura, we also have to send a message to all nearby players to notify them that the aura was applied. That means a total of 100 messages. 10 affected players sending 10 messages each (one to the person who cast Blizzard, and nine to the other players affected by the Blizzard.

If there are 20 players present for the Blizzard to hit, that’s four times as many messages. If it hits 40 players, that’s 1600 messages. Doubling the players multiplies the work by four. Going from 10 players in an area to 100 players in an area takes us from 100 messages to 10,000 messages for that one spell. We already have powerful hardware in place, so this is a matter of understanding how many players we can support without deadlocking, which was a big goal for the stress test, and we got some very good data because of how many of you joined us.

Optimizing code

This is something we’ve been doing since 2004, and over the last few months we’ve been optimizing code with this specific event in mind. Here are some recent examples.

First, let’s consider the slow aura. What if we didn’t send all the aura update messages immediately? If you hit 100 people with Blizzard, do you really need to know at that exact second that each one of them has the slowing aura applied to them? The server knows right away, of course, so the aura has its effect, and is slowing their movement, but if you didn’t see the aura on them for a second or two, would that be okay? If it means the server doesn’t crash, our answer is yes, so we allowed the aura messages to be delayed. This also has an additional benefit, because if another aura update occurs while this first is waiting to be sent, we can combine those messages and send fewer messages overall. That results in fewer packets on the wire, and less work for the server.

Another code optimization we tested yesterday had to do with facing. That’s a piece of information about which direction each player is pointed. What if we slow or stop updating facing messages once the population reaches a certain threshold? It turns out that the cost is small: players appear to pop around a bit when moving. When an area is overcrowded, players already pop around a bit while moving, so this can be a huge performance win that has no visible effect. In fact, I think I saw players popping around less severely with this optimization than I would have seen if it wasn’t present.

We also improved the performance of deciding who to send messages to. When thousands of players gather in an area, merely deciding who needs to know about your aura updates and which direction you’re moving is a lot of work, so we improved that as well.

Moving players

Once we’ve addressed the previous issues, we have to consider this. When AQ first opened in 2006, we had GMs manually teleporting people out of the zone to allow the event to progress. Later, designers built automatic systems to teleport players out. Today, we have automatic teleports that perform very well, and we use them to control the zone so that it caps at a number of players that we think is still playable. Silithus will definitely be laggy, but we’d rather teleport players out than have it crash.

This event spans a lot of southern Kalimdor, so being unable to get into Silithus doesn’t actually mean you missed the event. There are Anubisath and Silithid to kill in Tanaris, Thousand Needles, Ferelas, and The Barrens for the entire 10 hours following the ringing of the gong.

Once more

Yesterday’s test gave us a pretty good idea of what these limits should be, and how we recover from a crash, but we’d like to know more, so we’re going to set up for another test on Thursday, June 25, at the same time (3:00 p.m. PDT). We’ll try to complete it more quickly this time, since there should hopefully be less investigation, and fewer disruptions.

I hope to see you all there.


P.S. Lethon says he really enjoyed your spirits with a side of mushrooms.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Staff
      All players with inactive WoW accounts will be granted full access to WoW Classic between May 9-13.
      Blizzard is offering a free trial of "WoW Classic" from May 9th to May 13th. This event is a great opportunity for new players to experience WoW Classic! During this period, anyone can access the game without needing an active subscription.
      All you have to do is download the Blizzard client, create a free account and start playing Classic!
      (Source)
      Cataclysm Classic™  is nearly here, and you and your allies can prepare to embark on a new adventure. This weekend, we're giving all players with inactive World of Warcraft®  accounts full access to the World of Warcraft Classic progression realms* and the characters on those realms without a subscription or Game Time.
      Gather your friends and get started on a new journey through the Cataclysm Classic pre-expansion patch and a changed Azeroth, risen from the fires of destruction. Play as a goblin or worgen, customize your appearance with transmogrification, and revel in new quality of life changes to enhance your time—including faster leveling in Outlands and Northrend, better Dungeon Finder, improved Collections UI, and more!
      Rejoin your guild, rally your comrades, and prepare to face new challenges. Cataclysm Classic  launches on May 20, 2024, at 3 p.m. PDT worldwide.
      Need Help Logging Back In?
      Download the Battle.net® desktop app Launch the app and log in to your account. Need to recover your account information? Within the app, click on the World of Warcraft tab, then either Install or Update. Latest system requirements When the installation or update is complete, click Play. Play free through May 13, 2024, at 10:00 am PDT! Ignite Your Cataclysm Classic Journey with Fiery Upgrades
      Cataclysm Classic will require only a WoW® subscription or Game Time to play. However, these optional upgrades can heat up your experience during your adventures in Azeroth.
      BLAZING HEROIC PACK
      The Blazing Heroic Pack includes Lil’ Wrathion pet for both WoW Classic progression2 and modern World of Warcraft characters3, the Avatar of Flame flying mount2 for WoW Classic progression characters, and a Runebound Firelord flying mount for modern World of Warcraft characters. WoW Classic progression characters will also enjoy Hammer Regalia Transmog Set and Town-In-A-Box Starter Set toy .
      BLAZING EPIC UPGRADE
      The Blazing Epic Upgrade includes everything in the Blazing Heroic Pack, plus a Level 80 Character Boost and 30 days of Game Time.
      Upgrade Now
      The WoW Classic Shop is Open
      The Battle.net® Shop has also recently added new and familiar items for WoW Classic progression fans, such as the Auspicious Arborwyrm flying mount, Pebble pet, along with other mounts, toys, and Hearthstone effect.
      World of Warcraft Subscription or Game Time not required during Welcome Back Weekend. Only applicable to WoW Classic progression realms for inactive World of Warcraft accounts. Does not include World of Warcraft: Dragonflight. Ends May 13, 2024, at 10:00 am PDT. Certain restrictions apply. Visit shop.battle.net for more information.  1 Available on or before August 31, 2024. 2 Available in WoW Classic progression realms (currently Wrath of the Lich King Classic™) immediately after the purchase. The toy, Transmog set, and Avatar of Flame mount only available on WoW Classic progression realms (currently Wrath of the Lich King Classic™). The Runebound Firelord mount only available on modern WoW® realms. Boost only available on WoW Classic progression realms. and usable only on the WoW game account for which it was purchased or redeemed.
    • By Starym
      Here's a collection of hotfixes for Dragonflight, Season of Discovery and Cataclysm Classic for the past week, with plenty of raid and dungeon and item changes in Season 4, three classes getting some tuning in Season of Discovery, and many fixes and improvements in the Cataclysm Classic pre-patch.
      Hotfixes (Source)
      Classes
      Druid Feral Fixed an issue preventing Smoldering Frenzy (Season 4 (2) Set Bonus) from triggering effects like Seal of Diurna’s Chosen. Dungeons and Raids
      Aberrus (Awakened) Fixed an issue that caused Thadrion to continually cast Unstable Essence after the encounter had concluded. Vault of the Incarnates Cuzolth now provides their item upgrade services to players in Vault of the Incarnates. Terros Fixed an issue where Explosive Reaction was hitting pets on Mythic difficulty. Nokhud Offensive Addressed a Primalist Thunderbeast issue where Thunderstrike’s target is not correctly reflected in the unit frame. Addressed an issue where the rim visual on Static Spear and Crackling Upheaval can disappear under certain situations. Algeth’ar Academy Echo of Doragosa Arcane Rift now spawns Uncontrolled Energy 20% less frequently. Overwhelming Power now spawns Arcane Rift at 4 stacks (was 3). Fixed an issue where Vile Lasher’s Detonation Seed was not spawning on the ground. Neltharus Lava Flare’s Melt now goes on cooldown after the cast is interrupted. Chargath, Bane of Scales Fiery Focus’s Fire damage reduced by 25%. Uldaman: Legacy of Tyr The Mythic+ timer increased by 1 minute. Items
      Fixed an issue that prevented Eye of Awakening from functioning on rings purchased from Antique Bronze Bullion vendors. Fixed an issue that prevented Tiered Medallion Setting from functioning on necklaces purchased from Antique Bronze Bullion vendors. Rings and necklaces purchased from Bullion vendors should now be eligible for socket upgrades. This fix is retroactive. Amber Skitterfly should now appear in the Mount Collection for players who purchased it from the Trading Post. Legendary items can now be upgraded as intended on the Awakened track. Fixed a bug preventing legendary item upgrades from receiving appropriate stone/crest discounts. Libergo, Head Librarian of the Azure Archives Annex in Valdrakken, has been watching your actions closely and now offers to reacquaint you with your legendary weapon if you happened to misplace it. PvP staves now properly filter for Warlocks on vendors. Non-player Characters
      Vaskarn in the Emerald Dream no longer erroneously mentions that they can upgrade your gear with the use of Flightstones. Vaskarn in Valdrakken is unchanged. Quests
      While Time Rifts are empowered, Cache of Embers will now be awarded once per character per week from the quest for defeating a Time Rift Boss. Prince Farondis drank his Conjured Protein Shakes and bulked up, allowing players to complete “Save Yourself”. Fixed a bug that sometimes caused the world quest “Zaqali Elders” to fail to start.  
      Season of Discovery
      Hunter Raptor Fury now increases the damage done of Raptor strike and Mongoose Bite by 10% per stack (was 15%). The Beast Mastery rune now increases pet damage by 10% (was 20%). Shaman The Burn rune now also grants a significant bonus to spell power when Flametongue Weapon is imbued on your weapon. Rolling Thunder now has a 50% chance to trigger (was 30%). Fixed a bug causing overload procs to not add a charge to Lightning Shield when the Shaman has the Rolling Thunder rune active. Warlock Invocation now also applies to Unstable Affliction. Invocation damage can now deal critical strikes if the Warlock also has the Pandemic rune active.  
      Cataclysm Classic
      Account wide achievements that reward titles now grant them at an account level. Fixed an issue that prevented players from receiving daily Random Battleground rewards. Smoke Bomb will now properly cancel Stealth, Prowl, and Shadowmeld from enemy players. Fixed an issue that would prevent Warden Stillwater from spawning during the “Lawn of the Dead” quest. Fixed an issue where Death Knights in Blood Presence could be incorrectly, critically hit by all melee attacks. Reduced the cost of all honor and arena gear from Wrath of the Lich King, to better match honor gain while at level 80 compared to level 85. Fixed a bug causing Hunters to do trap dropping animations twice. Account wide pet collection achievements now correctly grant rewards. Fixed an issue preventing Bloodlust and Heroism from working as intended. Mounting the Violet Proto Drake now grants Master Riding to players who are at least level 80 and have Artisan Riding trained. Heal-over-time and damage-over-time ticks should now behave as intended in Cataclysm when refreshed. Developers’ notes: Previously, refreshing a DoT just before it finished its last tick could cause it to miss out on a tick. That was the correct behavior in Wrath of the Lich King, but not Cataclysm. If a Paladin misplaces the Symbol of Faith during the quest “Materials of Significance”, they may now buy a replacement from the Lost and Found vendor in Booty Bay. Fixed the Children’s Week quest “Cruisin’ the Chasm” so that it can now be completed. Boosted Paladins should now have Collective Book of Healing or Secondhand Book of Healing as expected. Fixed an issue that prevented Worgen from being eligible for some daily quests. Archaeology digsites that appear in Uldum, Twilight Highlands, and Hyjal once players hit 450 Archaeology should no longer appear until the zones are accessible on official Expansion Launch. Holidays Made some improvements to the Children’s Week Quests “The Banshee Queen”, “Malfurion Has Returned!”, and “The Fallen Chieftain” to more consistently grant quest credit. The Children’s Week holiday is now extended for one additional week. “Ridin’ The Rocketway” can now be completed. Craggle Wobbletop and Blax Bottlerocket now sell Yellow and Green Balloons for Children’s Week. Darkmoon Faire will be closed until the launch of Cataclysm, when it will return with the newly updated Darkmoon Faire Island. Warlock The Warlock Demon Soul ability will now work with the Incubus pet. Fixed an issue where Warlock Demonology pets were not properly updating from Mastery. Fixed an issue with the incorrect tooltip on Demonic Pact. It should correctly read that it grants the Warlock 2% increased personal spell damage. Mage Ignite damage will no longer be counted double toward Combustion. Refreshed Ignite that now has 3 ticks over 6 seconds will do the same amount of damage on each tick. Ignite spread by Impact and Fire Blast will no longer have a missing 2nd or 3rd tick that adds damage to future Ignites. Paladin Fixed an issue with Seals of Command where Seal of Righteousness could trigger too many procs when it hits multiple targets.
    • By Staff
      The new experience buff arrives in SoD with this week's resets, giving players 150% more XP until level 39 and 100% more until 49! 
      Discoverer's Delight (Source)
      Join the path of discovery in Season of Discovery Phase 3. Beginning with weekly resets, players get the benefit of the Discoverer’s Delight experience buff*, which increases experience gains by 150% for all players through level 39 and 100% for players level 40-49! It’s a great time to join Season of Discovery, whether you’re just joining in the fun, or creating and leveling a whole new character.
      Players can also visit any innkeeper in the capital cities to turn the experience buff off or on. 
      *Experience buff not available in other WoW Classic titles or modern World of Warcraft.
    • By Staff
      Blizzard have announced more class tuning coming with this week's reset, as Hunters, Shamans and Warlocks get some adjustments. 
      Tuning (Source)
      With scheduled weekly maintenance (tomorrow, April 30 in this region), we’ll make the following adjustments to classes in Season of Discovery:
      Hunter
      Raptor Fury now increases the damage done of Raptor strike and Mongoose Bite by 10% per stack (was 15%). The Beast Mastery rune now increases pet damage by 10% (was 20%). Shaman
      The Burn rune now also grants a significant bonus to spell power when Flametongue Weapon is imbued on your weapon. Rolling Thunder now has a 50% chance to trigger (was 30%). Fixed a bug causing overload procs to not add a charge to Lightning Shield when the Shaman has the Rolling Thunder rune active. Warlock
      Invocation now also applies to Unstable Affliction. Invocation damage can now deal critical strikes if the Warlock also has the Pandemic rune active.
    • By Staff
      Hunters got some newly added tuning today, as Blizzard detail additional changes added to the already quite significant class tuning! 
      Hunter (Source)
      This morning with scheduled weekly maintenance, in addition to previously-planned adjustments to other classes, we deployed several changes to Hunters in Season of Discovery.
      Hunter
      Rapid Killing now reduces the cooldown of Rapid Fire by 80% (was a reduction of 2 minutes). Chimera Shot weapon damage percent increased to 135% (was 120%). Explosive Shot base damage before attack power increased by 50%. Sniper Training has an additional new effect: while Sniper Training is at 5 stacks, Aimed Shot is instant. Serpent Spread now causes Multi-shot to apply Serpent Sting to its targets for 12 seconds (was 6 seconds). Steady Shot now deals 100% weapon damage (was 75%). As we previously noted, there are more adjustments coming for Hunters and other classes. In general, we intend to improve the ranged playstyle and diminish the melee playstyle so that the two become more equivalent.
      We apologize for the confusion caused by the changes above going live earlier than intended, and we intend to post more about further adjustments soon.
      Thank you for your patience and understanding.
×
×
  • Create New...