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

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

Using Threads with NME

There has been a good amount of discussion recently about concurrency (multi-threading), now that Actionscript has added support in the new Flash Player release.

Haxe already supports threading when you are using the C++ or Neko targets.

The following samples will not work for Flash or HTML5, but will create and manage communication between threads on the Windows, Mac, Linux, iOS, Android, BlackBerry and webOS targets for NME.

Continue reading Using Threads with NME

Changing the Flash API (We Have the Technology)

I came across a devious discovery.

I found that I can change the Flash API.

Conditional compilation and typedefs are two features which are available in Haxe, but not in Actionscript 3. NME uses these features to alias “nme.display.Sprite” and other classes to “flash.display.Sprite” and our backend classes for the native and browser targets.

This is powerful for implementing a unified API across multiple platforms, but because we do not control Flash Player, we have not been able to fiddle with the definition of “flash.display.Sprite” … until now. Continue reading Changing the Flash API (We Have the Technology)

Stage Focus and Activation in NME

When you are developing for the desktop or a mobile device, it is important to consider the activation and deactivation of your stage. This isn’t a huge, complicated principle to understand, but it can really make a difference for the user.

The nuances vary between platforms, but the basic principles are similar. There are two sets of events you can use for activation and focus. Continue reading Stage Focus and Activation in NME

Game Jam Update: Balloon Pop

I just got back from a game jam at the Sacramento Game Developer’s Meetup.

Unfortunately, I was not able to make the first few hours since I had some family things to take care of. However, I had fun coming up with a game idea before it was time to present. Everyone already had a team, and there was only around 30 minutes left after I finished settling in and saying hello.

The theme of the jam this month was “cooperative.” Continue reading Game Jam Update: Balloon Pop

Adding the BlackBerry C/C++ Native Target in 48 Hours

I am one of the lead developers for NME, a cross-platform, open-source framework.

If you have not heard of NME, it targets Windows, Mac, Linux, iOS, Android, BlackBerry, webOS, Flash and HTML5 from a single codebase. It does not require a virtual machine, and does not use a scripting language like Lua or Javascript, other than the HTML5 target. It reliably supports each platform using native C++ and OpenGL, SWF bytecode or Javascript, thanks to the incredible Haxe programming language.

The BlackBerry target is the newest platform we support. It took me less than two days to add. Continue reading Adding the BlackBerry C/C++ Native Target in 48 Hours

Introducing the “nme rebuild” Command

I am happy to introduce a new command, “nme rebuild”, which is available on SVN for developers.

If you have ever used a development build of NME, you know that you need to compile the command-line tools and the library for your current platform before you can get started.

Now, NME willl always include a run script, so it can compile the command-line tools and native library for you automatically the first time you run “nme” :)

We are also going to include both debug and release libraries in the next version of NME.

This will improve debugging, but can make things trickier to manage if you are using NME from SVN, where you need to build libraries yourself. Instead of having one library per target, there will be two. This is aggravated on platforms that have multiple architectures, like iOS, which has armv6, armv7 and simulator builds, leading to a total of six binaries.

That’s where the “nme rebuild” command comes in ;) Continue reading Introducing the “nme rebuild” Command