Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

haxe NME port of @esDotDev's RunnerMark

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 assets
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 NME RunnerMark.hxproj
Octocat-spinner-32 project.nmml


Performance demonstration

First goal was to do an NME port of esDotDev's RunnerMark for fair comparison of a realistic game scene.

Minor twists:

  • shows 3 enemies even if it can't reach 58fps,
  • runner is rotating, enemies are randomly scaled & flipped,
  • for older Android devices you should not target 60fps; my HTC Desire (Nexus One) does a good job with lower targets.

Here are the scores (FPSx10 + ennemies count, in bold after engine update):

  • iPhone 3GS: 668
  • iPod Touch 4: 978
  • iPhone 4: 888
  • iPad 1: 916
  • iPad 2: 3121
  • iPad 3: 1944
  • Nexus One (2.2): 460 (target 58fps), 487 (30fps)
  • Nexus One (2.3.7): 470 (target 58fps), 577 (30fps)
  • Motorola Defy: 595 (target 30fps)
  • Samsung Galaxy Ace: 850 (target 30fps)
  • Samsung Galaxy S: 584 (target 58fps), 1073 (30fps)
  • HTC Desire Z (2.3): 869
  • Galaxy Nexus: 1081
  • Samsung Galaxy S2 (ICS): 1972
  • Samsung Galaxy S3: 2119
  • Nexus 4: 2702
  • Galaxy Tab 10.1 (3.1, 1.4GHz): 689
  • Xoom (3.1): 923
  • TouchPad (ICS): 916
  • Compare with AIR RunnerMark results
  • Download the APKs

Other point of comparison:

  • APK is 2.4Mb
  • IPA is 1.1Mb

Introducing the TileLayer

Second goal was to create a simple wrapper on NME's Tilesheet which is rather low-level and native-targets orientated.

  • provides a basic display-list, spritesheet animations, mirroring,
  • includes a Sparrow spritesheet parser, supporting trimming,
  • uses Bitmaps for Flash & HTML5 target rendering (almost complete) instead of the limited, and a bit slow, drawTriangles fallback.

TileLayer is now in haxelib:

HTML5 version

Try NME's HTML5 output:

Something went wrong with that request. Please try again.