I want to develop an MMO, like World of Warcraft, but some basic research says that it is going to take a lot of time and money. I'd like to know why.
Why is it so expensive to develop an MMO?
The first problem is that the software itself is very complicated, particularly for a new or inexperienced game developer. You have to maintain (at the very least) a client and server application while providing more content than you would expect for a "regular" multiplayer or single-player game.
Even on their own as a single player game, an RPG with the complexity of a World of Warcraft would take professional teams years to develop to the same level of polish: an enormous content investment, lots of work up front and afterward with balancing and playtesting, and some of the most complicated interactions of any game genre. These are commercial-level games, and while yours might be smaller, it will still require a lot of effort just to be a good game before you pour in the extra work to make it become a good multiplayer game.
Networked game development is not trivial; there are large obstacles to overcome in not only latency, but cheat prevention, state management and load balancing. If you're not experienced with writing a networked game, this is going to be a difficult learning exercise.
Building it shouldn't be your sole concern for manpower and money, either; also consider the costs of running it after it's developed. Even a small massively multiplayer online game will need constant improvements to its hardware/software to keep up with demand and staff to manage the game and provide support for your players.
Think about the following:
World of Warcraft has:
The thing to remember is that an MMO is literally the most complicated piece of software one can make. Take every single problem that exists in software engineering, and you have it in an MMO.
A) Every problem from a normal game.
1) Resource streaming for an open world.
2) Particle system running on 5 year old commodity hardware
3) Physics system to handle projectiles (Even if it's not havok you still need something for the characters falling from the sky.)
B) Every problem that a business app would have.
4) High availability clusters
5) Billing systems
6) Massive databases
7) Customer Support back end
8) Call center support
C) Every problem that 'internet companies' have
9) Latency kills
10) World wide datacenters mapping 1:1 and 1:many architecture pieces
D) Some nice unique problems for MMOs only
11) Cross server object replication
12) More hackers targeting it than they would some banks.
It's not so much hard to develop an MMO, as to develop another World of Warcraft. If you're willing to settle for only having a few thousand players, you can make an MMO, such as:
I'm not saying that it was easy to make those games :) But it can be done by a small number of (skilled, dedicated) people.
I'll disagree with most of the popular posts on here and say that it's really NOT that much work to create an MMO. But don't confuse MMO with WOW.
Really, the idea of an MMO can be broken down into:
O - Online. This is a game played over the net
M - Multiplayer. Not just you.
M - Massive. This implies that you are playing multiplayer with people you don't know, and it implies that the game persists past when you start/stop playing.
Doing something like that wouldn't really take much work as other people here have pointed out. The rolling ball example, Runescape, Travian, etc.
I think people confuse 'Why is it hard to make an MMO' with
'Why is it hard to make a huge 3D interactive world with thousands of animated monsters, weapons, spells, character classes, craploads of sound effects, music, and enough plot to fill 40 fantasy novels.'
And when you phrase it like that it's pretty obvious. It makes you realize that just making a one player offline version of WOW would take almost as much time.
Developing an MMO is super easy. It takes no more than four hours.
Developing an MMO that people want to PLAY is a very different matter.
I asked myself the same question a long time ago. The best way to answer it is this: Design the simplest, dumbest MMO you can imagine. Say, each player is a little ball rolling around, doing absolutely nothing but watch other players. Use, no textures, just solid colors. No lighting, no combat, no interactions. Nothing. Simple, right? Now write it, complete it to the point where you can distribute it online and people can install it, play with it and report errors. See how that goes. This world is about 3 orders of magnitude simpler than WoW, so factor that in and you'll get your answer. Only with experience you will see what a giant time sink building games to completion is. Ask any good developer how long it took them to finish a prototype of their game that looked almost as what they imagined the final version would look like. Then ask them how long it took to finish the game.
Unlike most of the other posts in this thread, I'm going to go the other way and say making an MMO is actually not that hard if you make realistic goals for it.
I made an MMORPG myself when I was in high school, which took about 8 months to put together. It got to the point of having just over 1000 users and an average of 80 on at a time before my ISP made me shut it down because apparently that's not allowed on residential ISPs. Oops.
Compared to making a traditional RPG, the online component doesn't actually add many complications, if you are clever about it. The biggest mistake game developers tend to make in MMORPG development is to start with the client. A well-programmed MMO should actually be not that different from a VNC system--essentially all the client should do is send keyboard and mouse states to the server, render graphics and play sounds. You are much better off starting by making a basic MUD server and a simple console-based client, even telnet should work.
What the players sees is mostly irrelevant to the server, and what the player does is mostly irrelevant to the client. If you think in those terms it's actually not that hard, it's mostly just syncing state changes.
Lots of reasons:
Supporting hundreds or thousands of players introduces a lot of problems. For the programmers, its essentially a giant N^2 problem. For example, imagine something as simple as updating a players position. In addition to dealing with internet latencies, once the position update reaches the server from the player's machine it now needs to be sent to all other player's machines. That's N number of messages being sent, for each player potentially 10 times a second.
Content for an MMO needs to support all these players as well, and provide enough play experience so that players don't "beat the game" after only 40 hours.
Server hardware to run an MMO as well as bandwidth costs are typically very expensive.
TLDR: MMOs are big and complex.
I would like to point you to an article by Shamus Young of Twenty Sided on the issue of server population in MMOs:
This is one reason. Other's are the overpopulation of MMOs(seriously, do you not see enough ads of MMOs already?) and the strain to provide a lag-free, scalar game that can be improved over and over again.
The market is difficult, the management is difficult, the users are difficult lots of times and the profit is often lackluster (P2P or the usual market that uses real money for premium items a la Atlantica Online).
Ugh. Did I miss an As-Seen-On-TV ad?
Any game is a lot of work to make. Not just an MMO. Most console titles take somewhere from 18-30 months and from 30 to 200 people working on it, and that is generally with the basic infrastructure already in place (render engine, content framework, core libraries) and people with background in game development joining together years of experience.
With an MMO you throw some extra ingredients in the mix, like scalability, networking, lots of playtesting, and (generally) even more content.
Yeah, I'm fairly sure that if you'd try to do that by yourself you'd indeed need a couple of months....
The problems with an MMO can be broken down into 4 major groups. All of which can be solved. Or at least reduced somewhat. However, you'll have to sacrifice your personal vision of the game to do it, in most cases.
There are many ways to solve the Content problem. The obvious one is collecting a ton of talented people and paying them to make the content. However, this isn't the only way. It can be done on the cheap/slow through various channels. The most elegant is the user-generated model. Some examples of user-generated content in MMOs are the recent lego universe MMO (however in very limited scope) and, of course, second life.
But you can take this much further. Kingdom of loathing is a fine example of a system that would lend itself well to user-generated content. (they chose not to do that) Enemies consist of a static hand-drawn image, and various stats and attacks that come from a pool of possible attacks. Each of these elements could be user generated. Finding unique ways to get the users to make your weapons, armor, spells, enemies, cities, countryside, attacks, and even quests and NPCs is a perfectly viable way to source your content. You simply need to bear in mind that this content will never be particularly on-point with a story. It will be what the users want it to be.
For 3D? Look towards games like Spore.
Yes, billing can be a terribly expensive proposition. However, there are ways to make this easier. Such as paypal. Yes, you'll be asking your users to all have paypal to play, but it certainly doesn't have to stay as paypal only if the game takes off.
The trick with any MMO is to build systems that accept any data. Don't program spells. Program a universal spell system that accepts data from a database or file to create spells. Don't program quests, program the tools you use to make quests.
Start very simple. Get the core mechanics in place. Consider using an already existing platform. But go about it smartly.
Maybe open source?
No matter what, this will cost you. But it doesn't have to start costing you right away. If you are willing to languish in obscurity for a few years, you can slowly build a passionate following and use the money you do make to upgrade. Keep the game simple. Don't ask too much from your hardware. And push off as much as you can to the users.
Pioneer something in bit-torrent and validate through multiple peers responding. You might be able to eliminate the server entirely. Or at least relegate it only doing very important things. However, I don't know of anyone out there doing this.
Even "simple" indie games take months for a small team to make. This goes into design, programming, art, audio, business, marketing, etc. With MMOs, the complexity is greater -- you need a rock-solid (ideally, exploit-proof) game client and server, plus a billing system, a back-end database that can handle a large number of players, etc. These take time to make, test, debug, and sometimes remake from scratch.
The fact that games cost money to make comes mainly from the fact that people need to eat (and developers are people). Even with a team of three, you need a few thousand dollars a month for housing, food, and other necessities.
The cost is related most intensely to the labor required for developing assets. The cost of most tools pale in comparison to what it costs to pay people to use them and produce assets.
Consider that the cost of one fulltime developer can be anywhere between 20k - 100k+. This already equates to very high budgets for normal games, but MMOs require significantly more assets to create. This longer development time means more cost paying the workers, and significantly higher overhead.
That wouldn't really be all that bad though, but until recently, the 'wheel' so to speak wasn't readily available. So each group that has had to create a MMO has had to essentially create their own. Flying blind means alot of work that may be unnecessary gets created, and things that later on are discovered to be very necessary are overlooked.
The process of wasting time on things that you don't need, and having to painfully go back and create things where you should have before (introducing further complexity in the form of bugs and whatever else) becomes very expensive.
That's how it is for most big teams. But Indie/hobbiest teams also run into a few more issues. Usually the big one is not looking at it realistically. People have the tendency of looking at finished, (sometimes) polished work and dramatically underestimating the work that went into creating it. Indie teams usually fail because they do just that, they believe that reaching X level of status would be easy, even with all of their other potential commitments (as most Indies aren't fulltime).
Eventually not being able to completely objectively look at the project discourages them, and they fall apart.
In addition to the technical and logistics reasons mentioned above there is another huge one:
MMOs are designed to satisfy a large and diverse set of people. To get an MMO going you need to satisfy at least several of the types of players from the Bartle Test. So you're game is going to need to include some social features, some exploration features such as art, and probably some competition features.
Much like the audience for an MMO, the creative team needed to build an MMO has to be very diverse. They have to include some really strong engineers to solve the technical issues above. You need some great artists to make a living, breathing world. You need some designers who can both crank out tons of content and make it engaging over long periods of time. You need a full QA and CSR architecture to deal with player feedback and the tons of bugs that will result. Very likely, all of these creators will be interested in the design direction of the project and will either like or dislike whatever direction is chosen. Put all that together and you need a creative team with the ability to drive that diverse collection of people towards a common goal.
There's simply no way to make an MMO of any scale with an "indie" style team. As your team scales up various creative and personal issues tend to spiral out and the rigors of running a business can really get in the way of building a game. Even if you have all the components above it's very difficult to bring it all together to make a successful, launched MMO.
If you're going to independently develop an MMO, you will likely be using pre-existing libraries and API's and engines instead of creating your own from scratch, which is what takes a good deal of time for developers like Blizzard.
However, it's unlikely that you are going to find your own custom-built MMO Engine online all ready for you to take and use yourself.
It requires massive amounts of architecture and design. Have you ever tried programming a simple game? If you have, I doubt that you would be asking this question.
Once you have that down, there is the question of art design. Artists cost money. And if you are going to do the art yourself, it'll take time. Lots of time. Imagine drawing everything in WoW from scratch -- every single item, character, every detail of the world. Art itself is what will take a large portion of the time.
Of course, you don't need art. You can just release a wireframe game. But good luck getting people to play your game then.
With Blizzard, especially, there is the fine-tuning of gameplay. Blizzard has to test and run through and explore every single possibility of their gameplay for months and months just to make sure that it's fair. That nobody can find some exploit and ruin the game for everybody else; that things are balanced and fun to play. And even with all that playtesting, things can still slip through. You can't possibly know how the player's full gaming experience will be, once they are interacting with thousands of other players, with just a few weeks of testing.
In addition, it takes a lot of money to run a server that is powerful enough to host your MMO.
If you want to make a MMORPG like WoW, of course it will be long and hard, but the main reasons for that are the content making, the server/network knowledge required to set up a smooth game, and also a team and a good set of tools to maintain the whole game running with as few problem as possible.
Programming a game like WoW is of course a complex work, but the most problematic challenge of such a game is to think about a good architecture for it, in terms of "which data is where, where events happens on which machine would it be a client or a server and what data can be omitted and what cannot" etc, and at the end, benchmark the system to see how a server can handle a certain quantity of players, and when it start to be "laggy".
Technically speaking, WoW is a good product, but don't forget it is very much optimized in term of network and server load.
Now if you want to make a MMORPG, you have to ask yourself if you would make a game as massive as WoW: it is impossible to make content as good as the one WoW features: it's coherent, artistically beautiful, and has not too many polygons.
Personally I wouldn't think about making such good content: you have good artists or you don't have them. I think the bigger problem in a MMORPG like WoW is the bandwidth: 5000 players at the same time costs a lot of bandwidth, and I'm sure some day when the internet is a little faster, the server will be able to manage less traffic thanks to p2p protocols... but that's just an idea...
Do not listen to them!
You do not have to recreate WoW in 7 days. That's BS. As is BS everyone who says a motivated person can't do something.
Start small, read about decentralized systems and other success histories.
One good example, done in 48 hours ... yes, HOURS:
Learn from that, add some weeks to create a basic 3D client, and you're on.
Its not very difficult if you are not planning to clone WoW or something very similar in terms of number of game mechanics, chars, skills, quests etc., WoW has (and I assume you are not).
But its moderately difficult to develop MMO for sure because it has two overheads (online, massive players) involved when compared to standalone games.
And yes, the cost in terms of money and time is gonna depend on how big and good game you are going to create.
You can cut down time to some extent if you consider buying assets, and using existing game engines/APIs