How much studying should I do regarding C++?

I’m a CS graduate and I have created 2 games in Unity (a short FPS game and a mobile game). I’ve decided to transition to Unreal because of the amazing graphics it has, giving more potential than Unity but decided to stick with Unity because it’s really difficult to find a game company in my country that utilizes UE4 over Unity that hires entry level devs.

I’m not really good but I’m fairly familiar with basic C programming (pointers, stacks, queues, etc)
I know both Java and C# (i love oop)

I’ve researched a little bit and a lot of people are saying that you can even create a game using only blueprints but from my experience with AI and other complex stuff in Unity, I have a feeling that blueprints alone won’t do it in the long run and that I will eventually encounter problems that would require intensive coding (probably optimization)

Entry level in the industry is going to require C++ (unless you’re in mobile or tools in which case C# or Unity might be enough).

If your goal is to get in the industry, you might as well jump in the C++ deep end and start cutting your teeth on it. There’s tons of C++ tutorials out there (for UE4 and in general), try making your short FPS game entirely in C++ in UE as a start.

Like struptputuptut (i don´t remember the name) said

C is like you make a little shoot on your feet where easely can get your feet shooted …
C++ is like you fire a cannon on your feet but you can´t aim so well, so it is hard, but once you get your feet reached by the fire, you can destroy the whole leg.

or something like that

By the way… there must to be a separated forum for people comming from Unity.

Stroustrup

Nailed it.

When you know C, C++ is basically C with OOP, so it shouldn’t be too hard to learn. Just watch some C++ tutorials I would say, get one good reference book (Stroustrup is really good but not the most entrance friendly one) and then jump into the cold water and just play along with some tutorial series that feature engine topics. :slight_smile:

I have this, all 1000 pages and that is edition 3. I kind of see is as a book “made by a compiler for a compiler”. Totally tongue and cheek of course!

Seriously, once you have got the basics, things like More Effective C++, code complete and other good practice books are a must to truly realise the power of C++. You can probably stay away from templates and exception handling for a bit.

Something like https://www.edx.org/course/introduction-c-microsoft-dev210x-4 might be useful, it can be done free and it starts online in a few days time.

Thank you all for the tips! Why did you say that I can stay away from templates (i haven’t studied it yet)? I see a lot of templates together with some code I haven’t studied yet (e.g. UCLASS, UPROPERTY, what are these btw?) in the UE4 documentation so I assume that templates are used in UE4 a lot.

What about RAII? I’m seeing a lot of devs talk about RAII when it comes to C++, is it significant and used commonly in UE4 or does UE4 have some kind of class that takes care of the smart pointer related tasks?

This post was on topic at first, but I added some additional tips since they might be useful.

C++ within UE4 is obviously the same language as regular C++, but the frameworks and libraries tighten things up to the point that, since you already have a CS background, doing non-UE practice problems might not be the best use of your time. (Since you won’t be practicing with the libraries that you’ll actually use.)

UCLASS and UPROPERTY, among other things, come from the reflection system. Read up on it, it isn’t too crazy concept-wise, and it makes communication between the engine and C++ run smoothly (and you can sometimes leverage it for neat things).

UE4 has it’s own smart pointers which you may or may not use often, depending on what type of code you’re writing.

UMG is the graphical tool that lets you do drag-and-drop UI work. It’s backed by a C++ framework called Slate. If you ever need to do custom UI, you’ll probably have to sink a good deal of time into figuring out how Slate interacts with UMG. The source code is a life saver for this.

Speaking of the source code, make sure you get added to the Github and use it frequently. With Slate buttons for example, if you got stuck, you could just use Github’s “Find File” feature and look at how things are implemented in the SButton class. Between this and the API reference page, you could solve a lot of problems on your own.

Whatever you can’t figure out, that’s what these forums and the AnswerHub are for.

Unreal isn’t exactly plain C++. If you know C# already then C++ in UE4 is just a C# with pointers and a ton of Macros; learn how to deal with pointers/references and the UPROPERTY API then all the rest is a matter of experiencing trial and error.

Well, this field is more computer science related it goes more into just a language to tell you the truth. If you like what your doing always give it your all.

Thank you all for the tips. I have touched blueprints so far and only a few peeks on C++ codes. I guess I’m just having a hard time since the UE4 tutorials are mostly on blueprints and the C++ ones are either games with documentations (shooter tutorial, survival shooter, etc) instead of a full tutorial built from scratch compared to Unity’s tutorials which kinda teaches you C# without studying it since the videos create the code from scratch. Oh well, I kinda predicted UE4 to have a steeper learning curve so thanks again guys!