Blueprints vs C++ for experienced C++ dev

Hi

I’m starting with UE4 (new to game engines too). I’m trying to understand blueprints,
and I’m wondering if, having many years of C++ development, will learning blueprints really be worth it,
I mean will it really shorten development time, compared with coding same fuctionality in C++?
Basically, deciding if waste my time on blueprints or going directly with C++.

I’d challenge you to not use Blueprints at all, you’ll probably have a hard time getting anything done. I don’t think anyone’s saying that you are going to develop everything faster in Blueprints, but you will probably end up prototyping much quicker, and there are a lot of simple things that you could do in 10 seconds after creating a Blueprint, without having to bother with a C++ class, especially if you’re just messing around. If you are just going to setup a very small class that you will probably never touch again, you’d be doing this quicker in Blueprints, for example. Things like UMG uses Blueprints for functionality, why waste time hand-coding everything?

I learned C++ in the late '80s, and have used it for various things ever since. I’m a very experienced C++ developer.
Still, I started out learning Blueprint, and that was super helpful. The reason is that Blueprints show you what the structure of the engine is, and walking through the blueprint gameplay tutorials tell you a lot about what bits and pieces are important where.
Then, when I started out with C++, I still had to learn about the more basic data types, but after that, I already had a reasonable idea of how things fit together, and what classes to go look for.

Finally, it’s not either/or. You will want to build some Blueprint primitives for your major C++ systems, just because that’s the best way to wire up the final game.

Ok, so I’ll have to learn this blueprint stuff. :slight_smile: .Honestly I’m not liking it much… prefer to code C++. But if everybody is using a MIX, then, in the end that should be the way to go.
Thanks

i think you will learn blueprints in 1-2 weeks :slight_smile: they are super simple compare to c++, you only need to know few things how they work… if you want to learn pretty much about blueprints and many engine features in one place, visit this tutorial

I am also experience C++ coder… in general just use whatever shortcut to get the job done as fast as possible (and you have lots of jobs to do!).

Blueprint is just so easy to learn - in fact, you dont need to learn Blueprint, you need to know what nodes that can accomplish what task (in C++, it is called API). You have to understand Unreal concept from rendering down to multiplayer.

And C++ has its own uses too but they should complement each other. Eg if you have new hardware or input device - you have to implement it in C++ first, and then expose it to BP. Or over complicated but mature working BP that you suspect to be quite slow should be converted to C++.

When to use which has always been a matter of confusion and obviously there’s more than one way to skin a cat, but let me give you a quick rundown on how I’ve been approaching it and how, from what I could grasp from Robo Recall, Unreal Tournament and the few glimpses of Paragon, Epic Games does it.

In the simplest terms - do not put asset code in C++. That’s it.

To be more specific, let’s imagine you are making Super Mario Bros. You would make a BaseCharacter C++ class that would define walking and jumping. You would then subclass that into PlayerCharacter and implement input there, etc.

But when it comes to making the red and green turtles, you wouldn’t make RedTurtleCharacter (remember, no asset-specific code), but a BP for each, overriding the red turtle’s “OnReachEdge” function and telling it to turn around.

Obviously this is a silly example, and there are exceptions. As an example, on the last GDC you could see a screenshot from the editor with Paragon open, showing that each hero has a parent C++ class for their animation blueprints, but as a general rule of thumb, keep asset-specific stuff in BPs so that your assets are self-contained.

As for learning BP… since you’ve been coding already there are only 2 things that are kind of non-obvious pitfalls - and & or nodes do not short circuit, but evaluate everything even if they don’t have to; and if you have a pure function (which in BP means that it has no white execution line) and hook its output to more than 1 place, it will call the function once for each hook. It is better to store the result in a local var and hook that up to wherever you need it.

Thanks for the replies. Great community here :). I’m learning BP now. (Sometimes I feel
like I could replace one full screen of BP graph with two or three lines of code).:stuck_out_tongue:

Blueprints are just extremely convenient to do things for which you don’t need C++ level of performance or fine optimization. I’m in love with it really, you can prototype anything really fast.

It’s good to use both. Having a C++/VS build really optimizes the entire engine so you should try to make sure you always have one. Using blueprints in the overall C++ hierarchy is a good way to add parts to a large C++ project. It’s also better to do use both so you can switch engine versions, modify the source code, debug better etc. etc.

Ok, I watched all official tutorial for blueprints… (great btw) now I’m playing with it… I hate to admit I’m starting to like this.
As someone said… the hard thing is to learn all the UE4 classes / framework.

i also want to use it for my thesis for VR applications which includes image processing. i’m new to unreal. can anyone suggest me how to plan to use unreal please?
i can use c++ though not professional user. any comment is okay. i am confused which one to choose, using blueprints or c++. and also about the image processing.
i like all the posts, helps a lot.

The problem is the lack of resources for c++, all tutorials you find on the internet are BPs related…
I prefer to hard code all the way, what i’m afraid is to forget c++ if i don’t touch it in deep… BP should exists for create animations and tweak classes only… we are supposed to be programers…

something generic and standard (c++) is way much better than something specific (BPs) !

(sorry to revive the topic)