I’ve been searching and testing game engines for my ongoing project. I thought it would be a good to talk about this adventure. The game engines I’ve tested and my experiences/thoughts about them:
Cocos2d-x: Cpp port of Cocos2d which is a very well known and commonly used game framework.
Things I like
- A very good game engine
- Nice community behind it
- A very wide future set
- Native language so its fast, really fast
- Can output for every major mobile platforms
Things I didn’t like
- Hard to get started because of lack of tutorials.
- An unusual approach for game developers who has flash background
- You have to setup for each platform
- You may have to write lots of workarounds
Flash – Starling : Actionscript port of Sparrow.
Things I like
- It’s a really well designed game engine
- Nice community behind it
- Is fast enough for 2d games
- Can output for every major mobile platforms
- Can benefit from opensource as3 libraries
- One setup, deploy everywhere
- Lots of tutorials and examples for startups
Things I didn’t like
- Disadvantages of starling are mainly because flash platform.
- No threading ( mobile ) which is vital for AI and network
- It takes time to compile and test on device.
- There is not an elegant approach for native extensions.
- Your code can be decompiled ( change ipa to zip > decompress > show the package contents of app file > decompile the swf )
- It’s not fast as native
Marmalade SDK: C++ engine for cross platform development
Things I like
- It’s a stable and commonly used engine
- Output is really fast so you don’t have to worry about performance
- Have elegant native extension approach
- Nice feature set
- Can deploy every major platform with no effort
- It is used by game companies.
- Good examples
Things I didn’t like
- It’s not a game framework actually
It may be a base to your framework
- Needs a wrapper
- Hard to learn
- You can’t find any tutorial except marmalade’s own site
- Support is limited (mainly for premium users)
IwGame : A free game engine designed over Marmalade SDK. Uses an xml like language called XOML for generating content
Things I like
- Unlike marmalade sdk it targets game development
- Has a great documentation about xoml development ( 230 pages of book )
- Nice feature set
- Can benefit all of the advantages of marmalade
- Is coming with an complete game example
Things I didn’t like
- It’s aim is developing all the game logic from xml which is not suitable for lots of game programmers
- There is not enough documentation and wrong examples for direct coding (coding with cpp not xml )
- Doesn’t have an api doc so you have to check the book for everything.
- Poor forum support
- Doesn’t have a good structure, its open to make mistakes very easy.
- Work in progress, team leader states that it is a base for a commercial product.
Corona : A cross platform game engine focused on lua. I checked this engine like a year ago so my comments about it may not be so true.
Things I like
- Easy to learn
- Nice feature set
- Because of lua you don’t need to compile everytime. When you save your file the game scene is updated automatically
- Allows native extensions
Things I didn’t like
- Lack of proper IDE.
- When a performance issue occurs you may not do anything about it.
Emo – Framework: A lite, easy to learn cross platform framework which uses it’s own scripting language. ( I’ve just checked it for half a day so I may overcriticise )
Things I like
- Easy to learn
- Open source
Things I didn’t like
- Squirrel is an easy to learn scripting language but there is not an ide support for this language. Which means you have to change all of your work setup.
- Unlike lua, squirrel know-how is not re-usable for other platforms
Unity 3D: A very well known commercial product which is used for lots of mobile games.
Things I like
- A solid system works for every major platform
- Easy to learn
- No need to compile every change, easy to test
- Rich feature set
- Has an embedded editor and a very nice component architecture
Things I didn’t like
- God damn expensive for 2d games ( if you don’t want to show unity splash page on startup it costs 4500 $ for ios and android)
- It’s focus is not 2d so you have to buy extra tools for 2d. ( sprite manager, ezgui etc.)
- Asset store is also ridiculously expensive, community is not mature enough to share information and code.
- Simplest application file size is 8 mb.
Haxe: An opensource cross platform flash like architecture. Compatible with every major platform. This is not a game framework but it provides all of my needs.
Things I like
- Easy to learn for flash developers
- Has a very good native extension implementation
- Has threading
- Very good community support ( Forum, irc etc. )
- Better performance then flash
- Lots of IDE support ( My favorite IntelliJ has official support )
- Easy to publish every platform
- Lots of opensource flash tools are also available for haxe
Things I didn’t like
- Is hard to debug
- It takes time get used to setup IDE
- If you are not familiar with terminal or command line, it may be weird to get used to
My choice is Haxe because I have a solid Actionscript background and it’s been very easy to adopt Haxe. It doesn’t have the drawbacks of flash and it is working half speed of native. I’m considering to write a sparrow like game framework over cpp but I don’t think it will be soon