Deploying C++ to JavaScript using Emscripten

If you paid attention during the post-GDC news, you probably heard that Epic Games and Mozilla teamed up to get the Unreal Engine running in the browser, without plugins, in a matter of four days. The secret? Emscripten.

Alon Zakai has worked three years on Emscripten, and its an amazing piece of software.

Literally, you take C++ (or technically, something that compiles to LLVM), and out comes JavaScript. Not only can you do basic code, you can take large, complex projects with myriad dependencies, and actually run it in the browser.

Let’s take one of my previous samples, and port it to the browser. Ready? Continue reading Deploying C++ to JavaScript using Emscripten


Over the past few months, I have traveled all over North America – Toronto, San Jose, Boston, Nashville, Vancouver, Los Angeles, New York – connecting with all kinds of developers, recommending frameworks or tools to help them feel productive and accomplish their vision, delivering sessions and providing unofficial demonstrations of my BlackBerry Z10.

Nowadays cross-platform is not optional—it is required. Most successful games and applications are available on more than one platform, and it makes sense – why reach 30% of users when you can reach more? “Casting your seed” gives you greater opportunity to see a return. Continue reading Hello!

Actuate: Now with Bezier Tweens (Again)

Anyone who used the old Actionscript version of Actuate may know there used to be a “motion path” tween. In the translation to Haxe, this is something I never ported.

I am happy to announce that Actuate 1.50 has just been released on haxelib, including a new and improved version of the motion path tween! Continue reading Actuate: Now with Bezier Tweens (Again)

HTML5 Benchmark Scores: NME RunnerMark

If you are on Twitter, you may have seen links to RunnerMark, a benchmark that tests rendering performance of Adobe AIR and NME.

We have been improving the performance in the (beta) HTML5 target for NME, so I am happy to share some of the results. These improvements will be released with the next version of NME. Continue reading HTML5 Benchmark Scores: NME RunnerMark

Benchmarking HTML5 using PirateMark

Nowadays, it is not possible to reach the majority of users on the internet using Flash Player. Mobile devices that support Flash Player are dwindling, support for a standard Linux plugin has stopped and Windows 8 is going to only provide Flash Player support for a whitelisted subset of the internet.

NME and Flambe are both Haxe-based frameworks that can support both HTML5 and Flash Player, so you can provide the best experience to users, everywhere. Today, Flambe is also getting support for using NME as a backend, so that it will be possible to use either framework to also target Windows, Mac, Linux, iOS, BlackBerry, Android and webOS natively. Continue reading Benchmarking HTML5 using PirateMark

Pragmatism over Perfection

I used to be a perfectionist.

When I did anything that fell short of my unwavering, unattainable “standards,” I would push and stress until I reached the very end of what I could accomplish, often because of exhaustion or external factors, not satisfaction.

That is a very difficult way to live.

One thing I learned in art class is that I always have a point where I go too far, and begin to ruin a project. It is an important, almost invisible line that you cross when your efforts begin hurting the result instead of improving. I feel the same concept applies to my other pursuits as well. “Perfection” is a burn of time and emotion, for usually little to no gain. Continue reading Pragmatism over Perfection

Using the Remote Control Library with NME

Yesterday we published an NME native extension called “remote-control”

This makes it really simple to add Apple Remote support to your NME games or applications. To install, open a terminal or command-prompt and run “haxelib install remote-control”. To add it to a project, open the NMML file and add <haxelib name=”remote-control” />

Then it is only a few lines of code to begin listening for remote control events. Here is a complete example:  Continue reading Using the Remote Control Library with NME