Believe it or not, developing and running a massively multiplayer online game is one of the more complex tasks in the world of networking. Not only do you need to manage everything you’d ordinarily deal with while running a server, you’ve a whole plethora of additional tasks to tackle. These include (among others) cheat prevention, game balance, latency, game maintenance, and state management.
For this reason, it shouldn’t be terribly surprising that there’s actually a great deal one can learn by studying some of the more successful developers in the world of online gaming. How they run their servers – along with the mistakes they’ve made, both past and present – can serve as a great primer for any budding administrator, regardless of whether or not they’ve an interest in gaming.
Some Services Require Significantly More Bandwidth Than Others
One thing a lot of new developers tend to forget about MMORPGs is that they’re horrifically cost-ineffective if run improperly, due in large part to their immense bandwidth requirements. Depending on the size of the game, an MMORPG is potentially dealing with millions of connected clients at any given time. Not only that, each one is potentially downloading several gigabytes of data a month – perhaps more. That sort of thing quickly adds up, and a great many MMORPGs fail simply because the developers can’t balance their subscription fees and bandwidth costs.
The lesson is simple: certain services require a great deal more bandwidth than others, and if you’re not aware of how much data you’ll need to transmit to the average client, you’re almost guaranteed to run into trouble.
You Need To Communicate With Your Users
Blizzard Entertainment is probably one of the best known game development studios in the world, with an impressive portfolio of extremely successful, high-profile titles. One of these games is World of Warcraft, still among the most popular MMORPGs on the market.
Throughout their history, Blizzard has made providing good customer service a priority; this may be one of the reasons they’re as popular as they are. When something goes wrong with one of their games, they’re usually fairly quick to communicate that there’s a problem. Although they’ve had a few horrendous slip-ups, as a whole they’ve done a decent job of keeping their customers happy.
If you’re using your servers to provide clients or customers with a particular application or service, learn from Blizzard’s example. Be transparent, respond to complaints and concerns quickly, and never leave users in the dark.
Development Needs To Be Done With The End User In Mind
One of the surest ways for an MMORPG (or really, any video game) to fail is for the developers to design the title without putting the player first. It’s an integral element of game design: in order for a title to succeed, its developers must be concerned– through the entire development process – with making the game enjoyable for their users. Those who don’t wind up creating flops like these ones.
In the same way, if you’re developing an application or service that you plan to offer online, put the user experience first. Even if a service is highly functional and powerful, no one will use it if the interface is difficult or frustrating.
Proper Traffic Prediction And Load Balancing Are Vital
When Blizzard first launched Diablo III, it failed to adequately predict just how hyped up its customers were about the game. You’d be correct in thinking it came back to bite them. For the first several days after Diablo III launched, the servers were nearly inaccessible, giving users the now-legendary Error 37. I myself was unable to play until close to a week after launch.
The problem extended far beyond Diablo III. Every single one of Blizzard’s systems – from World of Warcraft’s backend to Starcraft 2’s multiplayer servers – effectively ground to a halt because of the issue. Players were understandably furious – not in the least because they knew this whole thing could have been prevented if Blizzard had only bothered to predict their launch numbers.
It’s Not The End Of The World If Your Servers Go Down
In spite of all the problems with Diablo III, it nevertheless recovered – as did all of Blizzard’s other titles. Today, people still make frequent reference to Error 37, but most of the ire regarding the incident has long since faded. There’s a lesson in that: although it’s never a pleasant situation to have your servers crash, they’re likely going to eventually (no matter which host you use).
It’s not the end of the world. Certainly, you might miss out on some revenue, but you’ll eventually recover. Just keep your wits about you, and you should be fine.
The Best Servers In The World Are Nothing Without Proper Security
To go back to Blizzard again, one of the biggest controversies regarding their titles involved a rash of account thefts suffered across the Blizzard library of games. Many World of Warcraft users had their accounts compromised through no fault of their own, while several Diablo III players found their characters stripped of both gold and gear. People were understandably frustrated, and Blizzard’s paid authenticator did little to address the issue.
The damage had been done – because Blizzard’s security wasn’t up to par, they’d already lost a great deal of progress on their characters and accounts. Learn from that mistake: don’t skimp on security, or you will pay for it.
There’s Really No Defense Against DDOS Attacks
Alright, we’re going to leave off on a bit of a sober note. Earlier this year, there was a hacker collective which went by the name of Derp Trolling. Whoever was behind that collective got their hands on a botnet of considerable size, which they then used to deliver attacks against a wide range of different online games, bringing almost all of them crashing down.
The incident, coupled with the rash of additional attacks that followed, drove home an uncomfortable truth: although there are certainly techniques for mitigating the damage caused by a DDOS; aside from performing damage control and tracking down the agents responsible, there’s really no feasible, foolproof way to defend against one. It’s the ultimate brute force assault on a server, carried out either for the sake of spite or to act as a cover for something else.
Here’s an analogy to clear things up a bit: let’s say there’s a coffee shop with an incredible secret recipe that its customers can’t get enough of. A fellow named Jim wants that recipe, and he’ll go to great lengths to get it. He buys a school bus, rigs it up to a remote control, and ‘drives’ it through the front entrance of the shop. While everyone’s distracted by the bus, he sneaks into the back and makes off with the recipe.
Jim’s insurance might allow him to recoup the damage caused by the bus (and he might build his shop out of stronger materials in the event of future attacks), but ultimately there’s little he can do. Just as a shopkeeper can’t really defend against a bus through the door, a server administrator can’t really do much against a botnet attack except hope that their servers are powerful enough to handle the increased load.