Pros and Cons of Blueprints and Programming In C++

I have been using unity 5 for a few months and focused on the programming. I would like to try out unreal engine 4, mainly to code. Although, I’m very curious about the blueprint visual scripting. Could someone provide the pros and cons of blueprints/programming(c++)? Also, what could someone accomplish with programming in c++ in unreal?

When you blueprint scripting gets a bit complex, it tends to look like spaghetti.

Blueprint scripts are great for all those little bits of “when I get hit by a fireball, subtract 20 points of health” and “when my health goes below 50, turn the edges of the screen a red tint.”
They are also great for tying animations, curves, timers, and such, into a cohesive on-screen presentation of various effects and entities.

C++ is great for heavy lifting – new physics, new game rules, new AI, etc. Also, debugging C++ for advanced use cases can go deeper than blueprint (data value breakpoints, etc.)
The blueprint debugger breaks “on node” but has less inspect-and-change capabilities than the C++ debugger.

You can go 90% C++, 10% BP;
Or 100% BP…

Or better, 50/50 which is where UE4 shines.

They are 0 pros to use c++.
if you blueprints look like spaghetti you write code in c++ will be equal of unread

If you need deep debugg is better that you dont become a programmer.

All unity games used script so why you game in unreal need c++?? Only for snob progammers:rolleyes:

+1 jwatte

my full subjective & personnal taste…

I really like BP for the “clik and play” interface with the asset stuff, and the visual approach I get with it. While when it’s come to C++ it feel so more “unreal”/un-visual/abstract

on the other side for more heavy/algorithmic stuff; every time I’m creating even a foreach loop in BP it feels awkward, like I’m doing something wrong… while it feels good to do it in C++

using both is the best solution.

Hmm guess you may have a point there. I’ve written c codes in university that made me want to destroy the monitor lol, but i’m not the worlds best coder.

Why use a hammer to put a nail in a wall when you can just use a screwdriver? Hammers are only for snob workmen.

Anyway, it’s about using the right tool for the job. If you’re thinking about writing larger, more comprehensive system then you want to be working in native code, whereas smaller actors (in-game objects) with limited behaviours can be built entirely in blueprint without much difficulty. You can do a fair bit with blueprint, but there are also hard limits - where and if you’ll hit those limits, I can only guess.

How much time you’ll spend in BP / C++ will depend on your project. For the main game project I’m working on, it has a lot of larger, complex systems - this backend is written entirely in C++. The content that uses those systems (i.e the actors), are largely blueprint with native classes behind them.

I hope this one helps. Good luck.

I hope you are joking.

The choice of C++ (compared to any other language) is probably debatable to death, so I won’t say Unreal needs C++ specifically, but it really needs a text-based language.

Some pros, since you are denying any of them :

  • It’s easily diffable, mergeable, since it has a text-based history. If one file has years of history, you can show it all from a web view 1000 miles from work. You don’t need an Unreal tool to see it, you don’t have engine version issues, etc. Are you alone in your project ? Try working with 10 people for years, see how that goes with binary assets.
  • C++ is much easier to refactor. Changing a method name, a class name, a structure in C++ with Visual Studio + VAX is extremely easy and typically doesn’t need any manual operation, even in a giant project.
  • You can extend engine functionality, for example to add game-specific editing tools, adding engine features, integrating third-party libraries, or just fixing bugs.
  • Debugging is obviously way more advanced. I don’t even know what you’re saying here, but the ability to stop the engine entirely and check what’s really happening with your data, not 10 layers above it, is great.
  • You can show C++ code to people who don’t use Unreal and they still can offer a pretty high level of guidance.
  • Last but not least, the Blueprint API is technically a wrapper above the C++ API, so the C++ one is always more featured by definition. It’s also a bit harder to use.

We’ve got a two years project here, most of the work in the code. It’s a very complex project with everything depending on everything, lots of unusual stuff like not really using the level editor.

Now I’m not saying Blueprints are useless - we use them from time to time, and a different project would probably server them more. But I would drop UE4 in a heartbeat if C++ was dropped, because a text-based programming language is what you use for the bedrock of your game, if only because of merging.