Being an analyst has its perks, the main one being that you get to have some really interesting conversations. And so I recently had the chance to interview Mike O’Brien and Pat Wyatt, two of the founders and lead programmers for ArenaNet, makers of the Guild Wars MMORPG (Massively MultiPlayer Online Role-Playing Game).
If you play games of this sort, it’s surely obvious to you why you should care. But if you don’t, maybe you should be interested anyway. After all, Guild Wars is a graphics-intensive SaaS offering that easily supports 100,000 simultaneous users, while managing a gig or so of fat client even over dial-up speeds. Every user is a potential hacker, whether for fun or actual real-world cash profit, although we didn’t actually talk about security very much. And ArenaNet provides all this on a relatively shoestring budget; in particular, Guild Wars subscription fees are precisely $0.
Note: If you’re familiar with video RPGs but not MMORPGs, please just read on; the main salient difference is that in an MMORPG lots of people play at once. If you’re familiar with other MMORPGs but not Guild Wars, there’s one GW-specific design feature you should know of – Guild Wars is instanced. That is, a group of 1-24 players will get their own private copy of the game world. Any changes to the environment (e.g. player movement, monster-killing) are made only by them.
And if you’re not familiar with video RPGs at all, I suggest you stop working quite so hard and go play.
Here are some of the technical highlights I managed to glean in a brief half-hour conversation:
The client doesn’t do much except graphical presentation and input preparation (including encryption). This is a deliberate security choice. They assume the game client is infinitely hackable, and hence limit its power to sending a small number of well-defined messages.
Their servers run on blades – originally all IBM, now more varied. Generally these are 2.8 gigahertz dual-processor Xeon IBM blades with 2.5 gigs of RAM.
There are a number of different categories of servers. These include: Authorization/log-in, game update download, actual gameplay, database cache, DBMS, several secondary game functions (e.g. guild membership, tournaments), and watchdogs overseeing the rest.
Gameplay servers can support 2500-3500 users each, with the main limitation being addressable memory. (They run on 32-bit Microsoft Windows.) 3500 users is a bit uncomfortable. This matches well against the fact that character records are several 10s of kilobytes, for reasons I explain in this companion post on Guild Wars data management.
There are 4 ½ million total lines of code.
Their connectivity design goal is .0045 megabits/sec/user, and they’re close to achieving it. Dial-up is a fairly realistic way to play. (That said, as a player I can tell you it creates some lags that make a dial-up user less than idea to be partnered with.)
Reliability is not just a nice thing for users, but an actual game integrity concern. There are possible exploits in MMORPGs that involve deliberately crashing a server when a goods-trade transaction is partway through. ArenaNet fights this both by focusing on transaction integrity (but not in the way you may think; I refer you again to the database-focused companion post) and by generally trying to make their database cache servers extremely reliable. Database cache servers typically stay up 150-200+ days at a time.
*Note: There is a high level of motivation for cheating in MMORPGs. One of the biggest is that professionals in low-wage but well-wired countries acquire fictional gold, so that they can sell it for real money. Gold sellers are a huge concern to ArenaNet.
That’s just some of what I heard. For more on the technology of Guild Wars, please see my companion post on the database technology of Guild Wars and Guild Wars game notes. This interview is also just one of several I plan with game and virtual world companies, so I hope to in the future address other kinds of issues, such as rules and AI.