Thanks for the BP->C++ Converter, it's awesome!

I have run a small test to see how the performance compares between regular BP code and the converted C++ code. I did not even expect the converter to work in 4.11, so I was quite impressed with the results! :cool:

This is my benchmark function:


Without conversion to C++, it takes 4.13 seconds in a packaged game.

With BP->C++ converter enabled, it’s 0.33 seconds.

That is a 1251% increase in performance!

I know this is quite an extreme test, but the result is really, really promising.

John - How do you enable the bp->c++ converter?

Is it just:
Screen Shot 2016-02-20 at 12.03.49 PM.png

Yes, thats everything I did :cool:


I thought it was scheduled for 4.12? Awesome work can’t wait to see the results.

So wait. Does it just generate C++ for you every time you compile the BPs, or does it convert into C++ and then you have to maintain the C++ yourself?

It generates the C++ while packaging. So in PIE and standalone you have regular BP performance, but in the packaged game you have way better performance :slight_smile:

that sounds just awesome.

could u make a test with hundreds of ticking actors, that actually slow down game thread, and compare it with converted to cpp ?

Wow! That is super impressive! :smiley:
Thanks a lot!

Epic made a great job :cool:

That’s really an impressive improvement in performance.

Though it also shows that BP performance has room for improvements in itself :wink:

What I am wondering though is, can this be done for all BP based code graphs and exported to the source file?
I would love this as a helper to get the migration from BP-prototyping into c++ started.

(We have loads of future editor feature prototypes in BP Construction Scripts and would like to move them over to C++ sooner than later :smiley: )

That’s incredible! Thanks for the test!

Oh… I just spend week converting BP to C++ manually…

WOAH! That sounds amazing. Cannot wait to try it out.

You’re bound to still get better results that way.

Also, would be amazing if some dev could tell us if and what might be possible caveats or gotcha’s of this.

At least in 4.11, there seem to be some nodes that are not yet supported. I had to remove all “Shuffle” array nodes from my project to make the build not fail. I guess there are more nodes like this.

Out of interest, can you post the C++ code it generated? I’m expecting that it just does dumb copy-paste from source files. If that’s the case it’s a great start, but if you really want things to run fast sometimes writing it out yourself can save you performance too :slight_smile:

I have no clue how to access the C++ code it generates. I think it’s deleted automatically once the packaging is finished, since I can’t find it anywhere in my project folder.

I dont believe it generates any c++ code, but compiles the blueprints as if it was code, since blueprints are just an extension of c++. Would be really nifty to actually have access to the code though.

Cool. Sounds promising. :slight_smile:

I didn’t expect that performance increase in this tool will be as big as you experienced. Awesome! Thank you, Epic! :smiley: