ScopeBee
Back to the site

Updated engine comparison

Flappy Bird now runs on seven engines instead of four: Phaser, Pixi and PlayCanvas have joined ScopeBee, Cocos Creator, Defold and Unity. Every build was rebuilt and measured again on one bench, and the builds on the site are exactly the ones that were measured.

How it was measured

Each build is made only with its own engine’s tools. The images are the same and at their original size, the game logic repeats the Unity original, and the physics is Box2D everywhere: built into the engine for ScopeBee, Defold, Unity and Cocos, and Planck.js — a JavaScript port of Box2D — for the three frameworks, which have no Box2D of their own.

Load times were measured on a local server that serves everything in brotli: a ready-made .br file where the build has one, brotli at quality 11 where it does not, compressed in advance so that compressing takes no time during the load. The point was to keep the speed of the internet connection out of the results: over a real network the download time changes from run to run and would bury the difference between the engines.

Results

Metric Engines, best first
Transferred
  1. Phaser456 KB
  2. Pixi492 KB
  3. ScopeBee515 KB
  4. PlayCanvas579 KB
  5. Cocos Creator595 KB
  6. Defold953 KB
  7. Unity6.4 MB
Resources
  1. ScopeBee1.4 MB
  2. Pixi1.4 MB
  3. PlayCanvas2.0 MB
  4. Cocos Creator2.4 MB
  5. Defold2.9 MB
  6. Phaser10.1 MB
  7. Unity28.9 MB
First frame
  1. ScopeBee146 ms
  2. Phaser184 ms
  3. PlayCanvas232 ms
  4. Pixi246 ms
  5. Cocos Creator312 ms
  6. Defold346 ms
  7. Unity612 ms
Heap Snapshot
  1. Pixi16.3 MB
  2. ScopeBee16.6 MB
  3. PlayCanvas17.9 MB
  4. Cocos Creator19.3 MB
  5. Phaser25.8 MB
  6. Defold41.5 MB
  7. Unity136 MB

Play the builds: ScopeBee Cocos Creator Defold Unity Phaser Pixi PlayCanvas

  • Transferred — what the browser downloads, compressed.
  • Resources — the same files after decompression.
  • First frame — the time from opening the page to the first frame the engine draws, download included.
  • Heap Snapshot — the memory the page holds, as Chrome DevTools shows it under Memory → Heap snapshot; Web Workers are not part of it.

Why Phaser and Pixi download less

Because they carry less. Pixi is only a rendering library: it draws sprites and leaves everything else to you. Phaser is only a 2D engine.

Playable builds

A playable ad is the same game as one HTML file with the engine, the assets and the script inside it. Only the engines that can produce one are compared here, and none of the builds was optimised further: ScopeBee, Cocos Creator and Defold come out of their own playable modes, Pixi and PlayCanvas are the same web projects as above, packed into a single file. Unity has no such mode.

Metric Engines, best first
HTML file
  1. ScopeBee789 KB
  2. Defold1.3 MB
  3. Cocos Creator1.4 MB
  4. Pixi1.6 MB
  5. PlayCanvas2.2 MB
Transferred
  1. Pixi561 KB
  2. ScopeBee582 KB
  3. PlayCanvas654 KB
  4. Defold953 KB
  5. Cocos Creator1.0 MB
Resources
  1. ScopeBee789 KB
  2. Defold1.3 MB
  3. Pixi2.3 MB
  4. PlayCanvas2.9 MB
  5. Cocos Creator3.4 MB
First frame
  1. ScopeBee161 ms
  2. Pixi248 ms
  3. PlayCanvas266 ms
  4. Cocos Creator345 ms
  5. Defold443 ms
Heap Snapshot
  1. ScopeBee17.0 MB
  2. Pixi18.8 MB
  3. PlayCanvas19.9 MB
  4. Cocos Creator30.0 MB
  5. Defold41.8 MB

Play the builds: ScopeBee Cocos Creator Defold Pixi PlayCanvas

  • HTML file — the file on disk: what goes to the ad network and what its size limit is checked against.

The other rows mean the same as in the table above. Each figure is one cold load read off Chrome DevTools; Transferred is what actually came over the network — for Pixi and PlayCanvas the DevTools total also counts the data URIs these pages read from themselves through fetch(), which never touch the network.

A note

The site serves these builds differently from the test server, so a stopwatch here will not match the table: the difference is the network, not the engine.