Skip to content


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

Failed to load latest commit information.
assets TileLayer API change and texture scaling
.gitignore initial commit
NME RunnerMark.hxproj TileLayer API change and texture scaling


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.