Download

BP or C++?

Hey guys, I come from years of C# and was wondering if jumping to C++ is much different?
What I mean is like - is there that much of a syntax difference that it will mind-f**k with me?

I’ve never really looked at C++ as I never had a reason to use it before.
But Blueprints I don’t know if I want to use them either as I hear they can possibly
be even slower than C#, then if that’s the case - may as well stick with C++.

Just curious to know what is commonly used here.
I mean also, could a game like Alien Isolation be strictly made using nothing but blueprints?
As that’s the kind of style game I’m going for.

#Edit
And no I’m not a game dev noob - I’ve been in game dev for nearly 20 years.
So this isn’t one of them I want to create an MMO games with a button questions hahaha.

that question its asked constantly in the forum. Search it.

20 years developing games and you don’t known C++? :o

1.- If you don’t known C++ use BP and begin learn C++ basic first && advanced (nothing related to UE)
2.- BP its good enough for a typical game logic and you not going to have problems with performance with today computers.
3.- Later, perhaps you going to need some advance and critical (performance) stuff and then perhaps you need c++. Or perhaps no, and BP are enough. You must begin with BP and in the future depends of what are you doing or what do you want doing you going to known if you need C++ for your project or no.

I have done searches, I wasn’t asking a cross comparison - I was just trying to see what most people actually use.
I wasn’t asking for any technical know-hows, I could figure C++ out as I find coding WAY easier than Visual Design ****.
Only thing with C++ I was asking if the Syntax was that much different than C#.

But I just never had a reason to use C++ that’s all. Now I can’t say I’ve done it professionally in the past 20 years, because that would be a lie.
I only mentioned the almost 20 years part to let everyone know I’m not trying to create something beyond my means of understanding.
I know exactly what I can and can’t do. I was just trying to figure out what the community uses more of, BP or C++ and if C++, is the syntax much different than C#, or is it completely different ball game?
Because I’m really trying to avoid the Visual Design Blueprints as I find it enormously harder to understand than any coding I’ve ever done

BP are the best for learning how works the engine and for prototype all and be productive. My opinion (i not pro) its stupid not take advantage of this.

I begin with UE4 when they release it , and doing few project (not finish any just demos for play with the engine and learning). Until the last month i not need C++, now i have in my head something very concrete i need it. BP help me a lot for jump from BP to C++.

Still using BP in this project if its possible and if isn’t something critical in performance, because its fast for developing.

Both. Let your personality define which you’ll use more.

Thanks for the replies guys/gals.

I’ll take that into consideration.
I guess I’m sorta like scared to try something new (Visual Design).
As I’ve always shunned the idea of it.

I’ll give both C++ and BP a try and find what I’m more comfortable with.
Just wasn’t sure if BP was really truly all that slow or not.
Wish Unreal had C# haha - I’d be blastin through faster than you could with BP, well you know what I mean - not literally lol.

But off to my new venture in Unreal :D.
After 3rd Time Unity corrupted my game AND Backups I am fed up with it and not to mention in just one day my models looked a HIGH FIDELITY better in Unreal :D.
Love the lighting system in Unreal, so much more pretty and picks up astonishing detail that Unity just doesn’t because of the old Blinn-Phong PBR look.

C# and Java use similar syntax to C++, and broadly similar concepts, so you will find it familiar enough.

Where you will find differences is in the intricacies, particularly around things like pointers, memory allocation, use of arrays and so on. C++ holds your hand far less than C#, so it is far easier to create memory leaks or crash your program altogether. The UE4 API does have some built-in sanity checks and some abstraction for stuff like object creation and destruction so a lot of that stuff is taken care of for you. The rest will take some getting used to but not to a huge degree.

As far as blueprints go, everyone has a different approach. My way is to do all the low-level stuff in C++ and expose it in blueprints for quick and easy high-level scripting of gameplay. That way you can quickly play around with variables and mechanics without having to keep going back to the code and recompiling.

Going from C# to C++, it wouldn’t be the hardest thing you’ve ever done. If programming was swimming, you’ve been doing backstroke while others here have been doing freestyle.

Bruno is on the money in that choice between BP, C++ or a mix will likely come down to you. We can’t make your mind up for you.

BP are good for simple things, for more complex its looks like spaghetti. For artist-minded people maybe its clear and readable, but i.e for me BP are so much harder to read and understand than couple of C++ code lines.

I allways start with blueprint for the prototype, and when it starts becoming complicated i pass things to C++. Most of the time i also tend to write “framework” part in C++, and then use the functions and events ive defined in C++ from blueprint, so everything its easily modificable.

Don’t I know you from Unity forums?

Yes. Macro preprocessor, manual resource menagement. Concepts like RAII don’t exist in C#, there’s no multiple inheritance in C#, no protected inheritance or friends, templates are more complex and more powerful than generics, etc. Looks very similar on the on the surface, till you dig deeper, then there’s little in common.

UE4 does decent job of making things simpler (by introducing limited garbage collection for objects of specific ).
So, while as a language C++ is significantly more complex than C#, you should be able to get by with C# skills for the purposes of using UE4 only, because UE4 has made some extensions for the language, and attempts to simplify things.

If you ever dare to go pure C++ route (not just for UE4, but general-purpose programming), however, C# skills probably aren’t gonna cut it.

They aren’t exactly SLOWER, but they’re geared towards non-programmers, pretty much.
If you’re already an experienced programmer, there’s chance that you’ll hate them.

Theoretically, yes, but it will be a major pain. Kinda like writing a game engine in brainf*** (there’s language like that). There are pieces of code you really want in C++.

Since you appear to be someone I met on unity forums…

Your main problem will be inferior animation retargeting system (there’s no Mecanim for UE4), and very different object hierarchy. Engine also cause you loads of grief if you try to use root motion-based movement for locomotion, unity style.
Unity object hiearchy is significantly simpler to start working with. In UE4, something like “let’s spawn object in content browser” or “let’s generate a mesh” can be very difficult. Documentation is also very scarce. A lot of time you’re hunting for pieces of the information with google, digging through forums and answerhub, followed by dive in the source code.

Being a programmer I would say that if anybody has experience in any object-oriented language , then he/she can switch to other languages quite easily with little effort and time.

BP is good for small tasks like opening a door when the character enters a trigger area.
For complex mechanisms BP becomes hard to read with too many nodes, while you can write faster the same implementation in C++ , and it will be more easy to read.

That’s not true and usually when people say this they tend to overlook lots of aspects of the language. You’ll be able to write messy code, but languages have their own quirks, gotchas and practices, and you have to be aware of those. Becoming aware of those requires experience with the language. For example, if you try to program C#-style in C++ that’s not gonna work well. It’ll be the same thing as “I can program in any language as it was FORTRAN” all over again.

I know more than 10 langs? xD maybe more than 20… well, I think the major problem in any system is to learn the system and be able to use it, at the end is a tool you need to learn.

hahaha, Im having little problems with a board Im trying to generate from a mesh xD … lol… but the thing is, I will continue trying and understanding, or if I give up I could ask here.

By the way, to contribute… you could use C++ base and make blueprints from there as base, so you can use C++ as base and let the nice things of blueprints to blueprints (like for designers).

use both where they are best.