Starling Stress Test
The other day while working on a project we needed to gauge the speed of AIR on mobile, and to do so we created a stress test to see just how fast the latest AIR 3.6 SDK was. We created a small AIR application using Starling and decided to share it with the community. The application creates 1000 particles which are emitted by two emitters, one produces 500 Cowlorful Cows and the other 500 GrindheadGames logos. It seems to run at a solid 30FPS on a Samsung Galaxy S3 and an Apple 4S, however we would love to hear performance reports from other mobile devices, so please leave a comment if run the test yourselves.
We have made a GitHub repository for the Starling Benchmark so that you can download the code and run it yourself. Instructions are included how to get the project to compile, but leave a comment if you get stuck. There is also a precompiled APK in the build folder, so you can run the test on Android without having to compile if you want to. You will have to set up development certificates to get the application to compile for iOS, there is no precompiled file for the platform included.
We created used the Starling framework and the Particles extension to run this, make sure you add them to the source path to build the project.
Particles are a very useful tool to have in a developers arsenal – they are relatively easy to create and can really impress your audience. Affects such as smoke, snow and even flocks of birds can really add glitter to projects and make them stand out from the crowd. Many of you out there probably have your own version of a particle system or regularly dust off handy code snippets to achieve the required affect.
For those who regularly use particles, there is a reusable open source engine available called Flint, which may be of interest to you. Flint is a particle engine that is able to handle many types of applications, including 2D and 3D projects. If you are familiar with Papervision3D or Away3D, you can even leverage the power of Flint in your code to create some really interesting affects.
[kml_flashembed publishmethod="static" fversion="10.0.0" movie="http://www.grindheadgames.com/demo/flint/GravityWells.swf" width="400" height="400" targetclass="flashmovie"]
Flint is not a new engine by any means. The author, Richard Lord, showcased the engine at Flash On The Beach 2008 ( It is currently 6th June 2011) so it has obviously had time to develop. This has resulted in a really stable code base that you can rely on to get the job done when it matters.
One of the most important factors when using particles is speed. One of the main aims developers have when putting together particle engines is the speed at which they will run, and getting the best affect possible with the lowest cost the the CPU. Flint handles large numbers of particles really well, I can run demo’s with 8,000+ particles without noticeable slowdown. The engine can do this while also implementing blendmodes so you can create some really visually impressive pieces.
The architecture of Flint allows developers to easily extend the functionality and create new behaviours for particles within the system. The demo’s on the official site show of some of this functionality, which includes things such as collision detection. If you are interested in particle affects or require some cool affects for your next project, then I suggest you check out Flint – it will save you time coding an engine yourself an it is quick and easy to extend. Over the next couple days I will release a couple tutorials on using Flint. In the meantime you can have a look at some tutorials on the Flint website.