Archives

All posts for the month September, 2013

Programming language: C#, UnityScript, Boo

Official site: http://unity3d.com/

Having looked at Unity I was initially under the impression that it was far more complex than I’d ever need and was not really suited to the 2D games I want to make. It was also quite expensive. However, a change in pricing (a free basic version that amongst other things allows builds to Android and iOS) and me doing some wider reading of tutorials and articles from people creating 2D games in Unity I changed my opinion. I’m also fairly convinced that Unity will introduce more support for 2D as I suspect they are keen to consolidate their position in the mobile games market since its a massive growth area. Having released a free version I suspect they’re aiming to get a dominant position in the market and mobile is such an important part of that that there will be more functionality to follow.

There may be a few extra things I’d need to buy to do what I want or to make things easier. For example, a plug-in to help with ads and IAPs or to do the GUI (Unity’s GUI system is a bit basic). Otherwise though it looks like Unity is a very strong contender with only a few downsides.

Summary

It’s hard not to like Unity, it’s powerful but easy to work with. The free version offers plenty for the new developer and the support, from many places and not just Unity direct, looks fantastic.

Update…

Since I wrote this article Unity has announced many new features (better 2D support, Unity Cloud,improved GUI) that makes it even better suited to my needs than it was before.

Back to Game Engine review

Programming language: Monkey Code

Official site: http://www.monkeycoder.co.nz/

Monkey looks good and I know someone else using it. The demo version of Monkey is free but only the paid version ($99 one-off fee) has support for Android and iOS deployment. Code is written in Monkey Code and then compiled to Java, C++, C#, JavaScript, and ActionScript. There’s no native IAP support but there are other third party plugins that provide IAP support. One great thing about Monkey is that it runs on Linux, my dev environment of choice.

To be honest the only thing that concerns me about Monkey is that Monkey Code isn’t used any where else. The other engines I looked at all use established languages that are used in other games engines or other applications. If I’m to invest time in learning a new language it makes sense to use one that’s used elsewhere too. It’s a bit of a shame, and a purely personal view, as otherwise Monkey looks great.

Summary
Monkey is definitely a viable option and looks like it will support what I need to do. The unique language is a concern though.

Programming language: C++ and Lua (using Marmalade Quick)

Official site: http://www.madewithmarmalade.com/

I spent some considerable time looking at Marmalade and reading through the ‘Marmalade SDK Mobile Game Development Essentials‘  book. Marmalade looks like it would comfortably do what I need as it can be used to do 2D or 3D content. There is a 30 day free trial and the licencing is such that the basic annual fee would be £150. There is some support for ads and IAPs. With Marmalade you don’t need access to a Mac in order to do builds for iOS – which is major plus. You will still need iOS devices for testing on though.

As part of reading the ‘essentials’ book and being new to the type of rendering that most game engines do (it being different to Flash) I found I had many questions that weren’t answered by the ‘essentials’ book (understandably as it’s not a beginner’s guide) but then also struggled to find answers in the Marmalade resources or third party sites. There appeared to be relatively few sites with answers or learning resources for Marmalade. What I did find, if I didn’t restrict my searching to Marmalade only, was answers coming from the Unity community.

Summary
Marmalade does look fantastic but, as I’m new to this type of games development, the lack of resources is a concern. The main issue though is that the free trial is only 30 days and as explained in the main article, this makes it difficult to assess in the actual time I have available.

Back to Game Engine review

Programming language: Lua

Official site: http://www.giderosmobile.com/

Gideros is superficially similar to Corona but has its own built in editor. There is a free version and Gideros also allows you to import your own plugins. I could publish to Android or iOS using the free version but, at the time of writing, Gideros has no IAP support for Android and it’s not clear when this functionality will be added.

Gideros doesn’t rely on a hosted solution to do builds which is one of the main things that sets it apart from Corona.

