Flash Support

Tuesday, 3 December 2013

Some of sessions we attended at GDC Americas this year focused on the current available technologies for getting C/C++ based games/engines running in a web browser. When the Google Native Client SDK was released some time ago we investigated how we could harness this in order to run our games inside Google Chrome, and while this is still of interest to us, we were a little put off by the fact it only supports the Chrome browser (perhaps this is something we will come back to).

KamiRetro KAMI RETRO Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

Two of the other potential technologies are Emscripten and Crossbridge (was FlasCc). Emscripten is a technology that ultimately takes your C++ code and 'converts' it into Javascript, which can then be run under any browser (in theory it runs in any browser, although in reality the main browsers support is pretty well although other browsers have limited support). We investigated Emscripten but felt the technology was not yet mature enough for our adoption. We then investigated Crossbridge, which takes our C++ code, compiles it into bitcode that can execute under the Flash runtime (it actually compiles to LLVM bitcode first). We were able to get our codebase compiling and linking against Crossbridge relatively quickly, although the build times are rather slow and memory intensive (it requires over 6GB of memory, and a fully optimized build can take 30 minutes to build on a reasonable specification machine, which leads to a slow development cycle)!

WackyRapids Wacky Rapids Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

With our Flash .swf version of our games/engine built, it took a little while to debug various problems that stopped them from running. Again it felt like the technology is not yet fully mature, but we stuck with it and overcame all the issues, meaning we can now run all of our games in the web browser (via Flash). Helpfully, there is a GL wrapper that allows our native GL calls to be mapped onto Stage3D Flash calls (Stage3D is the GPU accelerated layer that can be used for Flash), and we were able to use a software OpenAL implementation with a small output driver we wrote to send the final mix to a Flash audio output.

KamiCrazy Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

We are pleased with the end result, all our games run at solid 60 FPS in the browser, and given that we develop our games on the PC, and control them using the keyboard and mouse, means the games play well in the browser too. There is a certain 'magical' feel of seeing our engine being able to run in this way.

In terms of releasing our games via Flash, we are currently exploring what options are available. There are a few portals which are set up to allow developers to earn revenue from Flash games, although this is an area which is new to us. We would like to see our Flash games available for everyone to play, although right now we don't have a road map for this happening. Stay tuned for more information.


  1. Manh Khang said...:

    Nếu bạn muốn đăng tin mua bán nhà đất tại các khu vực như nhà đất tân phú, nhà đất hóc môn, nhà đất nhà bè hoặc đăng tin bán nhà đất các khu khác nhà đất tây ninh giá rẻ, nhà đất quận 8 thì hãy đến với nhadatxinh chúng tôi, sẽ giúp bạn bán hoặc cho thuê nhanh nhất hiện nay.
    Công ty giakin.vn la công ty chuyên sản xuất túi xách nữ, sản xuất bóp vísản xuất balo , ngoài ra công ty chúng tôi còn túi du lịchxưởng sản xuất balo quà tặng với chất lượng cao và giá thành rẻ hơn những nơi sản xuất khác.

Post a Comment

Paw Print Games © 2011