I felt very helpless and lost when I was learning Unreal Engine. I studied for a while, but now I feel like I know nothing. I learned some knowledge about Blueprint, but many people said that Blueprint has great limitations and if you only learn Blueprint, you will crash when making games. So I want to start with C++, because Blueprint is written in C++. Some people say that if you master C++, you can understand Blueprint without rigidly learning Blueprint, and you can combine Blueprint and C++ to truly master the programming aspects of Unreal Engine.But here comes the problem. I want to start with C++, and I am even more confused. I don’t know which parts of C++ are important for Unreal Engine. I learned pointers, functions, etc. on YouTube, but I can’t figure out what this has to do with Unreal Engine. I hope someone can tell me which part of C++ I should focus on?
Or tell me that maybe I shouldn’t start with C++ at all.
There are indeed certain stuff that cannot be done using blueprints, but not that much. Didn’t quite get what you meant by crashing tho It’s much more likely for you to make mistakes that’ll result in crashes while using C++ instead of blueprints. And no, your game won’t be unplayable or perform terrible just because it’s completely made using blueprints.
The sad thing is, nowadays it doesn’t matter much whether you write smart and efficient code. Just profile and see! Really, no matter how inefficient your code is, there’s barely any difference in performance. Just out of curiosity, one time I implemented pretty much the entire C++ code of a small project of mine in blueprints, and on top of that I purposefully made it very inefficient (in this case the the game logic was in focus) but even a 0.01ms difference wasn’t noticeable in the game thread! I figured there’d surely be a difference in a larger project, but mainly how you handle graphics & rendering affect performance. When it comes to the code, just be mindful of certain stuff, such as not calling costy functions every tick if not needed, not performing redundant casts, caching… but even if you don’t, you’ll likely won’t notice a difference in performance.
While knowing this, do I still over-optimize my code? Yes For me, spending double the time over-optimizing that I spend progressing is worth it. I feel better that way. Plus new challenges always help expand our skills & knowledge!
I don’t think learning C++ would help you learn blueprints faster by any means Contrary, if you don’t know any programming language at all however, I guess learning blueprints can help reduce the time you’ll spend learning C++. Additionally, blueprints are already pretty straightforward! Not sure if it’s because I already knew many programming languages including C++ before learning blueprints, but I believe learning blueprints should take no time for anyone. And nobody’s “mastering” C++ within a year. One who claims to have “mastered” C++ after working on it for 5 years or so won’t be taken seriously by anyone. Even actual programmers who have given over multiple decades into it don’t use the word “master”. Though it’s completely within reason to become proficient in C++ in a month if you spend about 5 hours a day almost every day and learn from someone who teaches it right. In blueprints, with same dedication, you can probably become proficient in a few days imo.
You can? It’s more like, you should! Many people make fun of blueprints but even tho I also prefer coding in C++ for the most part, here are the facts:
- You wouldn’t even debate on whether you should use C++ or blueprints if the objective is to make a game as fast as possible.
- It’s simply not smart to only use C++ for a normal project. Aside from instances where we’d prefer blueprints over C++, just like how there are things that cannot be done in blueprints where you’ll need to use C++, there are also tasks you must use blueprints for, e.g. anim blueprints.
Me personally, I’d recommend only using blueprints for a solo project that’s not gonna be published unless you’re testing with C++, since blueprints offer superior debugging process. However I’d recommend using C++ for more professional projects since it offers superior workflow while collaborating.
About Resources
You can check out the beginner C++ tutorials here:
Or this basic blueprint course here:
Hope these help!
Unreal offers documentation of their c++ API on the website, though it is very lengthy. Id start with developing a good understanding of c++ and object oriented programming. From there I prefer to search tutorials on creating specific functionality with unreal c++, as this will slowly teach you the intricacies of their engine. More than likely you won’t ever use the entirety of their classes and functionality, so while the documentation can be helpful sometimes, trying to study it all is in my opinion pointless. Blueprints will only slow things down, marginally, when playing in editor and compiling the game. When you actually build the game all of your BP get compiled into c++ and then to machine code, so in the end product there is hardly a difference in how you put it together.