This site uses cookies to deliver our services and to show you relevant ads and job listings.
By using our site, you acknowledge that you have read and understand our Cookie Policy, Privacy Policy, and our Terms of Service.
Your use of Stack Overflow’s Products and Services, including the Stack Overflow Network, is subject to these policies and terms.

Join us in building a kind, collaborative learning community via our updated
Code of Conduct.

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Why the upvotes? I mean, that's pretty a horrible questions (which incidentally generated some very good answers, but that's beside the point)
– o0'.Dec 1 '10 at 14:17

34

@Lo'oris: What makes it a bad question? The fact that it's simple? The fact that the OP didn't know the answer?
– Dave SwerskyDec 4 '10 at 4:38

13

It has a lot of votes not because of the inherent quality of the question, but because of the relevance of the answers. In terms of this site being a source of good information, this question and the answers that go with it fit the bill. I don't think upvoted questions encourage similar questions - if one was too similar, it would be merged anyway. And if it was different enough to merit different answers, those answers would be useful in themselves.
– KylotanDec 6 '10 at 16:10

22 Answers
22

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:

Hosting - Where are you going to host the servers? How will you pay for the bandwidth? How will you load balance players between servers and keep a minority of players from monopolizing the resources of the game? You'll need people to keep an eye on the condition of your hardware and software hosting the game in order to make sure that it will continue to work well.

Technical support - Not just getting the game to run, but dealing with problems between players and handling player feedback in a way that will keep them loyal. If you're charging money (say, for a subscription), the billing system will be even more complicated (and most likely require legal assistance and possibly international representation and banking/processing fees). People who deal with these things need salaries.

Security - Not just of their game accounts, but you have to consider cheat prevention and doing frequent repairs and community maintenance effort whenever a new exploit is discovered by players.

In regards to security, I spoke to an MMO developer who said "we assume all players are cheaters, so we do everything server side." This severely constrained them in CPU time, because they couldn't off-load virtually anything to client side. This is why MMO AI is so dreadful.
– cflewisJul 14 '10 at 20:17

Don't forget how incredibly expensive it would be to even gather enough users; an MMO without tens or hundreds of players in your level range isn't exactly multiplayer, so you have to get a lot of people before everyone decides your game is a ghost town.
– ojracSep 4 '10 at 3:56

6

I like this answer, but I think it neglects the complexity caused by the many users trying to access the same game state at the same time, especially in crowded areas. The multithreaded state management for that is frightening.
– C. RossNov 3 '10 at 14:23

The number of assets is the most impressive one for me. Imagine you're at home cranking on your little game project and every time you write just five lines of code, you have to stop and completely author, export, test and complete some texture, sound, model, or animation.
– munificentJul 14 '10 at 22:50

7

I was going to say there are only around 4000 quests but I was wrong wowhead has a list of 8446 quests but these are not all accessible in the game. They also list 36406 items. Now wow is a huge game. Ever think of writing a mud?
– JeffJul 15 '10 at 3:10

Not every MMORPG needs to be the next WoW. Even "utterly flopping" with 10-100k users paying $5/month is still as much as half a million dollars a month. Sure there is hosting fees and such, but the number of people subscribing to an MMO is much higher than the number of people actually playing it at any given time. A game with 100k users would rarely get more than 10k connections at a time. How about you try showing what those numbers were at launch. Half a million a month can certainly pay for some expansion.
– Stephen BelangerNov 12 '10 at 23:15

Runescape was made by 3 people, and IMO its a bit misleading to put it here because the original version of runescape was much smaller and crappier, the current runescape happened after they got a team of hundreds of people
– Click UpvoteAug 18 '10 at 23:22

1

@Click, the Wiki entry only lists two people for the game creation, not the company they formed to market it, so that's what I posted. You're right that it was significantly improved, though, I'll edit that.
– CyclopsAug 19 '10 at 13:48

1

Ditto, KoL is a browser-based RPG with chat and some other limited player interactions, not reeeeeally what I would call an MMO (at least not when standing next to WoW and friends). On the other hand it is awesome and everyone should try it anyway!
– coderangerSep 13 '10 at 20:42

8

@coderanger, that actually illustrates my point - why does every MMO have to be compared to World of Warcraft? And KoL has gone from one person to eight full-time paid employees, which, by any reasonable standard, is a success.
– CyclopsSep 14 '10 at 21:27

1

@Cyclops: because after all people will have to choose if they with to play WoW or to play your game.
– o0'.Dec 6 '10 at 17:12

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.

