Is it really worth programming with C++?

Definitely. I mostly use blueprint to quickly prototype things or for “Game specific logic” or more artist facing things that are supposed to be quick to iterate on.

Blueprint becomes extremely hard to manage if you have any sort of complex code.

Also any kind of refactoring or merging code with teammates is a nightmare in blueprint.

C++ is text, and is easy to repair or refactor. Blueprint tends to have the class associated with each node. A lot of times I have to manually redo many nodes as I copy paste blueprint around since it’s strongly tied to a specific class.

In C++ I can just copy paste this code and it’ll compile:

SomeObjectReference->CallSomeFunction();

But in blueprint, that node will fail to compile since it’ll think it’s strongly tied to some class but now my SomeObjectReference is actually an instance of a different class but has the same functions.

There’s also a lot of stuff you simply can’t do in Blueprint. I’ve seen assets on the store say they can’t support doing something since they want to only be purely in blueprint and the author isn’t confident in their C++ abilities. I on the other hand manage to pull off a lot of things in our game that aren’t even that complicated, but simply impossible unless you write a few lines of C++.

For example, I made my list UMG widget able to always have a scroll bar, which is only possible with the Scroll Widget. But the list widget for whatever reason doesn’t let you customize that, and I added a few lines of C++ and made a custom C++ subclass of the UMG list widget that hooked it all up.

I even had to write some Blueprint function libraries that call into C++. Like when working with AI, I just made a simple 1 line function that returns the C++ constant for INVALID_LOCATION so I could set that value in my AI blueprint code.

2 Likes