This is going to another long post. Sorry.
I’m not taking any sides with what I am about to post (though it may seem like I am), but simply I am trying my best to take an educated guess as to what problems Blizzard is facing and deducting a (possibly wrong) conclusion from what Aggrend posted.
I’ll start by saying that I too am a Software Engineer with many years of experience working on complicated and diverse systems. I currently work on Self Driving/Autonomous Vehicle systems for one of the largest auto manufacturers in the world. To say that we need highly optimized code that can processes thousands, if not millions, of actions in a short window would be an understatement. Scalability is insanely important for us. If our systems fail, people could be seriously injured or worse.
Now you claim to also be a Software Engineer, but seem to have overlooked the constraints and limitations Aggrend mentioned in his post. I personally don’t feel our profession was disgraced, but instead some insight was given on the challenges Blizzard is facing. As an SE, I personally am intrigued by complicated problems. Isn’t that why we got into the industry? (jk it’s the money, obviously)
Given those constraints and limitations, it’s very believable that a viable solution does not exist (a solution beyond “just download more RAM 4Head” or a full on re-write). If those constraints and limitations were lifted? Then who knows. I am sure there is an ideal world somewhere in which the most perfect solution exists. A world with unlimited time and resources. However, as an SE you should understand that the ideal world with unlimited resources doesn’t really exist…
But maybe a solution does exist… We were also kindly informed that Classic is using the same infrastructure and technology as Retail, but Retail doesn’t see this problem too often. Trolls in General Discussion will say it’s because “everyone quit retail lol xD” but in reality it’s because the population is more spread out across hundreds of realms as opposed to like 4 and things like Cross-realm, sharding etc make it easier for the back-end processes of the game to handle millions of transactions. However, the Classic community has been very vocal about not wanting this technological solution. So then maybe given this constraint, the solution doesn’t exist? Can’t have your cake and eat it too.
You also mentioned the word Triple-A, implying that you are comparing to other games? WoW is very unique so it’s really hard to compare it to other games. I’m speaking from purely an engineering standpoint. Obviously every game is unique, but you would be surprised to learn that a lot of games use very similar technology when it comes to solving their problems. However, those solutions won’t necessarily work for WoW.
Let’s go over a scenario really quick based off what Aggrend described in regards to the persistent database that the entire game sits on, something any engineer could quickly imagine and then realize… oh yeah, this is complicated. (Oh btw, I might be wrong with all the small details but this is my guess on how things work in WoW).
You’re doing dailies and a new creature spawns in the world. Let’s say you’re playing a Mage and you cast a Frostbolt at this creature. A few things need to happen here. First of all, everyone in render distance of the creature needs to be sent a bunch of information regarding this creature (stuff like health and mana pools, geolocation information etc). Now when you cast your Frostbolt, information is sent from your client up to the server and then back to you. This information could contain things like how much damage your Frostbolt is going to do. But oh wait, we live in an open world where stuff like this needs to be broadcasted to hundreds(thousands?) of players at once. But oh wait, there’s hundreds of players at once doing the same thing to hundreds of different creatures or even other players across dozens of zones. Now all of a sudden you have thousands, if not millions, of transactions being written to a database somewhere concurrently. And given the nature of WoW, all of these need to be in near real time or the game play experience diminishes very rapidly.
Do you see how quickly the problem becomes exponential? Do you see why the database quickly reaches it’s limit when the concept of a mega-server exists? As Aggrend described, this is why queue times exist. There are software and hardware limitations to all of this. It’s like being stuck in traffic on your way home from work on a Friday evening. There are only so many lanes on the highway and there are only a finite amount of cars that can fill up those lanes before the average speed limit starts to drop, eventually leading to a full on traffic jam. Yeah the city/state can add more lanes, build more highways… but that takes time and resources. We all complain about not being able to merge onto the highway, so it’s natural to complain about queue times too. I’m not defending queue times. I hate them just as much as the next guy.
Now before people start arguing “but other games do it with no issues!!!” I will say that’s a fair statement, but that’s not always true either. Have we forgotten the FF14 Endwalker release that quickly? Anyone ever do the Eternal Battlegrounds in GW2 before? World PvP in ESO? Lots of lag and server stability issues, all the time. This problem is not unique to WoW. It’s the nature of MMO’s. Has anyone ever played an MMO that had 100% server up time with no lag, no stability/performance issues and a 100% perfect experience? Now I’m not saying we shouldn’t demand perfection. We absolutely should. We’re playing $15 a month to play the game… we should be able to play. We have every right to complain. But we should also realize that we don’t live in an ideal world and stuff breaks.
As far as non-MMO games are considered, it’s not even worth making the comparison because it’s comparing apples to oranges. Games like Overwatch, Call of Duty etc are session based games and should never be compared to an MMO. Yeah, Call of Duty doesn’t have queue times even though millions of players are logged in at once. Are they all interacting with each other at once? Nope. It’s sad that people have even tried to make this comparison.
One last point… Take something simple like changing your avatar or banner in Call of Duty, Overwatch, League of Legends etc… A lot of that is handled client side. If I go and change a spray or select a different skin, none of that information has to be sent back up to the server in real time (like in our Mage casting Frostbolt scenario) unless I am ready to join a multiplayer lobby. It’s like when you “Like” a post on Facebook. Sure, the front end does some magic and you see the thumbs up button light up and it shows you have “liked” that post, but because so much of the load is distributed to the client side, it doesn’t matter if it takes a few extra seconds to get to the back end.
What I’m saying is, in WoW we don’t have the luxury of allowing things to be delayed like that. When an action occurs anywhere in the world, the transaction of client → server → client(s) needs to be in real time. A situation very unique to WoW.
If WoW was written from scratch in 2022 would the engineers make different decisions? Yeah probably. But the fact is that it’s not written in 2022. The fact is none of us here have any idea what the code base looks like, what their tech debt is or what hurdles they have to overcome. To come out here and imply that they are giving us false information or lying about their situation is just… immature. And I don’t mean that solely directed at you. We as a community should be better at not devolving important conversations into trolling because we didn’t get an answer we like.