If I read C++ books will I improve my understanding of Blueprints?

Hi,

I got some books about programming in C++. I’ll start reading them after I finish a big book about modeling in Blender.

Right now I don’t have the required time to code or doing programming exercises, I will read the books out of curiosity just for fun.

But I use blueprints a lot and sometimes I get stuck because of my lack of programming skills.

Will learning about C++ help me to understand Blueprints better?

Thanks.

Well yes… learning C++ or any other similar language is surely going to help since blueprints is still programming.
I already knew some unrealscript and some C++ before I got into UE4 and learning blueprints was really easy to understand.

But practice is the way to go though, don’t just read but write code… it might be just me but books didn’t got me very far… it was when I started to actively writing my own code every day little by little and modify existing code that I actually started learning.

A generic C++ book however might have some useless information that you might not need to ever know to be able to program in UE4.
If you want to learn C++ just so that you can understand blueprints better, then I think that would be a waste of time… it should be better to simply focus on blueprints or learn a more simple language like Java or C#.

If you want to seriously get into programming in UE4 then definitely get into C++ since sooner or later will find a lot of limitations in blueprints (plus you will be able to make your own blueprint nodes if you need to).

Well, to be honest, I’ve been dealing with OO programming languages for 3 years, and C++ itself for 2 months, and when I look at C++ in UE4, I have absolutely no idea what is going on.

And reading for fun probably isn’t enough, sure you can read, but you’ve got to code as well. Just like you wouldn’t want to learn to read German but never speak it.

I’ll be more specific using one of my projects as an example.

Quake is one of my favorite games of all time and I want to make a remake for various reasons, one being that I’m aware that the best way of learning is practicing, so I figured that practicing with something I love would give me enough motivation to not give up when I find a problem.

I think I can replicate almost everything in that game using blueprints except player movement AKA bunny hopping. Then I remembered that the source code is available but when I read it was like trying to read Chinese.

What I want is to have enough knowledge of the terminology to be able to read code and then find a way to apply the same logic using blueprints.

I’d say that learning C++ and in general learning to code is a skill that will absolutely help if you are working with blueprints. I get to see blueprint code that no sane programmer would write in a normal programming language. It’s really easy to miss stuff while working on blueprints and even easier to write veeery slow and inefficient code that could easily bog down a game. So learning a programming language (not especially C++, could be something easier and higher-level too, I’d say) will help you acquire the mindset for efficient and well written BP code and will give you the ability to understand and write more complex algorithms.
Of course that doesn’t mean that by reading a C++ book you’ll be able to hop on UE4’s C++ code easily. I just say that by acquiring the correct programming mindset will clear up a lot of stuff!

btw, are you planning C++ to be your first touch with programming? Because learning a higher-level language like python could be a nice stepping stone for learning C++

I agree with Semitable, about learning a higher-level language. If you don’t already know any c++ or other programming languages, you will be having a very rough time with C++, I learned AS3 (the language that flash games are made in) 2 years ago and now consider myself fluent as far as making any sort of mobile app/game goes, and it wasn’t too bad, but once I started C++ it wasn’t too hard either because of my prior coding experience. In fact, during the past 2 hours I started another app in AS3, and am just about done & ready to publish it. Personally I don’t think that C++ will necessarily help with BP, but definitely with logic of “how things work”, because C++ is all about the flow, creating new functions, defining things, and even in Blueprints I feel like I am always working backwards because of the way that the math & flow order is.

I agree with this part right here. Learning C++ in itself will not show you how to get better with Blueprints because they are still two different languages in a sense; although you should still learn other coding languages regardless. If Blueprints limits you in some way then knowing C++ or other languages will allow you to overcome the Blueprint limitations :D. However, you will understand the logic and flow Blueprints uses because C++ is all about flow, creating new functions and defining like Jamendxman3.

I guess in a way yes you will have a better understanding of Blueprints, but not in the sense of knowing what nodes/code to use, etc.

I have Python learning material too. Many people recommended me this http://learnpythonthehardway.org/

As far as I know the book/videos are designed to learn to code by writing code, it’s very practical.

I’m very pragmatic and objective oriented, I chose the languages I know I can make use of, right know my top 3 would be Python, Ruby and C++.

If it’s about the logic and flow then, do you think Python would be a better idea?

So what’s exactly your objective? If it’s about learning programming in the general way Python would help you understand the flow of things. You will be able to understand and write simple and more complex code, and with a little practice, writing correctly structured BPs with efficient and readable code.

Now learning C++ is usually the next step. C++ will make you think about the data structures to use (and probably make you implement them by your own), implement algorithms on a low-level where detail will be important and in general it will be much harder. But this will teach you how things work internally (something you don’t do in Python where lists, dictionaries and much more are already implemented for you, and libraries exist for almost everything). Any serious programmer (or computer scientist in general) should have a deep understanding of data structures, algorithms, algorithm analysis and all the low-level stuff. But UE4 already implements most low-level stuff for you so if your goal is learning BPs and not getting deeper in the engine (or working as a programmer) you might be able to skip that at least for the beginning.

Short term my objective is to be able to read and understand already written code and translate it into Blueprints.

OK I’ll start with Python and see what happens, thank you all for your comments you’ve been very helpful.