+1 but I think Massive would be a huge amount of playing area and can hold a lot of people (not meaning it always does)
– SpooksNov 18 '10 at 19:58

5

I don't think your definition of massive is really the definition of massive. Your def sounds like an old school BBS game. Massive to me implies thousands or millions, not just "people you don't know".
– Peter RecoreJan 3 '11 at 18:42

1

OTOH I really like the sentence where you ask "why is it hard to make a huge 3d interactive world...." That really does make it seem obvious.
– Peter RecoreJan 3 '11 at 18:43

2

@Peter Recore Well, I was trying to speak to the qualities of the game rather than just the popularity. If you need a specific number of people for that extra M, then you could argue that WOW wasn't an MMO when it first launched, or you'd have to have agreed upon numbers for what constitutes 'massive'. - on the other hand I'd argue that there's a major difference between games you play with your friends, and games you play with strangers, many of whom you don't need to interact with. I think a more important adjective to argue over would be 'Persistent'.
– LoveMeSomeCodeJan 3 '11 at 19:22

1

For this question though, he's specifically saying he wants to make a WoW clone.
– Nick BedfordMay 4 '11 at 23:15

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.

Yeah, that's a good point. I can usually finish 90% of a game in a few days, but the final product seems to take forever.
– LoveMeSomeCodeNov 11 '10 at 17:26

2

I don't really agree, this seems like a recurring developer thought that game concept code is hard and somehow take a lot of time. What takes time is game content and assets. Why would a AAA game take the same amount of years for a followup using the exact same engine and game design ideas as the original release if it wasn't for the extreme effort required to create all the content...
– Oskar DuvebornSep 1 '11 at 21:25

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.

Awesome answer! Have you ever considered setting up your MMORPG at a co-location centre or through a business-class connection at your home? (Most cable internet providers have a business-class service that is usually fairly reasonably priced, and as a bonus you get faster browsing too.) I wonder how many of your ~1,000 users would return?
– Randolf RichardsonJun 4 '11 at 5:53

I plan on rebuilding the game soon. It was almost 10 years ago that I made this, so it's way old at this point. Modern tech would make it much more feasible. :)
– Stephen BelangerOct 24 '11 at 2:23

As I can see TCP/IP connection is used to the server from the client. UDP for chat only. What do you recommend? What you do when on the client side the user drag on item from his bang to bank? Send only mouse coordinates? How do you know at sever side it is dragged to the bank slot X and not outside of the bank and destoyed the item, always keep track the windows state on server side? Or just send a command to the server: item x5 from bag slot x transferred to bank position Y? How do you validate it at server ice this action? - maybe he walk away from bank 500m, whatever
– matheszabiAug 8 '13 at 7:04

@matheszabi : Many games use networking libraries which are based on UDP only. If you have pure UDP, you don't have to maintain both protocols. For game development, TCP/IP has some limitations and UDP has some benefits. Regarding window positions: from the server perspective, there are no such things as "windows". Client sends a command - user X wants to transfer item A from his bag to bank. The server checks user's location and responds - hey, cheater, you are 100km from the bank, no way you can complete this action! I guess, you got the idea.
– JustAMartinOct 3 '13 at 17:18

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.

Well, the position of the player only needs to be sent to the players who are close enough to be affected by that player. Players dont need to know about players (and probably shouldn't know about players) that they can't actually see or interact with.
– KibbeeNov 9 '10 at 15:08

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.

Content

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.

Billing

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.

Programming

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?

Hosting

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.

Not saying you're wrong, but some companies have tried to succeed with only one player-type, such as killers in Darkfall, a pvp-only game.
– CyclopsJul 14 '10 at 23:12

1

Yeah, you can try that but it does limit your audience somewhat, making the financial constraints even more inhibiting. My comment is more about why a traditional MMO is hard to make, there are many hybrid styles that I think would be easier to develop
– Ben ZeiglerJul 15 '10 at 8:11

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.

The answers here are great but if you really want to build a MMO I would start small and build parts that you can. What is the end goal by the way. Is it to have a large MMO that is popular or have fun making the game you like to make.

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...

The question specifically mentioned WoW, and a few answers point out that something smaller is possible in a few months (weeks if you're really good). The scrabble MMO example you posted had about 3-4 people working on it, and had 3 meetups prior to the development time to work out details. Plus it used libraries and other tools to speed up development. You could certainly put together a 'simple MMO' using Unity in about a month if you worked on it full time. But there's more to a good MMO than a 3d client and decentralized system.
– thedaianMay 25 '11 at 20:30

Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).