The state of Adobe AIR

I have always developed games in Flash. I have created a multiplatform game as a project for my bachelor thesis. I have also spent almost a year now developing and maintaining an Adobe AIR game for Android and iOS. I have also worked with other engines, like LibGDX and Unity. I’ll try to sum up my experience with the platform.

Firstly, a quick recap, what is Adobe AIR:

Adobe AIR is a cross-platform, proprietary  run-time system developed by Adobe, based around Adobe Flash Player. The main programming language is ActionScript 3 with syntax similar to languages like Java and C#, which runs in its own virtual machine.It boast additional features to standard Flash like SQLite database support and I/O Api for file manipulation. It’s Stage3D allows developers to take advantage of hardware accelerated 3D rendering. It can include native code in the form of AIR native extensions (ANEs).

Adobe AIR logo
Adobe AIR logo

 

I will be mainly talking about what I know best – 2D mobile games for Android and iOS. Even though I heard some people are still trying to make mobile business apps in Adobe AIR, in my opinion, this is just not the right tool. Apps just look best (and load faster) when they are native.

Pros

  • It’s completely free. You don’t have to spent a dime to create a full-featured game in Adobe AIR. Unlike for example Unity, you won’t even have to tolerate any kind of “Made with Adobe AIR” splash screen. You are free to choose an IDE of your choice. Most extensions for additional functionality (in-app purchase, social, …) can be also found on GitHub. This is great plus for indie developers.
  • Plenty of production-ready tools, engines and libraries available for everything. Animators can easily leverage their skills with Adobe Flash CC. There is a great profiler called Adobe Scout (even for Android!). Texture can be packed for the GPU with AFT tools. Stage3D is easy with Starling and Feathers frameworks.
  • Community. Various forums and social networks are full of active and very friendly contributors. There is no problem getting advice on anything Flash related.
  • Scalable code. ActionScript 3 code that is properly structured into projects and libraries is extremely scalable and easy to maintain. I heard this is not the case with Javascript/HTML5 projects.
  • It is fast (enough). Despite various claims about performance issue in Adobe AIR, I have always found that, at least for 2D games on mobile, it is comparable to any other cross-platform solution. This applies only to game with Stage3D and reasonable game logic.
  • Target iOS without a Mac 🙂

Cons

  • Adobe itself. They make a poor job advertising the advantages of this platform. They are usually absent from game-related events. They seem to cut resources for further development and bug fixing.
  • No Windows Phone support, sadly probably not coming
  • Some unity features make me a little jealous (Audio Mixer, Unity Networking multi-player tools) 

Nitpicking 

  • Setting up the SDK could be easier. I hate this merging of archives that is now necessary. (only applies to Flash Builder IDE)
  • No high-level shader language. Writing a custom shader seems too cumbersome to me at the moment.
  • Size. When you bundle the Adobe AIR runtime your app gains about 20 MB.
  • No custom headers for HTTP GET requests
  • StageVideo does not release GPU memory

Conclusion

Adobe AIR is proven to be a great solution for mobile 2D games and it will continue to be one, even if Adobe decides to completely stop maintaining it (not likely) for at least 2 more years. It has excellent workflow, allows for quick prototyping and also highly scalable code. If, in the future, Windows Phone gains more market share, it will however be tempting to seek other solutions.

While Adobe’s unwillingness to invest in the platform can be explained by the lack of revenue from it, it is short-sighted. Unlike PhoneGap (which they advertised), this could really establish Adobe as a creator of amazing products in the minds of developers everywhere. AIR is under-hyped!

Leave a comment