Name Targets Cost for Commercial Developer 2D/3D High Level Scripting Language Animation/Tweening Device Camera Native Menus, Buttons... Own Native Plugins Documentation Book(s) Notes
AppGakeKit Android, iOS, Blackberry, Windows, Mac OS One off $69 2D & 3D C++ Extended version of Basic Animation Yes No Hands On AGK BASIC
Monkey Android, iOS, Blackberry, Windows Phone, Windows, Mac OS, Linux, XNA, Flash, HTML5, PSM, OUYA Free No Extended version of Basic Animation & Tweening via 3rd party framework called diddy No Translates from Monkey to source for target.
Shiva3D Android, iOS, Blackberry Playbook, Nintendo Wii Shiva Editor $400 per machine 3D C++, Objective C Lua Animation Yes
Gideros Mobile Android, iOS Free with their splash screen, $149 Lua No Yes
Marmalade Android, iOS, Windows Phone, Blackberry, Windows, Mac, Smart TVs 2D & 3D C++ Lua Animation C++ yes, Lua no C++ yes, Lua no
Qt 5.2 and newer Android, iOS Free C++ Qt Qt Quick & QML - javascript like
v-play.net Android, iOS $14/month C++ Qt Qt Quick & QML Qt 5.2, Builds only on their server
MoSync Android, iOS €199 per seat C++
Corona Android, iOS Free - limited, basic $16/month (Enterprise $79/month) 2D Enterprise package only Lua Yes Yes Only with Enterprise Lots! Builds on their server (for offline build buy at least Enterprise)
Unity Android, iOS, Blackberry 10, Windows Phone, Windows, Mac, Linux, $225/month or $4500
Monthly Archives: February 2014
Servers, stacks and clients
One of the biggest issues I’ve yet to get across to my colleagues is how in massively multiple systems (like Private Planet) you cannot think of the system as a collection of discrete components. You have to realise these all interact in complex ways. How the client talks to the server can deeply affect how the server performs. The protocol stacks use to carry messages are not just a minor component they have deep and widespread impact on both how the server and client works. How the server makes database queries will affect its design and reliability.
And unless you have a bottomless pit of money to spend on your server you need to get the overall design right for your client-server application right. Failure to do so can result in the server being swamped with work unnecessarily.
Mobile Game Development
I’ve worked on business apps for mobile but never games. So a while back I decided to look into what was available for multi-platform development.
I already knew about Marmalade (formerly AirPlay) which is a pretty powerful C/C++ system that can target a wide range of mobile platforms. Last year they also introduced Marmalade Quick which was a 2D gaming platform based around Lua with some of the full Marmalade system underneath. But its a little expensive and there is a lot to learn. Quick is clearly targeting the gaming market and skips any features most gamers dont user. It can be extended but only if you know the SDK well.
Corona is one of the most popular. Its Lua based but with builds done on the Corona servers. But isn’t extensible unless you spend a lot on your license (enough to pay them to extend it for you).
Came across two that look promising: Gideros and Monkey
Gideros on paper looks like Quick or Corona except a lot cheaper (Lua based but local builds). But it comes with a plugin system so you can extend it yourself.
Monkey is an odd one. The programming language is based on Blitz (a descendant of Basic but extended all the way up to classes). Instead of having a Blitz interpreter for each target it cross compiles into a source code project for the target. Because of this is supports a very wide range of targets. The downside is for each target you’ll need to install its dev kit. Its very competitively priced.
I’m going to work on a simple project in both in my (sarcasm on) copious free time (sarcasm off) and see how they compare.
Marmalade Quick on the Mac
I was looking to develop a fairly simple app and thought Marmalade Quick would be a good starting point.
It can target multiple platforms (Android, iOS…) and I can develop on my Mac. It allows the app to be written in Lua and provides a wealth of other libraries.
I had a Marmalade license and so downloaded and installed Marmalade v7.1.0
In the past I’ve used ZeroBrane Studio, an IDE for Lua. So first thing after installing Marmalade I started Marmalade and in other Other Tools found ZeroBrane Studio Lua Editor and clicked LAUNCH. A terminal window popped up and clearly tried to start ZeroBrane Studio but instead printed an error.
So I tried running ZeroBrane Studio from my existing copy in Applications. I copied an example from within Marmalade to my Documents. Then in ZBS Used Project > Lua Interpreter to select Marmalade Quick. Then opened main.lua, set the project direct and tried to run the app… lots of errors from Marmalade…
Google’d for the errors but nothing relevant found… sigh.
Guess Windows might be a better platform at the moment!