+2
Answered

Bolt performance

MexicanBurrito 4 years ago updated by 3d_Artist 4 years ago 8

Hi!

This might be an annoying question but how does Bolt compare to Playmaker on performance? I heard that it was slower but I didn't really trust the source and thought maybe someone here would know for sure!


Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
GOOD, I'M SATISFIED
Satisfaction mark by MexicanBurrito 4 years ago
+9
Answered

Hi MexicanBurrito! Welcome to the community :)

Bolt works very differently from Playmaker, so it's a bit hard to compare.

Basically, the core of Bolt uses what's called reflection to access everything in your codebase. The advantage of that is that it makes Bolt instantly compatible with everything in Unity, every third-party plugin, and all of your custom code. The downside is that reflection is known to be slower than direct code... usually. That's where Bolt shines: with cutting edge C# optimizations, its reflection calls are on average 5 to 8x faster than traditional reflection.

Unless you're making a game with hundreds of complex entities, this means Bolt's performance shouldn't be a problem. However, in the future, we're looking into having Bolt generate C# scripts to be as fast as "real" code, without any overhead. That won't happen for a few months at least, but it's part of the long-term plan!

+2

If you make Bolt generate C# scripts as the final output... Man..... It's going to be the icing on the cake! :D


Ok that eases my curiosity! Love the work so far and will definitely get it when money comes my way!

+2

To test performance we need create mini benchmark in pure c# and bolt.

+1

@Lazlo Are you talking about performance of the editor or the games? If it is just the editor then it not so bad. But if games run a little bit slower with Bolt code than with normal code then it is not very cool. Of course this shouldn't be a problem without hundreds of entities (whatever that is) I guess :)

+5

At the moment it affects both. The whole point of code generation in Bolt 2.0 is that graphs would be converted to C# code, then that code would be converted to C++ code via Unity's IL2CPP, so Bolt code would literally run just as fast a native code — because it would be.

+2

I'm happy for your sincerity.

I'll buy this tool as a trust vote and I can't wait to see this "Bolt -> C#" generation