RatTower
Arcane
- Joined
- Apr 24, 2017
- Messages
- 470
[...]You'll get games made entirely in blueprints by people with no programming knowledge whatsoever, [...]
Blueprint is by no means a substitute for lacking programming skills. Or even a bad option for making a game.
It's just a visual wrapper for a language that is pretty much on par with Java 1.4 (basically everything before generics were introduced) or a stripped down version of C#.
The only performance hit you take with Blueprints happens, if you try to build a fully object oriented architecture, not relying on function librarys and just instantiating all your logic as objects in the world.
But even then that only really makes a difference if you access the tick-event of those objects each frame and execute some elaborate function with it. The overhead from the instantiation itself isn't all that much.
My go-to solution so far was instantiating controller classes (though in newer code I've just been switching to function categories to keep BPs well organized), keeping actor-specific data in structs on the respective blueprint class and pushing everything that has to be persistent into the game instance.
Another thing people tend to do a lot is type casting. Despite the fact that Unreal fully supports message based interface calls due to it's Entity-Component nature.
That probably takes its toll on the performance of many games as well.
I believe I even saw that in an Update/Tick event on one of official Unreal tutorials once. Now either Unreal does some kind of casting magic to make it into a super fast operation or the guy just didn't take the time to save a casted reference. Think it was one of the animation blueprint tutorials. So no idea if he even was a programmer.