Sponsored By

My Cross Platform Game Engine Adventure

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:

Emrah Ozer, Blogger

November 12, 2012

5 Min Read
Game Developer logo in a gray background | Game Developer

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 :)

Read more about:

Blogs

About the Author

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like