Benchmarking

Test Preparation

We have designed a set of test plans to compare the performance of various game engines across multiple performance factors. All tests are conducted in the following environment:

  • Macbook M2 Pro
  • Memory 16GB
  • Sonoma 14.4.1

Like the engine, our benchmarking code is also open source. You can get the source code from the benchmark repository. This test includes the Galacean Engine, Babylon.js, and Three.js engines.

Basic Rendering

In this benchmark, we tested the rendering performance of the three engines after loading 100 glTF models and configuring 10 PointerLights.

Galacean EngineBabylon.jsThree.js
60fps
60fps
60fps

Animation

In this benchmark, we tested the performance of the three engines when loading 225 glTF models and simultaneously playing 255 glTF animations.

Galacean EngineBabylon.jsThree.js
55fps
48fps
4.5fps

Particle System

In this benchmark, we tested the rendering performance of the three engines using 500 particle systems with similar parameters on an opaque background.

Galacean EngineBabylon.jsThree.js(three-nebula)
57.6fps
24.2fps
3fps

Three.js does not have its own Particle System, nor does it have a currently maintained preferred third-party library. Similar effects are generally implemented independently by developers. Therefore, we used three-nebula to represent the particle system of Three.js in this test.

2D Rendering

In the 2D test, we tested the performance of placing and rotating 7920 2D sprites simultaneously.

Galacean EnginePixiJS
60fps
60fps

Summary

We chose Babylon.js, Three.js, and PixiJS for testing because they are currently the most popular game engines, and during development, they have always been our benchmarks to surpass. We hope to provide the community with transparent and comparable performance information through these benchmarks.

If you want us to include your game engine or have suggestions for improving these tests, feel free to open an issue.

Was this page helpful?