Some people say that even C++ programmers could take advantages by using Blueprints.
What do you think? Is there a set of stuff that I can do faster and better by BP rathar then using C++?
If yes, could you provide any examples?
Thank you.
Things like level scripting, or one-off custom logic make sense for blueprints.
If I have a Teleporter panel that simply moves a character that steps on it from point A to point B - it probably makes sense to make it in a generic way and just have Blueprint events that fire when someone steps on the teleporter, so a designer can use that same object over and over in the level but provide different behaviors using Blueprints.
I am a C++ programmer, although, I find doing C++ in Unreal Engine is a pain in the ■■■, I’ve never been with a more troublesome setup. It’s giving me a headache every time I tough it, unlogical errors everywhere, weird standards I am not used to. Creating a class, deleting it and then creating it again gives problems because it didn’t get properly deleted the first time etc…
I just have a very bad experience with the C++ using UE 4. Although, Blueprints seems to always work fine and the development is very quick, nice features such as “collapse to function/macro/nodes” etc. “Find references” is nice… It’s just quite a lot of nice features.
The general methodology is that you use C++ to build the tools such that blueprints let you easily put things together.
Like you don’t want to use C++ to define every character in detail as well as what their inventory contains, etc, but you might want to use C++ to define what an inventory is, and let blueprints then define the characters and what their inventory is filled with.
I don’t know what exactly you mean by “unlogical errors” - I had a lot of errors in the beginning that I didn’t understand, but that was mostly because I didn’t understand the engine. You of course get unreadable compile errors - but thats a c++ problem, not an ue4 specific one.
There is a workaround for deleting classes completly, it is not very nice, but it works. And since the architecture of a project settles after a while it becomes less of a problem. In the beginning it is certainly a pain in the ■■■, but I don’t know a framework for which thats not true (although more pain here than usual maybe).
And in the end I really like how deeply you can interface your c++ with blueprint and the editor in general. Some really nice features there.
I don’t think you “need” to use blueprints anywhere in your creations, but it does make certain things a lot easier. Personally I’ve had a lot of bugs when initially interfacing c++ with blueprints, but to an extent the same things applies to blueprints in general as well. When I encounter weird logic bugs, one of the first things I do now is restart the UE4 editor and usually it fixes the problem. This seems to happen more often when interfacing c++ and blueprints, but it happens in pure blueprint projects as well after long sessions of having the editor open.
In general I define base class behavior in c++ and use blueprints to inherit from the base class where I only need to edit variables.
For my inventory, I use a c++ actor component to handle how items are stored.
For items, I use a c++ class to define all default behavior, then I can quickly create a blueprint derived from that base class to set the item’s mesh, icon, name, etc. I can create hundreds of “items” in very little time.
I do the same for my foliage resource harvesting system, though currently I had a bug that I couldn’t figure out in c++ so I rewrote / protoyped it in blueprint and found the bug rather quickly. Once I’m 100% happy that everything works properly, I’ll write the base class again in c++. Prototyping in blueprint is fairly quick and painless.
The idea here with my harvesting system is the same as used for the inventory. I define (or will define) the code heavy base class in c++, then create child blueprints to define the data variables for each type of harvestable foliage.
Always remember to restart your editor when something stupid breaks or doesn’t seems to be following it’s coded logic.
There was just lots of em, can’t remember in specific. Though, I’m certain the errors weren’t general C++ errors, I am very familiar with C++ and even made my own bot in C++ for a game called Tibia.