Skip to content

Benchmark

hiperbou edited this page Mar 19, 2021 · 3 revisions

As of 2032, the only reliable way to measure the performance of almost anything is a Bunny Mark test.

For this test we created an actor that executes code on the Event Tick with Kotlin and Blueprint visual scripting. Also, an alternative way of ticking actors was implemented (Kotlin managed ticking). All actors were ticked directly in Kotlin code instead of using the Event Tick that seemed to be the first bottleneck. The test was executed on the editor's viewport.

Results:

Kotlin

  • 100 bunnies 60fps
  • 200 bunnies 60fps
  • 300 bunnies 60fps
  • 400 bunnies 52fps
  • 500 bunnies 43fps
  • 900 bunnies 30fps

Kotlin managed ticking

  • 100 bunnies 60fps
  • 200 bunnies 60fps
  • 300 bunnies 60fps
  • 400 bunnies 60fps
  • 500 bunnies 60fps
  • 600 bunnies 60fps
  • 800 bunnies 46fps
  • 1000 bunnies 37fps
  • 1300 bunnies 30fps
  • 3000 bunnies 14fps
  • 4000 bunnies 10fps

Blueprint

  • 100 bunnies 60fps
  • 200 bunnies 60fps
  • 300 bunnies 60fps
  • 400 bunnies 60fps
  • 500 bunnies 60fps
  • 600 bunnies 60fps
  • 800 bunnies 57fps
  • 900 bunnies 51fps
  • 1000 bunnies 45fps
  • 1600 bunnies 30fps
  • 3000 bunnies 17fps
  • 4000 bunnies 13fps
  • 5000 bunnies 10fps

Conclusion:

Blueprints outperforms Kotlin code. Handling ticking in code brings some decent results, comparable to Blueprints, at least until 600 actors were reached. It seems that is not healthy to have so many actors on your game at once, so be smart and tick wisely.

Reproducing the test:

Run the included BunnyMark level. Make sure to display the fps on screen using the console command "stat fps". Press a key to add bunnies to the level.

  • Pressing K will add Kotlin bunnies
  • Pressing O will add Kotlin managed ticking bunnies
  • Pressing B will add Blueprint bunnies
Clone this wiki locally