MyAppTheme Logo2

Blog

Why I think an indie MMO is not impossible?

After a while doing some research on MMO stuffs, I started to think that it’s not really difficult to do an MMO project nowadays as its used to be in the past. I’d like to log some of my ideas what’d it take to make an indie MMO.

Requirements

We’ll need the following components for a small indie MMO:
1. Dedicated server
2. Socket server and Client API
3. Game client

1. Dedicated server

We need a dedicated server so that we can host our socket server program and get a static domain name or IP that our game clients can connect through the Internet. With the popularity of cloud-computing over the years, the price of running such a server has dropped to even around 30USD per month for a typical virtual Linux server running on Amazon EC2 services. More pricing on Amazon EC2 can be found here.
Cloud computing and hosting has a number of advantages over the traditional server hosting. One of the main advantages is the scalability which is very important for a MMO project. Joyent, RackSpace and Amazon are the popular cloud hosting providers among others. I’ll take Amazon EC2 as an example for I’ve some experience with it. They are running a large computing infrastructure behind. And when you sign up, you’ll be presented with a web based control panel. You can start building your own server from there by choosing the backend OS and the hosting plan. Once you’ve configured and launch that server, they’ll build a virtual server with your configuration in the backend. And in a minute or two, you’ll have your own virtual private server with a static IP (they called it elastic static IP) which you can access from Internet. You can run another instance in this way, balancing load between them, or build a higher performance instance.

Another advantage is cost-effectiveness. We don’t need to pay for the extra traffic if we don’t use. It also makes a bit difficult to project costs as it’ll charge us based on our usage. When we reach a massive concurrent user base we’re going to cost a lot.

2. Socket server and Client API

Socket servers are those running on our dedicated server and accept and broadcast messages between multiple clients. If they are intelligent enough, they can reduce network traffic by sending messages to only those who need to receive. They usually come with client API libraries for various platforms, for e.g., C#, Objective-C, Java, ActionScript, etc. Most of these socket-servers started out as multiplayer network engines for Flash games, initially supporting client API only for Flash. Smartfox, ElectroServer and Photon are some popular socket servers available on market. Now, they also provide client libraries for Unity engine as well. Smartfox and Electro servers can be also run on Linux systems.

Running either a Smartfox or Electro server on a Linux instance hosted on cloud would be cool choice for our small MMO.

3. Game Client

We’ll need a game client to render our virtual world like Bluemars is using Crytek as. With the availability of client API, web player, cross-platform deployments (PC, Mac, iOS, Android, Xbox, PS3), easy to use and not too expensive criteria, we would choose Unity for our own MMO project. Paradise Paintball on Facebook (used Photon as backend socket server) and Fusion Fall from Cartoon Network are the MMOs currently using Unity as the game client.

Development

The very first phase of an indie MMO project would include the following essential features:

1. Player registration and log in mechanism
2. One of our scenes from Payback movie (Wasteland may be) as a virtual world
3. Public chat with chat bubbles

One way to balance load for an MMO server is to set up different worlds, zones, rooms. So that the players will not be crowded in only one place and over load the server. Once the player registered, they will be able to log in to our server and they will choose a zone to enter. And they will be able to start chatting with others in public.

In the next phase, we can have a little ecosystem happening there as well. For e.g., every newcomer can choose a side, like either Zombie or Human. From there we can have different races on each side. For zombies instance, according to The Zombie Hunters, there can be six classes: BASILISK, BERSERKER, CRAWLER, HOWLER, HUNTER, MERCY and SPITTER. And different appearance and ability for each class. Same for the human, they will be able to choose a class like SOLDIER, MEDIC, ENGINEER, etc.

Revenue

Our revenue will be mainly from micro-transactions of selling virtual items. For instance, if it is a horror survival game, zombies might want to buy an Instant Flesh Pack if they can’t find the victims and are starving to dead. Same for the human, they can buy weapons and armours to protect them from zombies. Or if it’s an social hangout to the zombie world, we can sell special outfits to the players. According to this source, virtual items has become a billion dollar industry nowadays with 1.02 Billion USD even only in European Market.

Conclusion

You don’t need such a hosting on cloud yet until you launch to public. You can set up a socket server in your own LAN or even on a single development PC and start developing using the Unity. Only when you launch to public you might need a more experienced server engineer to manage the deployment servers with many concurrent users. You can start developing with not much initial investment and but the ongoing maintenance would be quite costly.

Leave a Reply

Powered by WP Hashcash