↓ Skip to main content
  1. Blog/

WoW Forever Can't Be Fixed

Oral Ersoy Dokumaci
Author
Oral Ersoy Dokumaci
AI and ML systems for labor markets. Python developer. Former quant.
Real Production Systems - This article is part of a series.
Part 1: This Article

This Is World of Warcraft
#

This is World of Warcraft, the greatest game ever made. The original version released in 2004, which players call Vanilla, was so good that people keep coming back to it. In November, it’s coming back for good as WoW: Forever, challenging even GTA 6’s launch.

The WoW Forever logo over the stress test’s crowd, next to the GTA VI logo

Blizzard already brought Vanilla back once, in 2019, as WoW Classic. But the players are so used to the broken parts of the game that they have come to expect them.

So why, after more than 20 years, does the game still have the same issues? Can’t Blizzard just add more servers like all the people in the chat think?

A streamer’s chat full of advice for Blizzard, such as ’they need to buy 100x more servers for launch month’, with the word think written over it in quotes

We will answer these, and also in the process, see some of the greatest moments in the game’s rich cultural history.

WoW Launch
#

World of Warcraft came out in November 2004.

Launch night in November 2004: players line up in the dark outside a store for the game

The timing was right. The Lord of the Rings and Harry Potter had brought fantasy back into the mainstream. Meanwhile, broadband internet was becoming more widespread, and online gaming was growing in popularity.

Games like EverQuest and RuneScape had already laid the groundwork, but World of Warcraft made the genre more accessible to a much wider audience.

A line of years from 1998 to 2005 with the EverQuest and RuneScape logos dimmed at 1999 and 2001 and World of Warcraft lit at 2004, over fans walking into a store on launch night

The launch was far beyond what Blizzard expected.

Day 1: 100,000+ players on 40+ servers, all full, beside Robert Van Dusen of Blizzard

How WoW Works
#

The servers struggled from the first night, while players have argued about why ever since.

If you look at what people say about why the game still has issues, you’ll see one of these. All of them sound plausible to some degree, but we’re about to see only one of them is true.

Six reasons players give: the servers need more CPU, the servers need more RAM, it’s not the servers, the network is the bottleneck, the player interaction problem is exponential, the area of interest is useless, and Blizzard doesn’t care about its players and is money hungry

I’ll skip explaining the game itself as much as I can, because it’s impossible to get that right. Either you’re like Conan O’Brien, who played it for about 16 minutes, or like myself, with thousands of hours played.

Here we see Vurtne pretending that he is lagging by holding down the forward key on his mount into a lamp post. It’s also what you saw earlier in the stress test when it was lagging.

This is his client, which renders the game on his screen and sends whatever he is doing to Blizzard’s servers.

Vurtne’s computer runs the client, which draws the game, reads keys and mouse, sends what he does, and shows what the server says; Blizzard’s server keeps the real world, checks each request, decides what happens, and tells players nearby

Most MMO games follow this client-server architecture. The game client uses realmlist.wtf to find the login server. This is also how anyone can host their own private game server.

Open-source server software, MaNGOS, vMaNGOS, TrinityCore, and AzerothCore, runs private servers such as Nostalrius, Elysium, Light’s Hope, Kronos, Turtle WoW, and Warmane, which a client reaches at the private server’s address

Right now the client sends that he is running forward, and the server passes that on to every player nearby. When either the client or the server is having issues, the stop message arrives late to other clients, so they keep showing him running in place.

This is the Alliance mage Vurtne is baiting. He casts Polymorph, which means his client is asking the server to turn Vurtne into a sheep. The server checks its own copy of the world, and it again tells every client nearby, in this case the mage’s and Vurtne’s.

This should be the first clue about the limitations to understand about a client-server architecture like WoW’s. The server has to process every request, and it sends the relevant changes to all nearby players.

Next the mage casts a Fireball at the sheep. The server announces the cast, and an add-on on Vurtne’s computer turns the announcement into this bar. Add-ons are small programs in Lua. The game’s own interface is also in Lua.

The mage’s Fireball cast shown by an add-on as a 3-second bar on Vurtne’s screen, with the reasons Blizzard chose Lua for its interface listed beside it

