Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Modern AS3 Game Engine

Subscribe to updates I use Citrus-Engine

Statistics on Citrus-Engine

Number of watchers on Github 539
Number of open issues 67
Average time to close an issue 6 months
Main language ActionScript
Average time to merge a PR 3 days
Open pull requests 7+
Closed pull requests 14+
Last commit about 2 years ago
Repo Created almost 8 years ago
Repo Last Updated over 2 years ago
Size 8.83 MB
Homepage http://citrusengi...
Organization / Authordavikingcode
Latest ReleaseV3.1.12
Page Updated
Do you use Citrus-Engine? Leave a review!
View open issues (67)
View Citrus-Engine activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating Citrus-Engine for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

We recently reset this repository for working on a new version, at the moment we're making experiments. If you are looking for the old one, find it here.

Get the examples here

The Citrus Engine is a professional-grade, scalable Flash game engine built for industry-quality games. It is built upon modern Flash programming practices, allowing you to focus on making your game awesome! It comes built-in with a platformer starter-kit, which you can use to easily make awesome 2D or 3D sidescrolling games.

The Citrus Engine is not only made for platformer games, but for all type of games. It offers a nice way to separate logic/physics from art.

It offers many options, you may use :

  • select between : the classic flash display list, blitting, Starling (including Feathers) and Away3D.
  • select between : Box2D, Nape, AwayPhysics and a Simple math based collision detection.
  • a simple way to manage object creation, and for advanced developers : an entity/component system and object pooling.
  • a LevelManager and a LoadManager which may use Flash Pro as a level editor.
  • a Console, Sound management class, Keyboard and input handler...

Games References

Mission Eau! Chickdoom! FRNZY Penguin Up! Silly Family Paint Over Revenge of Robots Tap The Pixel Once Upon a Light Battlewars Snailboy Monsieur Bear's ABC Underwater Adventures Roundhouse Red n Green 2 Sophie la Girafe Beekyr Alef Jim loves Mary Chorizos de Espaa Shotgun vs Zombies Grard Santa Rush Kepher Stack of Defence Music Game Les aventures d'Acha - l'odysse des 4 mondes Escape From Nerd Factory Kinessia MarcoPoloWeltrennen Tibi

Repository Setup

  • ant : an Ant file to build the different swcs.
  • bin : CE's swcs produced with all libraries included.
  • ce-asdoc : used to generate the documentation.
  • fla : a Components.fla file including several classes for box2d and nape objects ready to import in your own fla to make quickly a level with Flash Pro.
  • lib : the different swcs used.
  • src : Citrus Engine's source code.
  • srclib : as3 files of some libraries.

Wiki & API


The Citrus Engine is proudly supported by: FDTJetbrains If you have any questions on the engine or need some help, we suggest to ask directly on the forum. However for people and companies desiring a strong support, a freelance game developer, or special features you may contact us directly: citrusengine[dot]framework[at]gmail[dot]com We will make a pricing plan depending on your need.


The Citrus Engine requested lots of work to become the most advanced Open-Source & free AS3 game engine. You can show us your love making a donation. It will be divided fairly between contributors. Donate

Citrus-Engine open issues Ask a question     (View All Issues)
  • almost 4 years MediatorScene._poolObjects after scene cycle, has null.
  • almost 4 years Might be worth testing ( simpler/safer initialisation of parameters ) ?
  • almost 4 years TmxObject.as breaked "for each" loop ?
  • over 4 years SoundManager, don't allow sound play when in background - or check if 'masterMute' works properly
  • over 4 years SoundManager
  • over 4 years Just a thought / Concern with "inverted" property calculation in StarlingArt.as
  • over 4 years Missing features of BasicUILayout ( getting/setting 'a single' element position )
  • over 4 years Game pad support, external or embedded 'universal' mapping files (json)
  • almost 5 years Renaming getObjectByName or/and getObjectsByName, for less confusion
  • almost 5 years Add worker support!
  • almost 5 years Query regarding MediatorState - Objects Loop Performance
  • about 5 years handleStageDeactivated and _playing
  • about 5 years Input - value inconsistency (keyboard)
  • about 5 years nape platform jump issue
  • about 5 years SoundManager - have polyphonic property on CitrusSound
  • about 5 years NapePhysicsObject.as - Thought regarding '_shape'
  • about 5 years Just a thought for the guy with the Tween Sound issue
  • about 5 years Curious about CitrusObject.as, whether it may be a little too light? here's why-
  • about 5 years Stuck actions issue
  • over 5 years Box2D 2.3 ?
  • over 5 years ObjectMakerStarling.FromTiledMap() problem with image object positioning
  • over 5 years Should we rename ObjectMaker2D to something else
  • over 5 years Awesome enhancement: swap StarlingState's extend to Sprite3D ( from Sprite )
  • over 5 years Potential bug - MediatorState, input issue
  • over 5 years Feature request: "persistent = true" ( Stops MediatorState from removing these objects automatically on state change )
  • over 5 years ACitrusCamera ( offset, make public/getter&setter suggestion )
  • over 5 years LevelManager / A level gist
  • over 5 years LevelManager don't work properly
  • over 5 years JumpHeight property name is unintuitive
  • over 5 years SoundManager - pausing sounds on stage de-activate
Citrus-Engine open pull requests (View All Pulls)
  • Update Platform.as
  • Fixed and Improved Platform.as 03/07/2016 #2
  • Delete FluidBox.as
  • Update Path.as
  • Update EmitterParticle.as
  • Master
  • Create a CitrusWorldClock class
Citrus-Engine questions on Stackoverflow (View All Questions)
  • Trying to generate sword swinging attack using Box2D in Citrus Engine
  • Adding Collision to a object in citrus engine
  • LibGdx vs Citrus Engine
  • Box2DPhysicsObject strangeness in Citrus engine
  • My general questions for Citrus Engine
  • Citrus Engine Flash Game not compiling correctly
Citrus-Engine list of languages used
Citrus-Engine latest release notes
V3.1.12 V3.1.12

The latest V3.1.* CE, originally released in March 18, 2016. It includes:

  • Sprite, Blitting, Starling, Away3D
  • Nape, Box2D, AwayPhysics.
V2 V2

The Citrus Engine V2, originally released in Oct 31, 2011.

Composed of Box2D Alchemy and SpriteArt & Bltting. No Stage3D.

More projects by DaVikingCode View all
Other projects in ActionScript