Adobe’s Project “Alchemy” is now Flash Runtime C++ Compiler

A long time ago, back in 2008, Adobe unveiled a new experiment for using C / C++ code on the Flash Player. Now the project has settled on its final commercial name, Flash Runtime C++ Compiler.

Project “Alchemy” was based on LLVM—and presumably so is its latest commercial version—and compiled C / C++ code to AVM2 (ActionScript Virtual Machine 2) bytecode. This is the same kind of bytecode generated by normal ActionScript or Flash projects and runs the same on the Flash Player.

Of course since the code still runs on Flash Player, it is limited by the Flash Player sandbox, and what Flash Player can do. One cannot write a low-level application that erases someone’s hard drive and distribute it as a Flash app. You cannot access any native hardware that Flash already can’t.

The purpose of this project was to allow using existing C / C++ code that is not dependent on such functionality, and is OS-independent. For example a library for encoding and decoding different audio formats or image formats, or a library for encryption; CPU-intensive operations that would be too slow if done in ActionScript. These could be compiled into Flash SWC files that can be accessed by any Flash project.

The project saw huge interest and Adobe decided to turn it into a production-ready commercial product, which has now been revealed as the Flash Runtime C++ Compiler (flascc).

The commercial release claims to allow developers to use existing game code, and 3D engines in C++ and leverage OpenGL or DirectX to create Flash games. A demonstration based on Epic’s Unreal Engine 3 showcases this feature. However such content will require a Flash Player premium license since it using the premium Flash Player XC APIs. You can read more about that here.

You can find out more about the Flash Runtime C++ Compiler at the Adobe Gaming website and can sign up for a beta of the flascc compiler there.

Leave a Comment

Your email address will not be published. Required fields are marked *