Vurtne uses his PvP trinket to break the Polymorph. He then uses a Flame Reflector, which sends fire spells back at their caster.

The mage could have stopped casting as soon as the Flame Reflector was up, but either he wasn’t really good at PvP, or he still had dial-up internet. 20 years ago, it was usually both.

Vurtne could also have used Ice Block, even with the Fireball already in the air, because for that, the server checks it when the spell lands.

The mage’s instant Pyroblast reflects back as well. Vurtne adds a Fire Blast to get the honorable kill, because honor went by each player’s share of the damage.

You see, there are a lot of small things about the game you learn naturally. These quirks are what make the game feel like it does. This is why it’s important for Blizzard to get all these right.

Client-Server Architecture Limitations
#

Let’s come back to the fundamental limitation of the client-server architecture.

Suppose there are 20 players and each takes an action. If you look at it from the network perspective, for a trivial action like jumping that we take for granted, the server sends 380 network packets.

With 40 players, it sends 1,560. Doubling the crowd roughly quadruples the packets.

40 players in a circle, each linked to every other, 39 packets a jump: the server sends 40 × 39 = 1,560 packets, twice the players and four times the packets

Back then this was a limiting factor, but not since both the servers and the players got much better bandwidth and throughput. In 2008, the game sent a raiding player about 54 kilobits a second, about all a dial-up modem could carry. Today, one server’s network link carries 100 gigabits a second or more. A crowd of 1,000 moving players needs less than 1 percent of that.

One server’s 100 Gbit/s link in 2026, of which 1,000 players need less than 1 percent, beside the crossed-out claim that the network is the bottleneck

We’re lucky that this is not exponential, though. In that case, having 40 people jump together would mean about a trillion packets, roughly 100 terabytes for a single jump.

For 40 players, n(n-1) is 1,560 packets, while 2 to the 40th would be 1,099,511,627,776 packets

The server RAM is not an issue anymore either. A realm blade of 2007 had 6 gigabytes of memory, and a large server in 2026 has 768 gigabytes or more. Even if we generously assumed each player took a few megabytes, a million players would fit in a few terabytes, which a handful of today’s servers can hold.

A realm blade of 2007 with 6 GB of memory next to a large server of 2026 with 768 GB, and 1,000,000 players needing a few TB

But doing the actual work is the real bottleneck. Blizzard’s engineers called player interactions among the most processor-heavy work. The server needs to work out how each action is affecting the other players. This is even worse for actions that affect multiple players at the same time, like area of effect abilities, which can make the work grow with the cube of the crowd.

In the game’s first year, a raid boss’s disease called Corrupted Blood escaped into the cities. Each infected player passed it to the players around them, so the packed cities spread it fastest.

Even researchers later studied the outbreak.

The first page of Lofgren and Fefferman’s 2007 paper on the Corrupted Blood outbreak

Since 2005, every three hours, a chest appears in the Gurubashi Arena in Stranglethorn Vale, and everyone inside fights everyone else for it, area spells included. So if you densely pack many players into a small area, there’s nothing Blizzard can do after some point. Back in Vanilla, Horde raids stormed Ironforge to kill the dwarf king, Magni Bronzebeard, and Alliance raids marched on Orgrimmar to kill Thrall, packing multiple raids into one city.

So, doubling the players in one small area needs 4 to 8 times the processing power. Moving to a bigger server is called vertical scaling. If there are 10 times more players, then the server needs 100 to 1,000 times the processing power, and even the most powerful server-grade hardware runs out quickly.

The best long-term solution to this limitation is to make the world server, also known as the simulator, process and send less information. Maybe you wouldn’t let players jump or do an emote. Maybe the number of spells would be limited, or spells would have longer cooldowns. However, in that case, the game would be different, and players want the game they know and love. Blizzard can only change so much before it stops feeling like the same game.

Jumping and the dance emote crossed out, and half of a row of spells crossed out too

So it’s not that Blizzard doesn’t care about its players right now. I know they occasionally do their own thing, thinking of themselves as Steve Jobs or something, and have the audacity to tell people what to want.

