Flash and AIR, or how an old timer gets a second breath

Flash has been around for years in the web design environnment and had become a de facto standard, present in all platforms. Flash also moonlighted with success as a web-based game language, with thousands upon thousands of games and serious games developed in Flash.

Recently, some pivotal policy decision by Adobe made Flash become less and less relevant as a solution for web development. But in parallel, Adobe also lauched AIR. Adobe Integrated Runtime, also known as Adobe AIR, is a cross-platform run-time system developed by Adobe Systems for building Rich Internet applications (RIA) that can be run as desktop applications or on mobile devices, programmed using Adobe Flash, Apache Flex (formerly Adobe Flex), HTML, and Ajax. The runtime supports installable applications on Windows, Mac OS and some mobile operating systems such as BlackBerry Tablet OS, iOS and Android. It also originally supported Linux, but that support was discontinued.

 

Practically speaking, it means that you can use the exact same code to deploy applications to Windows or MacOS. With small modifications (mainly graphical libraries and a switch between a component/view type of software) you can also deploy the exact same code to BlackBerry OS, iOS and Android. With other small adaptations, you can still generate a classical .swf file to deploy on the web.

Given how the initial intent of Flash derived from web-based animation to games and how much progress has been done in this domain, is using Flash still a viable solution and a good idea for the future ?

  • My thoughts, exactly. As an Actionscript programmer I really would like to see Flash surviving a few more years. And, so far we've ported previous Flash programs to iOs and Android, using Air, with mixed results, though.  

  • Interesting topic Olivier! Actually we recently tackled issues regarding the migration of existing actioscript code split in many swfs into mobile platforms. Two interesting resources came up to solve the issue:

    https://blogs.adobe.com/airodynamics/2012/11/09/packaging-and-loading-multiple-swfs-in-air-apps-on-ios/

    http://tomkrcha.com/?p=2532

    The script described on the second link was not only successful on our tests but actually successfully used for the migration of the Machinarium game.

    On the other side I was also told about Super Hexagon's case where the author found so many issues using Flex iOS build that he ended up just rewriting the whole thing.

    I'd say that, unless you depend a lot on Flash's animation system, Unity is the way to go for multiplatform game development.

  • On mobile devices -which is the future - Adobe itself says HTML5 is the way forward, not Flash. There are also signs that Adobe Air is slipping into maintenance only mode. Besides, writing an app in Flash and then compiling it into native code for iOs or Android with a copy of the entire runtime environment embedded does not make sense to me. So I would recommend people holding on to Flash to let go and move on. Less and less programming courses include Flash, in favor of native mobile programming languages.

  • Yes, Adobe is distantiating itself from Flash. Not killing it outright, but getting less involved (ApacheFlex, no AS 4 any time soon, etc...).

    But Flash is now still superbly robust, not only with AIR but also with the current park of installed web broswer.

    More over, HTML 5 might be idea in theory but hardly mature, one of the issue with using pure HTML and JavaScript for certain tasks can be that implementation might vary wildly and performance even more so.

    As for Unity, it is a proprietary product so it might not be the most ideal choice while trying to get out of another proprietary product.

    I would suggest everyone to read this article from Lars Doucet, which sums up quite nicely the situation and proposes some alternatives like OpenFL and Flambe.

Sign in and join this group to reply.