After my little conversation with Ravuya I wanted to take a moment to explain the difference between my little experiment, and a true Massively Multiplayer Online Role-Playing Game. And then why this little experiment may still be useful to many of you here on GD.net.
You see, although this little experiment is designed to show that a single individual CAN create an MMO, it's only a microcosm of the real thing. Trying to scale this little experiment up to be the size of a game such as World of Warcraft would require not only that I had all the time of 50 people working full-time for 3-5 years (about 500,000 man hours), but it would also require that I have the skills of a programmer (of all the various systems), concept artist, 3d modeler, animator, texture artist, sound engineer, story writer, world builder, producer, and Tester. And these are just the various positions and disciplines which immediately come to mind. There are more.
So if I'm not going to be implementing a TRUE Massive MORPG, but rather just a microcosm, then what's the point of doing this at all? Well, the secret to that question lies in the first 'M' of MMORPG. Once we understand the nature of that 'M', we can have a bit better understanding about why such an experiment is still useful.
First, for those who do not currently work in the Game Industry, let me take a moment to enlighten you, by explaining the primary departments in a game company, such as might develop an MMORPG.
The Design Department
The backbone to most games, and especially MMO's, is the design department. Without a good design department, there's no vision, no imagination, and no game. You could have 150,000 programmers working around the clock for 20 years, but without a world to create, without a game to be made, there is no game. The roles of the game designers begin with a vision of the game, which is often coordinated by a team of designers or a lead designer, and continues through defining the rule system of the game, the special abilities of the classes, determining the layout of the world, writing NPC dialog, object descriptions, and quest chains. The design department's job is never done, and in a MMORPG, their work will continue, on average, for up to 10 years after the game is initially launched.
The Art Department
After the designers have created a vision for their world, it becomes the responsibility of the art department to give 'light' to the vision. This means creating concept art up to the standards of the designers who envision the world. Once this is done 3D models must be made of EVERY physical object in the world, from tables & chains, candles on the bookshelf, all the way to the shrubbery and trees in the wilderness. If you can see and collide with something in the game world, chances are good it was drawn by an artist, and then modeled by a modeler. But the work doesn't end there. Every material, every surface in the game requires a texture and material (shader). This means either a texture artist and/or a technical artist had to determine what this physical object would look and feel like from a distance, and from up close. No small challenge. And finally, those nifty little rabbits, the wolves, even the monsters and characters which prowl and explore the world needed to be given realism by adding animation. Every twist, turn, jump, look, breath, sigh, laugh, dance, etc...were all created by animators.
The Engineering Department
And finally, it becomes the responsibility of the engineering department to breathe life into the vision. This means implementing every game system in the game up to the specification of the design department, in order to bring the game to life. It also means writing tools, importers, add-ons, mungers, and everything else in between in order to get what the designers and artists do, into the game. On top of which it must be done with performance and security in mind, as a game of this size must handle with minimum interruptions and down time, as people are paying to play. Every hour the game is down, is a handful of players who get tired of waiting and cancel their accounts, and thus, the revenue the game is bringing in.
Although certainly not unimportant, there are also a handful of other departments which frequently appear in game companies. These are the production department, the QA/Testers, and the Sound Engineers. The producers and AP's are responsible for making sure the milestones are met, and the game is delivered on time, and within budget. The means a) making sure everyone is on task, and working towards the same end. and b) that everyone has the resources and tools they need to get the job done (even dinner). The QA people spend hundreds, if not thousands of hours each tracking down all the mistakes the other departments have made in the creation of the game. Think playing games all day is fun? Wait until you're REQUIRED to do so...the same game, over and over again...and only a specific operation in order to get the bug to repeat itself. It's no picnic. And finally, the sound engineers. Every ambient sound you hear - every chirp, squeak, chatter, rustle of the wind, etc...are created by sound engineers. Every click, swoosh, and slide sounded off by the interface is created by a sound engineer. Every song, or every situation, in every realm or kingdom of the world, is developed by a sound engineer. And finally, every voice-over dialog in the game, by every NPC was recorded and digitally mastered by a sound engineer in their studio.
Now that we've taken a look at the standard departments within a game company, you begin to understand what the 'M' in MMORPG might REALLY mean. You see, when we speak of a Massively Multiplayer Role-Playing Game, we really are just talking about a larger, and more complex role playing game. Each department within the company must not only do what they would have done with a simple Role-Playing Game, but they must do it A LOT MORE.
In the design department, the designers are not creating a main story-line...they are creating 1,000 storylines, which must all plot-weave in and out in order for the world to seem cohesive. Instead of developing a hundred or so quests, playable over 50 hours of game time, they are creating thousands of quests, playable over 50 DAYS of game time (1,200 hours). Rather than creating non-repeatable dialog for 50 NPC's scattered over an RPG, they're creating dialog for 500 NPC's scattered over the game world. And finally, rather than creating object properties and descriptions for maybe 100-250 different equipable/usable items, they're doing it for 1,000-10,000 items, which is what is required for players to feel like their characters are unique. Oh, and because this is a game which must update in "more or less" real-time (not really, but that's neither here nor there) with 100's or 1000's of players in the same city, the engineering department has informed you that you just lost half of your cool game feature ideas to performance considerations.
Art...yeah, same thing. Each of the above NPC's, quests, objects, buildings, etc...must be sketched, modeled, textured, and sometimes animated by the art department. This is roughly 10x to 100x times the workload of creating a regular RPG. Oh, and because you're going to have 100's of characters on screen at a single time, the polygon count and texture resolution of all game content just got cut in half due to video card memory and performance considerations. Thanks engineering department.
Engineering...you guessed it. In addition to all the requirements of a single-player RPG they must worry about networking, database, security, scalability, etc...And since we're talking about 10,000 of players per server, and not 10, we're also talking about compression, asynchronous updates, zoning, load balancing, throttling, and predictive algorithms which help improve performance. This makes the technology a bit more complex. Oh, and the design department is bitching at you because you're not letting them have all the cool game features they want, and the art department is bitching at you because you've told them they cant have 2048x1536 texture resolution.
From the above I hope you've all gained some insight into the meaning of the word massively in the acronym MMORPG. But at the same time, I hope you've realized that aside from the programming department, the M really only means more of the same. A Massively Multiplayer Role-Playing Game is just a multiplayer RPG which is designed to be interesting and entertaining for 1,000s of people, rather than for 10 people. This requires more artwork, more music, more quests, more objects, more blah more bleh more blih...etc...In terms of programming, there are some added responsibilities, but among the principles of Software Engineering I explained yesterday, there is yet another which I forgot to mention. "Code By Necessity." If something isn't needed, don't put it in! The fewer lines of code you've got, the fewer systems you have, the less you have to debug, refactor, and maintain. With that in mind, one SHOULDN'T add wavelet compression, throttling, load-balancing, etc...until performance concerns and testing have proven it necessary. So what does all this mean?
It means this little experiment is doing exactly what I've always said one should do. BUILD A ROPE BRIDGE! That's right, this little experiment is the rope bridge of MMO's. It's the absolute minimum, the barest necessities, the most flexible structure possible, just to get you on your way. If you follow along through this experiment, when it's done you'll have a code base and a set of resources which can be added to indefinitely, and will have learned the groundwork lessons required before beginning the real challenge. Then you can get yourself a group of friends, or a volunteer game team and you can add MORE models, MORE sounds, MORE animations, MORE quests, MORE objects, MORE features, MORE players, and when the performance begins to degrade you can add compression, predictive algorithms, load balancing, etc...
And then you truly WILL have an MMORPG. In the mean time, we'll work our way towards developing a simple Miniature Multiplayer Online Role Playing Game. So here's to microcosm's, and here's to the 'M' in MMORPG!