Which engine should we use for our browser-based MMORPG?

Started by
2 comments, last by Drew_Benton 12 years, 11 months ago
My community is in the design stages of a 2D browser-based MMORPG project, but we currently have no programmer hired so I decided to turn to you guys to help make the decision of which engine to use. We have decided that we will build it in either a Flash engine, a Java engine, or Unity.

Here are the pros and cons of each as far as I can see:

Flash
Pros: Plug-in required to play is the most popular of the three plug-ins (almost any browser would support the game without requiring the player to take the time to download a plug-in)
Cons: Supposedly a weak language for complex games; not many Flash MMORPG engines out there to choose from.

Java
Pros: Supposedly much more powerful than Flash; many Java MMORPG engines to choose from.
Cons: Plug-in required to play is not as popular as Flash.

Unity
Pros: We could make the game into iOS and Android apps (maybe?)
Cons: Would require almost every player to first download the Unity plug-in

The priority of course is to get the most amount of players possible to play the game for the longest amount of time possible. With this in mind, it seems that Unity would be the best choice because it would allow deployment to the iPhone/iPod and Android technologies...I think. It seems that ports would require so many interface changes that much more effort would be required than "one click" as multi-platform deployment is advertised. I'm not ever sure it would be feasible with a MMORPG; please someone clear this up for me.

Then again, it seems a Flash MMORPG--if viable--would also bring a large crowd due to the fact that over 95% of the players wouldn't have to download anything (which is rather the point of a browser-based MMORPG to begin with).

Java is only an option if neither the Flash platform nor mobile deployment is feasible.

Please consider the pros and cons of each engine and give your input on which foundation we should use!
Advertisement

My community is in the design stages of a 2D browser-based MMORPG project, but we currently have no programmer hired so I decided to turn to you guys to help make the decision of which engine to use. We have decided that we will build it in either a Flash engine, a Java engine, or Unity.

Here are the pros and cons of each as far as I can see:

Flash
Pros: Plug-in required to play is the most popular of the three plug-ins (almost any browser would support the game without requiring the player to take the time to download a plug-in)
Cons: Supposedly a weak language for complex games; not many Flash MMORPG engines out there to choose from.

Java
Pros: Supposedly much more powerful than Flash; many Java MMORPG engines to choose from.
Cons: Plug-in required to play is not as popular as Flash.

Unity
Pros: We could make the game into iOS and Android apps (maybe?)
Cons: Would require almost every player to first download the Unity plug-in

The priority of course is to get the most amount of players possible to play the game for the longest amount of time possible. With this in mind, it seems that Unity would be the best choice because it would allow deployment to the iPhone/iPod and Android technologies...I think. It seems that ports would require so many interface changes that much more effort would be required than "one click" as multi-platform deployment is advertised. I'm not ever sure it would be feasible with a MMORPG; please someone clear this up for me.

Then again, it seems a Flash MMORPG--if viable--would also bring a large crowd due to the fact that over 95% of the players wouldn't have to download anything (which is rather the point of a browser-based MMORPG to begin with).

Java is only an option if neither the Flash platform nor mobile deployment is feasible.

Please consider the pros and cons of each engine and give your input on which foundation we should use!


Honestly it depends pretty much on what your needs are going to be, you already pointed out that going from Flash to Unity basically gives progressively better performance but makes the process a bit more complicated.

Personally I'd probably go with Java, games like Runescape prove that quite a few people are fine with downloading Java for running applets, infact most people already have it installed. Unity and flash are fine choices as well, but, Java(assuming a suitable engine is setup) is likely the best middleground between the two in terms of flexibility vs development time.

If you really aren't sure.. well, get a programmer, talk it over with them. Someone that knows your specific needs would likely be able to give you the best recommendation on platform(or just their personal favorite.) I'm just giving my eye in the sky overview based on what you said.
Java-engine? There are Java MMO engines out there? Which ones?
For the specific approach you and your community are taking for this project, there are a lot of prerequisites you need to complete first before being able to choose the best tool for the job.

First, you need to establish some specifics of your game (which should already be completely designed and documented, everything. If it is not, then you are not ready for this stage.)

Q. Describe how your main game world works.
- Is your main game world uniquely instanced? I.e., do players join a lobby first and get their own game world when they start the game.
-- If your main game world is not uniquely instanced, will you support channels? I.e. will players be distributed across a limited amount of instances of the main world.
--- if your main game world will not support channels, how many concurrent players will you aim to support? I.e. having to support 1000 people in the same zone is significantly more challenging than 100, which is still more significantly challenging than 10. A Massively MORPG has to be able to scale depending on your requirements.

Q. Describe the simple game play mechanics and pace.
- Is the game play fast or slow paced. I.e. A turn based MMORPG will require significantly less data transfer and update speeds than a real time action based one.
- How is player movement setup? I.e. Click to move vs. WASD (style, not specific keys) are two very different implementations that will greatly influence your implementation.
- How detailed are interactions between entities? I.e. if you need a lot of physics to determine collisions, your development path will be a lot different than if you just use simple ray/body collisions or overlapping object contours.

Q. Describe the persistence of your world.
- Is game state saved and loaded from the last point or does it reset? I.e. if a player leaves town and logs out, where will they be when they login again? (This is not a trick question!)
-- Continuing on that same point, the same goes for enemy entities. Do they need to be exactly where they are left or does it not matter?
- Are dropped items a part of the world or simple destroyed? This is very important to consider when you work with games that have higher latency.

There are many more, but those are 3 I can think of off the top of my head that are by far the most important to start out with.

Second, you need to establish some specifics of the interactions required for external access to your game's data.

Q. Will you have a "cash shop"?
- If you do, this has to be taken into consideration so the process of modifying your game's data externally is possible.
-- If you don't want to automate it, it's important to come up with a system to make it as safe and efficient as possible, as it is more human error prone and easily abused.

Q. Will you expose game data?
- Will you setup a site to support searching for players, tracking various stats, and so on?
- There's a lot more, but the main point resolves around either needing this or not.

Q. Will you have GM's?
- I use "GMs" as a simplification to you having people who manage your world in real time in game.
- What functionality do they require? I.e. How much power you give them over your game world might influence certain development decisions.

As with the previous section, there are many more, but those are the 3 minimal aspects that should be considered.

Finally, what is your project's budget and time frame. Based on this, you will come up with cost estimates for using each potential solution, from having to buy add on libraries for an engine, integrating a 3rd party payment platform into your game, as well as any costs related to getting your assets (whether they are free or not) into a suitable format for the game and optimized for distribution. This is just upfront stuff, you will have to consider the costs of maintenance once the project is done and deployed.

Once you have very specific detailed answers for these things at minimal, you can then being to look at the different engines and technologies you mentioned to find the one you think is best for your project. Getting programmer input as Satharis mentioned is pretty important too nowadays. You want to be on the same page as your programmers so you get exactly what you want from them and make their lives are easier.

I don't work with web based MMORPGs, so I don't have any specific advice for you. Good luck!

This topic is closed to new replies.

Advertisement