But they quickly learned that the player community knows so much more than them and that they can’t change the game too much without risking losing millions. So, still, corporations can be money hungry or want to ignore their customers, but here that’s not an issue regarding gameplay quality.

Blizzard uses other strategies to spread players across more machines and processes, which is called horizontal scaling. The oldest such trick from Vanilla is the realm structure, separate worlds with their own population. WoW Forever asks which rules players want instead, such as whether they can attack one another or whether a death is permanent, which is a whole different mindset of playing the same game.

A list of realms, each a separate world, and WoW Forever’s rulesets: normal, PvP, and hardcore

Dungeons and raids also run in their own copies, called instances. Instances ran on their own servers to take load off the world servers. PvP battlegrounds are instances too. In Alterac Valley, 40 players on each side fought in their own copy of the valley, and the first games lasted for hours or even for days.

A world server and an instance server, each dungeon group in its own copy of the dungeon

Crowded places get copies too. A copy of one zone is called a shard, and a copy of the whole world is called a layer.

In 2024, Season of Discovery’s Blood Moon made Stranglethorn Vale a free-for-all every three hours, and a Blizzard producer called the layering behind it just sharding with a lot of sticky tape. Ordinary world updates also go only to nearby players, within a range called the area of interest. All of these cut the number of players who interact with each other, so each interaction can stay as rich as the players prefer.

The server’s copy of the world with a circle around a player, the area of interest; only the players inside it get his updates

Batching is another trick. The server collects actions for a short time and handles them together. To replicate the Vanilla behavior, Classic used a 400-millisecond batch until April 2021, when Blizzard cut it to 10 milliseconds. Although this improved the responsiveness of the game, it meant that some tricks, like vanishing from some nonprojectile instant spells, became harder or impossible.

Here, Perplexity vanishes from a Blind and from a warrior’s Intercept thanks to batching.

Still, none of these tricks helps a crowd that wants to stay together. Before battlegrounds existed, the Horde and the Alliance fought for hours on end between Tarren Mill and Southshore, two towns in Hillsbrad Foothills. There’s even an add-on that coordinates party invitations to gather the Olympus guild with about 100,000 members onto a single layer. Once the players are packed, you’re back to the quadratic work problem. For Wintergrasp, a zone built in 2008 for huge open-world sieges, Blizzard’s answer in 2009 was a queue that let at most 120 players a side into each battle.

Wintergrasp’s two sides, each let in up to 120 players, with the rest waiting in a queue outside

So the server’s processor is the current fundamental limit.

The six reasons players give, five of them crossed out, leaving the servers need more CPU: the real bottleneck

There are other types of failures that happen occasionally. On the first night of the WoW Forever beta, a Battle.net overload guard disconnected players, and empty maps that were never shut down used up processor time and memory until world services failed. On September 21, Blizzard improved routing for EU players, and on September 24, it fixed a memory leak that had slowed some players’ games. To the players, it looks like Blizzard is still failing for the same reasons even after 20 years, but each failure has had a new cause and got fixed quickly thanks to their engineering team.

The WoW: Forever beta’s failures, each with its date and fixed: the Battle.net overload guard, maps left running, EU routing, and a memory leak

WoW, Forever
#

World of Warcraft brought together incredibly talented people, not just engineers and game designers but artists, storytellers, composers, and product managers, all working together to create something that would stand the test of time for more than two decades.

WoW is mostly about progress, and chasing it is one of the most fundamental human traits.

But you don’t have to progress alone.

Footage: Ascent, Asmongold TV, Benjamin Matlock, Blizzard, Brian Howell, Faxmonkey, Lilzub, MerrikArgentDawn, Monkeynews, Mute, New Line Cinema, Nihilum, PALS FOR LIFE, paragonWOW, perplexity, Reckful, Rockstar Games, Serenity Now, South Park, Team Coco, Vurtne, Warner Bros. Pictures, and Woland. Tethered cap photo: Plastic Water Bottle with Attached Cap in Europe, Tony Webster, 2024, CC BY 2.0, cropped.

Real Production Systems - This article is part of a series.
Part 1: This Article