Download

Noob - C++ vs Blueprints

I just started looking at Unreal 4. I went through all the quickstarts.

What is the advantage/disadvantage of using C++ over Blueprints? As I understand it, you can do one, the other, or both.

There is a whole lot we could go through with you but I’ll make a very quick answer and allow you to mess around with them to figure out the rest.

The biggest advantage of using Blueprint it would be that it is incredibly easy to visualize. You don’t need much abstract thinking to see what is being done with variables, how functions work, what the classes are capable of because it’s all right there for you to see in pretty boxes. You can even watch it go to work when you test out your program.

The biggest advantage of using C++ is its limitless power to create any functionality you want. While it takes abstract thinking in order to visualize what’s going on and more then a few generous months of work to really start “getting it”, the end result is an ability to make things works exactly how you want them to. Even to the point where you can create your own blueprint functionality if you want to make working on values associated with a blueprint easier for anyone working on a project with you.

I would suggest learning where each is useful.

Some things don’t require C++ to go into and it would end up becoming more complicated/longer to create (EX: A switch for a light).

Some things are better to do in C++ because they’d become horribly complicated messes in blueprint (EX: https://www.youtube.com/watch?v=ayxguGBAouk).

Do some small projects and see what system works best for you.

C++ is faster and easier to maintain if it’s a bigger project, for example if you would search something you could use all the tools you know. There would be no “disconnected” nodes if you use C++. It’s easier to work in a team with more coders as you could do your work, commit, update or push and pull and so on.

BPs could be created fast and are usually fast enough for most parts of the game (as most of the time-critical work is done already by the engine). If you would create a simple actor it’s some rightclick with BPs while you have to do all your common steps in C++ and you have to compile if you are done. It’s even easy to play around with BPs. Add some component… try… don’t like… remove… add something else, try again… without declaring and cleaning up all those codeparts in C++. BPs are used the same way in various parts (Actors, AnimBPs, Materials, SoundCues, …).

If you are alone and would try out how to create the game then I would recommend to give Blueprints a try. They are great and nothing is lost. You could create a full game with BPs and or move some (or almost all) parts to C++ later if you like and leave some others (like AnimBPs that give a great overview with BPs).

It takes WAY longer to learn game design mechanics and game engine API, than either language…
So pick whichever, just jump in get started… Try to find original game idea to help stay motivated.
.

If you haven’t done c++ already, pick blueprints. Hell, even if you’ve done c++, I recommend blueprints first. There is nothing stopping you from hashing out an idea in blueprints and then porting the logic to c++. And blueprints are much faster to pick up and work with (they only start to slow down if inheritance is involved).

Really? It took me 20 years to learn every nuance of C++ and I’ve still got C++'17 to go.
If it takes that long to learn the Unreal Engine, I’ll be dead.

HAHA thats why whenever someone says they are an expert at c++ I roll my eyes unless they have a grey beard down to their knees :slight_smile:

Couple of things to think about:

  1. While UE4 C++ is not C#, generally it is more simplified.
  2. There’s still a lot of other theory to learn in game work…

To know the entire unreal engine code base might take several lifetimes :stuck_out_tongue: