Tuesday, 26 March 2013

Ending up with AIR + Citrus Engine [Starling+Box2D]

Today I want to talk about how I ended up using Citrus Engine.

So, I wanted to create my first game for phones, game-hubs, and maybe Facebook.  Flash is not the only thing out there and I had to look for new technologies. I don't want to get rusty....

I looked at CoronaSDK, PhoneGap, AIR and Unity3D:

Kerb guys told me Corona was good. But I wasn't happy to tray a product that costs $349/yr,,, what if I don't like it? Not sure what to do. I decided to put it on hold and look more and if nothing good comes I would try Corona.

The idea of developing anything serious with HTML and JavaScript, makes me ill. Instantly discarded.

I have a bunch of friends that use it, some of them like it and some don't.

I like the work flow and the GUI. I was extremely familiar with the syntax (C#) so I liked the idea of developing with Unity...

I looked at the prices... and it says:

"Unity Pro :$1,500 All the high-end features today's professional developers need."
Whoops that's a bit pricey.
If I want to develop flash + android + iOS is $1500 extra per OS (that means $6000). No thanks!

There is a free version. Yay!
But.... If I want to export to flash that will be $400. There is more, If i want to export to Android... another $400.... and same thing with iOS, (another $400). Just great.

I would end up paying $1200, so: not free!
I friend told me to have a go anyway, there were some discounts at the time...
So, I almost started with unity3D but I thought that for my first own commercial game I would like to use a technology that I am conformable with. Is hard enough to build a whole game so imagine with a new technology... I decided that I will come back to this technology, when I have some code to port. So the process will be a lot simpler.

I knew AIR has improved a lot since 2012 with stage3D. I already know how to program Flash so AIR would be like a piece of cake for me. In fact is was the same, the used language is ActionScript3. Only hard bit is to set-up the Smartphone drivers and the rest of the GoogleSDK.

I didn't have to pay extra for anything, you can even do it all for free with AIR-SDK  and FlashDevelop. Or pay a little bit and use the official Adobe's AIR/ Flash Builder

Choice was easy... I decided to have a go with this, and perhaps try Unity3D later....

So, after many many weeks I made a choice!

Someone suggested to have a look at CitrusEngine and more engines. I wanted to start developing and this was the only one I saw that used Stage3D... So I got my hands on it.

At first, I was not happy about using an framework/ engine. Usually, I develop 99% of the code I use. But turned out that was pretty good as simplifies the process of making games. Apparently CE was designed for platformers but I am making a shooter.

I found it hard to start with because the lack of documentation for CitrusEngine + [Starling/Away3D] + [Box2D/Nape/AwayPhysics] back then.

I told Aymeric (main CE developer) that I was getting stuck all the time in very basic aspects of the game design. They started to improve documentation and start-up examples.

Now,  I think CE has improved lots but still a long way to go. The Engine is constantly evolving and once you understand its mechanics, you will be able to use it to create any kind of game. I'm creating a shooter with complex backgrounds and many enemies in screen and performance is still 50FPS... the performance is good!

I know AIR performance will be improved eventually along with all the frameworks under CE. In fact, it's still very active and it has been improved several times in the 3 months I have been using it.

Have a go, try, Citrus Engine!