First impressions of Citrus Engine

Cirtus Engine is the latest Flash Game Engine to become open source.

I always think the best way to find out whether any library is any good, is to actually build something with it, so we built a festive game.  See

The game is a highly modified version of the Citrus Engine demo, (as seen on the Citrus Engine home page).

Our initial aim was to create a 5 level game, with different challenges on each level, but this proved to be too optimistic in the time available.  Instead we went for a time limited single level game.

Overall we’ve been very impressed by Citrus Engine, and hope to use it in future projects.

Here is the summary of what we learnt 😉


Citrus is very quick to learn, and you can get a platform game working in a short space of time.
There is a choice of Level Editors, however at the time of writing there are quite a few bugs in the Citrus Engine Level Architect, so we opted to use the Flash IDE as the level editor.
The core code of the engine is clearly written and is easy to override or customise if necessary.
Uses the Box2D physics engine; so specific support on Box2D issues can be sought on the Box2D forums.
Friendly community support.


Although Citrus Engine lists over 1000 downloads on their site, the user community is quite small at the moment.
Limited number built-in objects. e.g. Just items like Crates, Coins, Sensors, Baddy and Hero. There are some community contributed objects like a Trampoline, but quite a lot of the time, we found that we needed to make our own custom objects. Hopefully this will get better with time. Eric, the creator of Citrus Engine, blogged that he may publish some of the other custom objects that he has created for commercial games. I think this would be quite useful, as even if they have functionality designed for one purpose they could be a good starting point for other objects.
The core engine size was over 300kB, and there is no built-in pre-loader. It would be good if the Engine had a built in preloader for the core.
Most player Avatar animations are linked to Physics engine not user controls, which can cause strange effects.
Some problems with the control of player avatar while in the air e.g. jumping.