Also having read a lot in the Gideros forums whilst researching the SDK there appeared to be a lot of negativity aimed at Corona SDK (or Mexican/Small Beer as people call it on the Gideros forum – Corona is also the name of a popular beer from Mexico). I’m sure the negativity isn’t from the people responsible for Gideros itself but I came across examples of this in the forum quite regularly. Anyway, it didn’t affect my opinion of Gideros itself, it’s just a bit odd.
Summary
Gideros looks great and has a lot going for it but without IAP for Android it’s a non-starter for my project. As a result I can’t give a cost to market for what I want to do since I can’t get to market using Gideros.

Programming language: Lua

Official site: http://www.coronalabs.com/products/corona-sdk/

There’s lots of things to like about Corona and it’s quite similar in feel to Flash (which I used to create some games previously). The community also seems very good and responsive. There is a free version but in order to support IAPs I’d need a minimum of the Pro version. However, my main concern with Corona is the reliance on Corona’s server to package up your game. Unless you buy either of the two enterprise versions ($948 or $2388 per annum!) then you’re tied in to using their server for builds.

Aside from the build reliance issue, the annual Pro licence is $588. So, any games I create need to bring in at least the licence cost each year in order for it to be financially viable for me to do updates (without a current licence you can’t do builds). Given that the revenue of many games peaks and then declines (albeit with a long tail in many cases) the constant revenue stream isn’t something you can/should rely on. Ignoring the potential for one of your games to become massive and bankroll you for the foreseeable future then, in my view, the only way this model can work at this sort of cost is if you are producing a stream of games using this SDK. The cost of the licence is therefore spread across the multiple titles and you hope that between them they bring in enough money to break even year on year.

A further consideration is that, as things progress, I may move to using another tool but providing support to an older game developed in Corona could prove costly and force me to retire the game instead of doing updates (such as adding functionality to do cross promotion of my other games). If it was a one-off licence cost then updates would be possible later on for no additional cost. A rolling licence means that you need to factor in the cost of a licence in every year you want to make a change.

A minor gripe, the Corona site lists the licence costs as per developer per month (e.g. the pro account is $49 per developer per month) but they only bill annually ($49 * 12 = $588). Maybe I’m cynical but, since you can’t pay monthly, what’s the point of listing the monthly cost, other than to give smaller headline numbers?

Summary
The cost to market for what I want to do is $588 per annum (IAPs requiring a Pro account). I really like the look of Corona but I can’t see it being a cost effective move for what I want to do and the time I have available. I’m also concerned about being tied-in to using their server for creating the builds. So, it’s not for me.

Recently I’ve been keen to do more games development. It’s something I really enjoy, having written a few Flash games in the past, but not something I get to do at work. With work a little uncertain at the moment it’s also a good time to add to my skills etc and have a bit of fun.

Having decided I wanted to get back into games development and specifically mobile gaming on iOS and Android (I still love doing my Web-based fantasy motorsport management game) the next decision was what engine or technology to use.

In my case I didn’t want to do any native development. I’ve done a bit of Java but no Objective-C, learning the language isn’t the problem though. The concern for me is that I want to be writing games that I can roll out to Android and iOS with the least effort in porting of one to the other. Ideally I’d like the flexibility of supporting BlackBerry and Windows phones too but that’s less of an issue right now. So that rules out any native development and I need to pick an engine/SDK.

Other key factors include:

  • Cost to market – for the purposes of this I mean Android and iOS deployment and support of in-app purchases(IAP) and ads
  • Availability/quality of support
  • Support for creating 2D games
  • Ease of trialling the software as a “5-9er”

This last point is worth explaining. I won’t be creating games as part of my day job so I can only do this between 5pm and 9am (i.e. out of work hours). With family commitments and being a trustee for a charity the amount of free time I have is very limited. Realistically I think I probably only have between 10pm and 1am on four nights a week, so that’s 12 hours a week (on a good week).

As a result, trialling software before I buy is essential but the trial period is also important. A 30 day trial may be fine if you can work on this every day but in my case I’d be making a decision based on, at best, 48 hours usage spread over the 30 days… not ideal.

Software I considered and a link to a bit of info/opinion on each (info/costs at the time of writing):

And the winner is… Unity

Unity really impressed me and it seems ideal for what I want. The features, flexibility and excellent community really tipped the balance.