Why World of Warcraft: Classic is deceptively tough to make

World of Warcraft: Classic wasn't your traditional Blizzcon unveiling. With a quick two-minute trailer, Blizzard backpedaled on years of dismissal to finally offer fans an official, unblemished version of the world's most popular MMO as it existed in 2004. This is something they said they'd never do. A position that reiterated only a year ago with the infamous "you think you do, but you don't" smack-down and the heart-breaking shutdown of Nostalrius, the most popular emulated server at the time. Classic stands as one of the most profound about-faces in modern videogame history.

I don't think anyone is sure exactly how Blizzard intends to breathe life into the bones of World of Warcraft, however. As far as heartwarming, sure-thing announcements go, executive producer J. Allen Brack was quick to pump the brakes. "I am pleased, and also a little bit nervous to announce the development of a Classic server option for World of Warcraft," he said. "This is a larger endeavor than you might imagine, but we are committed to making an authentic Blizzard-quality Classic experience."

So if Nostalrius can get a vanilla version of Warcraft running with only a dozen developers and a fraction of the resources, why is Blizzard so cautious about World of Warcraft: Classic?

Azeroth wasn't built in a day

It’s actually not as complicated as you might think to get a server up and running.

Nostalria developer

If you've been around the World of Warcraft ecosphere for a while, Blizzard's tentativeness might come as a surprise. There is no shortage of emulated vanilla servers on the internet. The official subreddit for the scene points to 15 of them, and there are dozens more holding crystallized copies of Burning Crusade, Wrath of the Lich King, or Cataclysm—wherever you happened to leave your happiness. When I reached out to the developers behind Nostalria, an Australian private vanilla realm, they said that "anyone" could get a working server online with "the right tools and an old copy of WoW."

"It’s actually not as complicated as you might think to get a server up and running. There are a lot of readily available resources online that provide step-by-step procedures to this," they said to me. "There are also dedicated forums and communities that actively cooperate to better optimize and enhance the private server vanilla experience. From a practical point of view, it’s doable for many people even without a technical background."

The difference for Blizzard—and the likely source for a lot of Brack's anxieties—is that they don't intend to simply emulate an old, unscrubbed version of their game. Instead, Blizzard plans on importing the decade-old MMO infrastructure that World of Warcraft used to run on into the modern servers that host Azeroth today. It's something Brack touched on when he spoke to us a few weeks ago. 

"We think we have a way to run the Classic servers on the modern technical infrastructure. The infrastructure is how we spin up instances and continents, how the database works. It’s those core fundamental pieces, and running two MMOs of that size is a daunting problem. But now we think we have a way to have the old WoW version work on the modern infrastructure and feel really good." 

As you might expect, dragging a bunch of ancient assets into tech that's been iterated on several times over is a pretty complicated equation. Today Jimb Esser is making indie games at Dashing Strike Studios, but in the past he was the lead engineer at Cryptic, most famous for the adored and ill-fated City of Heroes. While he doesn't have an intimate knowledge of Blizzard's network, he is one of the foremost authorities on mass-market server tech during the initial MMO boom. 

Esser notes that the technology used to power games during the vanilla Warcraft era has changed "immensely," noting specifically that City of Heroes ran on a number of small, isolated servers, instead of one unified "shardless" realm that games use today. The radical difference between those two systems can cause a huge issue in translation if you're trying to build an authentic historical resting place for an antiquated game.

"It's technically infeasible to retrofit an old code-base to use a totally different database paradigm—the modern, efficient, scalable databases all require very different assumptions in your code," he says. "At Cryptic we actually built our own database from scratch for our second generation of MMOs, allowing for giant, shardless games that couldn't work on the old technology."

Esser also mentions that the way engineers have handled server upkeep has changed drastically over the past 10 years. "In 2003, if we wanted to increase the number of physical instances we were running on, we'd call our publisher, wait three months for the hardware to arrive, have their network operations team set things up, add the IP addresses to a bunch of configuration files, and restart all of the shards," he says. "Now, it's a couple lines of code talking to an Amazon Web Services API, or something similar." Esser's fear is that once you've imported the old tech onto the new systems, you'll still have to slog through all the exacting, hands-on management that was left behind when George Bush was still president. 

