Update: I have added several new middleware/back-end frameworks to the end of this article.
If you haven’t figured it out yet, I usually have a lot of projects going on concurrently. Several of my current projects involves creating an MMO (massive multi-player online) or needs a cloud-based environment for educational purposes (part of my on-going research).
I use several programs for development: Corona SDK, Unity 3D, and I play with JMonkey (considering JMonkey for a few future projects). So I am looking for a framework or tool set that is flexible enough to be used with any of these systems.
As to hosting, I have access to a LAMP (Linux Apache MySQL Php) server. As long as the the software is all LAMP compatible (and most are), I won’t have any problems in this area. I should note that I primarily use AWS micro instances for my testing.
That leaves me with the middleware. The middleware resides on the remote server and handles all of the network communications: player movements/actions, chatting, changes to the environment, etc. Here are a few middleware tools/services that I am currently reviewing (in no particular order):
Currently on v.4, RakNet is a pretty cool middleware suite offering all kinds of tools and is suppose to be very easy to integrate into Unity3D as well as other engines. It is cross-platform and looks like a nice tool.
Cost: free for hobbyist (<$100,000 in sales) then various pricing plans
Quazal has Net-Z which appears to do all that I need, but the site doesn’t include any pricing information. An evaluation version of the Net-Z is available by request.
Hero Engine offers HeroCloud, a very full featured set of services including physics, path-finding, and handles life updates. Includes hosting.
Cost:$99/year + 30% of royalties
I have followed MultiVerse development for many years and was saddened when Oracle acquired Sun ending the developmentof MultiVerse. We all knew there would be some casualties and it looked like MultiVerse would be one of those casualties. Fortunately a group has continued to develop MultiVerse (the advantage of Sun having made it an open source project) and it continues to be a viable option.
Update Nov. 16, 2013: Multiverse has suffered a Malware attack and is now unavailable. Here’s hoping it comes back!
Update Mar. 22, 2014: Multiverse is back! Yea!
Nice full featured middleware that includes load balancing tools.
Cost: $299/yr + 10% Royalties
Smartfox server has been around for over 10 years and has gained a great following in the Unity/MMO development world. They have several server solutions so you can pick the right one for your environment. The free Basic version allows for up to 100 concurrent users, but does not include the Client API for Unity, iOS, and Android. They do offer a 20 CCU license of the pro version for free that includes these client APIs, which would be great for getting started and performing basic testing. To move up to higher CCU progressive in the pricing.
Cost: Free for 20 CCU, 500 Euros for 100 CCU.
I looked at Photon server years ago. They have come a long way! Lobby, leaderboards, achievements.. very nice! Plus, it is free for up to 100 CCU for Unity, Corona, iOS or Android. A real contender here! Plus, they now have a cloud offering.
Cost: Free for 100 CCU, $99 unlimited (indie license/per title/server)
The Scalify server has some nice features including a Unity package. I didn’t see anything about APIs for iOS and Android on the site (which I am now interested in after SmartFox and Photon).
Cost: Free trial, $200 for 500 CCU (indie license/per title)
MuchDifferent – UnityPark Suite
Designed specifically for the Unity engine, UnityPark Suite is designed to be scalable and make it easy to setup up your MMO Unity game.
Cost: Free trial, €550/title
In 2014 I became aware of an independent effort by Chris @develephant. This is a donation-funded back-end designed to run on Amazon Web Services and Digital Oceans cloud networks (though it will work on any LAMP configuration). Chris has developed middleware for business apps (http://coronium.io ) and for games. While specifically designed to leverage Corona Labs Corona SDK (http://coronalabs.com), it can be used with any game engine. I have now built several apps (personal and commercial) using coronium.io & coronium.gs. We have even included it in our curriculum at my University when teaching mobile apps/game dev! MySQL and MongoDB are built in. Coding is very flexible and Chris has produced several hours of great tutorials for using the system. Thank you Chris!!
Which middleware am I using?
I have just begun this examination of middleware tools, but at this time I am leaning toward MultiVerseMMO. As this is a low-budget, research oriented project that I will also be using with my game development students at university, it seems the best fit. If MultiVerseMMO doesn’t seem viable fairly quickly I will most likely move to Photon server or RakNet. While I am concerned about the starting with a server that sets a limit at 100CCU (which would be a very small MMO!) it is enough to do testing and to see if my virtual world viable.
What did I miss?
I am SURE that I missed some great middleware tools. Please let me know if I missed them!
(1/8/16): Coronium.io has completely replaced all of the other middleware for my apps. While it might not be responsive enough to handle FPS, it is incredibly fast and has handled everything that I have thrown at it on a micro instance using AWS.
(3/5/15): While I continue to play with Photon Server with Unity & JMonkey game engines, I have recently spent a lot of time developing mobile apps that required a strong cloud back-end. Which is how I started using Coronium. Coronium will feature prominently in my current and near-future projects.
(8/14/13): I am definitely going with Photon Server for my development. With the recent announcement of a Corona SDK plugin, it means I can use the same middleware for all of my game/app development.
(3/9/12): Now looking into using Photon Server by Exit Games. They have a very attractive offer for the indie developer.
(2/7/12):Spent enough time with multiverse, now moving on to others! Also added MuchDifferent to the list of tools.