How to make a MMORPG
Making a MMORPG (Massive Multiplayer Online Role Playing Game) as an indie developer is actually possible. This article focuses on the MMORPG development challenges. If you are only interested in a solution, then check out our Unity MMORPG Asset - uMMORPG, which uses Unity's new UNET Networking System.
Big, Big, Big
Making a good role playing game is hard. Making a massive multiplayer one is almost impossible. MMORPG servers have to be able to handle thousands of players at once, they have to be secure, fast and stable.
What most people forget about MMORPGs is that they are huge software projects with hundreds of thousands of lines of code. Developing a architecture that big is a really hard task. If you think about it for a while, even making a simple MMORPG with just the basic features is about as big as making an early version of Firefox, Photoshop or whatever other big software you can think of right now. It is incredibly much work.
Expensive, Expensive, Expensive
According to rumors, the early version of World of Warcraft did cost about 50 million dollars to develop. If you just got into game development, chances are high that you don't have that much money to invest into a game.
Now the thing about us indie developers is that we work on our games without anyone paying us for it. And since the major costs in Software development are personnel costs, a major part of those 50 million dollars would fall away, if you were able to come up with the code all on your own.
Let's do the math. If we assume that about 30 million of those 50 million went into paying developers to create the code, and if we assume that those developers worked for 30$ per hour this means that it took about one million hours to create the code. Assuming you can work on it 10 hours a day and assuming that you work twice as fast as the experts that worked on WoW did, that makes it 5.000 days or 14 years of work just for the code. That's a lot of time.
Even if you manage to come up with the code all on your own, there are still no 3D models, textures, sounds, story or skills in your game. There are still lawyers that need to be paid in order to not get sued one week after the release and there is still a data center that has to be running 24/7 in order to support thousands of players each day. There are admins that have to be paid to watch the servers. There are secretaries that have to be paid to deal with boring paper work.
The list is endless...
Using what's already there
The good news: we can cheat a bit. If we don't create our own game engine and instead use a game engine like Unity (feel free to check out our Unity Tutorials), then we already save a few millions of development costs (or in our case, maybe something around 5 years of work) for a decent graphics-, physics-, networking-, scripting- and audio library.
Game Engines are beasts, nothing less. There are teams of highly skilled developers working on them full time so we can focus on the actual game. And the most important part about using a game engine is how ridiculously productive we can be. It doesn't matter if it's a simple game like Pong or a 3D game like a First Person Shooter, we can create it in a few hours of time with less than 100 lines of code. The Unity Engine released their UNET Networking System not too long ago, which is a huge stepping stone towards the MMORPG goal. UNET allows us to develop the client and the server in one project that uses the same Scripts for both (which saves us months or even years of work).
Game Engines are great, just what we need!
If we need a few hundred monster models in our game, there is always the option to buy them from a cheap website or from an artist. The downside is that other games might use the same models, but hey: it might save us a year of work again.
The same concept can be applied to sounds, textures, landscapes and many more parts of the game. Reusing what's already there can make the difference between 7 and 15 years of development time.
If your game becomes a major success, it will also get some attention by hackers. The question is: what do you know about creating secure infrastructures for the servers? How can you guarantee that not each 14 year old wanna-be hacker is able to get into your servers? How does item duping work in modern MMOs and how can we prevent it? What are DDoS attacks and what can we do against them? How do we make sure that no player will have billions of coins and ruin the economy all of the sudden?
What do you know about Business?
Running a MMORPG means running a business, whether you like it or not. The financial success of the game depends on your skills as a business (wo)man. Do you think you know enough about monetizing games already? Did you ever sell a single copy of a game yet? Are you completely sure that the project will not ruin you financially?
On a side note: the pizza guy needs to be paid, too. Even if you live at your mom's place, eat cheap and don't go out at all, there are expenses that have to be paid. How do you know that in 5 years you don't have to stop working on the game because you need to work in a real company in order to survive?
What if you fail?
Okay, let's assume that the previous topics didn't scare you yet. You are a professional programmer, you are confident in writing software that consists of hundreds of thousands of lines of code, you know people that can create hundreds of high quality monster models, your brother is a lawyer, your sister knows a lot about software security and the business side of things will be learned along the way.
Even if this is the case, before you start to jump into it you should imagine the worst case scenario and ask yourself one question: what if you fail? What if you spend a decade of your life at something that will never see the light of day? Ask yourself where you could be if you would spend the next ten years working your way up through a major software company, or where you could be if you would spend that time with family, hobbies, traveling, in university or maybe in a martial arts gym.
If you are in your twenties right now, this means that you have to make a decision that you can not revert. Right now you are in the physically best shape of your life, right now you can still pretty much do whatever you want. If you decide to start working on your MMORPG the next ten years, this means spending your ten years sitting alone in the basement staring at a computer screen, while all your friends are outside partying, having kids, getting married, going on vacations and living the real life.
It's your life Project
Making a massive multiplayer game will probably be the biggest thing that you work on in your entire life. It will take a decade or more to develop it and if it was a success, it will take another decade to maintain it. If you are somewhere in your twenties right now, you will be in your forties, maybe even 50 years old when the last server of your game shuts down.
In case you didn't know: this means that you are not twenty anymore. You probably won't have the energy anymore to jump into the next MMORPG project afterwards. There will be family, health issues, a midlife crisis and burnouts along the way.
Making a MMORPG will be your life project, if you don't absolutely love it with all your heart, then it's not worth it. If you are not willing to walk through hell and back during the next decade, you will waste your time and fail.
Yes, it is possible. If you can dream it, then you can make it. If making an MMORPG is what you are on this earth for, then a simple article like this one won't scare you away from it. You can make your dream become a reality if you really want it bad enough.
But never forget, you will have to pay for it either in millions of dollars or in decades of time - so think twice.
If you are still not afraid, then definitely check out uMMORPG!