NOTE: This article is for the purpose of linking to and saving some typing. I hope I can speak accurately and justly for all the angry devs. Keep in mind though I try to end everything with a positive note \\^_\\^
If you clicked on this post expecting an actual guide on the concept creation, design, programming, networking, debugging, polishing, marketing, distributing, maintaining, securing and continuously developing new content for your new MMO coming out in a few months, then you may also be inclined to calling 1-800 numbers for miracle weight loss pills and picking up books how you can (YES YOU CAN!) become a millionaire by using e-bay.
Now, the first thing you will notice in the previous paragraph (well it's actually just a run-on sentence) is the amount of hostility. However in truth this is really no different and perhaps much more mild than the responses of even the most professional and mature developers that have to read "MMO designer" posts every single day. Every time we turn around there is another person coming on here with no previous (or very little) programming experience announcing that his new MMOFPSRPG will be a WoW and Oblivion killer. So, before we as developers get a bad reputation for being pessimistic internet thugs, let me explain why we say what we do.
**Here is a typical *abridged* MMO lot of people
Hey guys Me and my friends have gotten together and are putting together a plan for a new and interesting MMORPG. Right now the design is on paper but we plan to start programming soon, but we have a couple of questions:
- What language do we use?
- Are there and tutorials for game and network programming around?
- What engine is good for an MMO? The new idea is \insert concept that's been done x10,000 here\> and we think it's going to be really great. I'm the designer of the game and some others are helping, but we need programmers. If you would like to join please contact us at (mailto:email@example.com).
So rather than just going in the order of the post, I want to address typically the most common issues first.
This *offends* us as programmers Games are not a mature media yet and are not at the moment taken seriously by a lot of people. For whatever reason, countless people think that game programming is an easy slackers job when if fact it's one of the most difficult careers that a person can have. It's extremely rewarding, but that's because it's so insanely hard. This kind of post is literally offensive to us because saying something like "I have no programming experience, but I could make an MMO easy" is really the same as saying "What you guys are so proud of is *sooo* easy."
This is one big reason why we are so hostile. Even if you didn't say it in that exact way, we have seen the attitude so many times that we start to just fill in the blanks after a while, even if you didn't mean it like that. So we've covered the defensive response, but there are also a lot of things that we genuinely get sick of saying, like:
You are not, and there is no need for, a designer Writer? Fine. Character designer? Fine. Level designer? Fine. Designer? No.
"Designer" is one of the most generic terms in existence and extremely few people know what it actually means. An idea for a game where you are on the moon fighting mutant crabs as ninjas is NOT a design, it's a concept (and a really bad concept in this case). Design is going through every conceivable aspect of a game with a fine tooth comb. Consider the cover system in Gears of War:
- What is defined as cover?
- Can some cover break?
- What's the animation we will use?
- What are all the moves that a player can use to get in cover?
- What about getting out of it?
- What's to stop an enemy from coming up behind you while you're blind in cover giving you a cheap kill?
- The previous issue can't be solved so every section of every level we need to make sure this doesn't happen.
- How would you take cover from a Berserker? (an issue I don't think they handled well)
- What's to stop you from accidentally using cover you don't want to? (A problem that, in fact, was not solved in the first GoW)
- This list may very count into the 60's or 70's and I'm not going through all those.
I could go on *all day* about this one aspect and this is just one tiny part of the game as a whole. Obviously I can't begin to go through all the design aspects of an MMO, but here's a guy that tried:
http://www.devmaster.net/forums/showthread.php?t=11656 This is a well written and enormous list, but far from everything is covered.
So, we've established that just the design of a good game is overwhelming, but lets examine why, as an indie, you do not even need a designer...
The team you're putting together If you take the time to read all the articles and especially the one I linked to above, then I truley commend you and you are one in a thousand. But that's just it, you are one in a thousand, and that means that finding someone else with the drive and determination to stick with the development is going to be incredibly difficult. You may find another person through the help of the internet, and if you're really lucky, 3 determined people. With this few people and the need for programmers + artists, you don't have the resources to dedicate a "designer".
Now, I know what you're thinking, and this is what I thought at one time... that you and your friends will develop this together. Let be be as clear as I possibly can [[[this is an EPICLY bad idea]]]. I have lost several friends rather unpleasantly via this logic, so please don't make the same mistakes many of us have. It's just never a good idea to mix serious business and friendship, and I had 2 projects crash and burn because of it.
Quality team members are looking for quality leaders Now don't get me wrong, it is possible to put together a good team, but you need a tangible product. Good developers and programmers are smart, and they ,from experience, look for leaders that are not going to abandon the project. The best way to do this is with a tangible self made prototype, and a playable demo is a real plus. Developing an actual playable slice of the game will dramatically increase your chances of putting together a quality team.
But let me get off this subject because I have gotten off track.
If you're asking vauge questions about programming languages and engines, you're not ready to create a 3D game, let alone an MMO It's a general rule of thumb that if a developer asks "which engine do I use?", then they probably don't have the faintest clue of how to use them and what they really are. As far as engines go, there's a lot of questions behind what you're asking.
There's some additional information here:
http://www.devmaster.net/forums/showthread.php?t=11869 and here
http://www.devmaster.net/forums/showthread.php?t=13176 But this question is really a useless one to ask as there is no engine set up to handle the scale of a real MMO, that's a hardware issue, not software. Now don't get confused, there are engines that offer larger than usual multiplayer capacity, but nothing even remotely close to an MMO scale.
NOTE: As mentioned below, I should have made the difference clear between bogus engine questions, valid engine questions and valid beginner questions. You can ask "which engine do I use" but the way to go about that is by providing specific information about your project. There is no master engine forged in the fires of Mt. Doom made to complete every task conceivable by man. Every scenario has a different engine that fits it's needs. So it's fine to ask engine questions, but please give your specific goals and needs. If you are a begginer and need a good direction for learning to program, look through some of the old threads an stickies before asking on the forums. There's nothing inherently wrong with these questions, but look around before asking please.
There is no such tutorial like "how to make an MMO" If there was and it was valid, it would make history. Even much simpler single player games cannot have a real tutorial because the amount of work, knowledge and experience that goes into them is absolutely massive and simply cannot be effectively communicated in the form of text. It's like reading about baseball as compared to actually playing it. Like reading about a country as compared to living there.
But really, all these arguments don't even need to be said because:
It's just infeasible and impractical This is a good read if you want to learn why:
http://www.devmaster.net/forums/showthread.php?t=12978 After a fair amount of debate the conclusion that most of us came to is that it's theoretically (with half a life's dedication) possible to make an MMO, but not possible to:
- Get a player base large enough to qualify as an MMO
- Afford the server hardware and the brute force computer power to run it fast and reliably
- Maintain the hardware and the software as well as securing it against hackers
- Maintain the content creation required to keep an MMO alive.
And once you through all those factors in, it's simply impractical to make one at all.
Now, the idea of friends and people playing with each other is attractive, but there's a much simpler solution to all this:
Make a multiplayer game There is a tremendous (or should I say massive) difference between an MO and an MMO. Multiplayer is difficult, but it's certainly not impossible and has gotten much more common among indie produced games. Multiplayer or co-op is completely possible and I would encourage you to take on a project like that as it could serve as a good learning experience. Now, most likely you will not finish the game (that's just statistics speaking) but it will have at least served as an in depth learning experience. An MMO, on the other hand, will leave you dazed, confused and unable to gain progress leaving you with much waster time in the end.
But above all, something that just cannot be stated enough:
Set your goals reasonably Pong -> tick-tac-toe -> Tetris -> Mario -> doom
Work your way up the ladder. Make smaller, releasable, playable segments of these games and see how much effort it takes. I would estimate the average time it takes people to make the list similar to that is around 10 - 13 months assuming they already were fluent with computers in general. It's like everything else, start small, go big.
I once heard someone say "If you shoot for the moon and you miss, you're headed for the stars" and my response was "Oh you mean kind of like that mars probe that just missed its landing target so it crashed and burned?"
The point is, over-ambition kills, and we we've all been through it. I started several projects when I was younger and the after about 1/5th through each of them I realized that I was no longer learning anything from the current project and if I didn't finish it, I would have completely wasted the time. I've learned my lesson sense then and to aim within what I can really do, which is substantially smaller than my goals before. As a result I have finally been able to catch onto a good learning curve, and while I still have so much to learn, I know that pacing will help a lot, and I know it can help you (YES YOU!) do it too.