"You really, really don't want to start running some set of old software that requires a ton of manual configuration and maintenance and doesn't understand the new systems—it will just rot and break and require lots of manual maintenance," he says. "Presumably at some point in WoW's development they changed the server code to use newer systems, but it's probably not something easily portable to the old code-base, so they'd just have to do it again from scratch."

An emulated version of an MMO can be much, much simpler, if they're not worried about an occasional cheater or bug.

Jimb Esser

So why don't they skip all that hassle, take the community's route, and prop-up a reflection of vanilla Warcraft using emulation? Esser says that there are a number of unforeseen technical gaps that can rear their ugly head if you're not being vigilant. 

"An emulated version of an MMO can be much, much simpler, if they're not worried about an occasional cheater or bug," he says. "When the client says, 'I moved here,' an emulated server will probably just say 'Okay,' but a real server, assuming it was built well and securely, will need to do a bunch of checks to make sure the client isn't trying to cheat." It gets even more dangerous with player-to-player interactions like trading or server-side microtransactions, which can be easily hacked on emulated servers without the proper protocol. "A well built server will have a lot of extra transactional logic to ensure nothing gets lost or duplicated," he adds.

This isn't to say you should be cynical about World of Warcraft Classic's future prospects. Mark Jacobs, the lead designer of Dark Age of Camelot and huge World of Warcraft fan, has all the confidence in the world that Blizzard will make it work, mostly because they happen to be one of the biggest and most successful video game companies in the world. When I asked Jacobs, (who is currently working on a new MMO called Camelot Unchained) what it would take to get an old incarnation of DAoC online, he said the biggest hurdle would simply be spelunking through ancient hard drives to find the outdated data. 

"The first question that I’d have to ask is whether we still had the darn code from 16 years ago on some hard drive, cloud, stored within the Ark of the Covenant, or some such. I know that in Mythic’s case, when we looked at doing a 'rez spell' on some games, we actually couldn’t find the code. Things were quite different back then, but it was still really silly of us," says Jacobs. "We found ourselves in a situation where if we could find the code, then it would be much easier to get a classic server up and running." 

The good news is that, according to Nostalrius after they met with Blizzard this summer, that won't be an issue. "First, they do have the source code for Vanilla WoW," Nostalrius' project manager, Viper, wrote. "Code version control systems are not something new, as it has been a standard in the industry for a long time. With these systems, they can retrieve the code at any given previous backup date.

In the end, whichever of these parts were lost at any point, they will have to be recreated: This is likely to take a lot of resources through a long development process.

Viper, Project Nostalrius

“However, in order to generate the server (and the client), a complex build system is being used. It is not just about generating the ‘WoW.exe’ and ‘Server.exe’ files. The build process takes data, models, maps, etc. created by Blizzard and also generates client and server specific files. The client only has the information it needs and the server only has the information that it needs. This means that before re-launching vanilla realms, all of the data needed for the build processes has to be gathered in one place with the code. Not all of this information was under a version control system. In the end, whichever of these parts were lost at any point, they will have to be recreated: This is likely to take a lot of resources through a long development process.”

Once Blizzard has gathered all the codes and databases, Jacobs thinks World of Warcraft: Classic will be off to the races: "It might not be simply 'hit the go button,' but considering Blizzard’s resources and talent, that part shouldn’t be a huge challenge for them."

That's the fundamental truth here. Porting an old framework to new servers might be a pain if you're a dedicated indie developer or a passionate fan, but Blizzard has the capital that most publishers fantasize about. Vanilla will be born again, because those are the sort of feats that this company is uniquely capable of tackling. The burden of the server engineer is knowing that millions of players can't fathom why booting up a legacy realm would be all that difficult.