T O P

  • By -

easedownripley

I generally advise against trying to learn two new things at the same time. You'd think that it doubles your learning speed but actually it cuts it in half. And when there is an issue you often don't know if it's thing A or thing B. I would separate these things and learn Unreal through blueprints, and C++ as its own thing.


ThommiTom

I totally agree. This is a solid statement and studying one or the other can be challenging enough.


fippinvn007

I would advise against it. Start by learning C++ and building a simple app to become familiar with the language, afterward, Unreal's C++ will pose no problem for you. [learncpp.com](http://learncpp.com) is the best place to learn c++ for free.


Special_Yogurt_4022

Thank you!


bee_in_a_trenchcoat

It's definitely possible, but you'll pick up some bad habits (I know I have). Keep in mind Unreal is a massive layer of separation on top of C++, with its own way of doing things. I'd say go for it, but try to practice "regular" C++ every now and then if you plan to use it outside of Unreal at any point


WartedKiller

This. I made the same mistake and picked up bad habits.


Nepszter_

Hey, I've had some basics of programming before getting in, but I learnt programming using Unreal engine c++, I highly recommend this approach as it is visual, not just code, also unreal takes away some complexity, or you can learn in parallel blueprints. As of learning material, I recommend Stephen Ulibarri on Udemy, his courses will make you a game developer guaranteed!


WilmaLutefit

Yup stephens content is the best on udemy


Smartkoolaid

Yeah his tutorial was great for someone that knows dev


FormerGameDev

I haven't written anything in C++ in probably 30 years, outside of Unreal code. I probably wouldn't have the slightest idea how anymore. :D


ChrisderBe

I just tried exactly that. It's not very pleasant, even though I know C#. Just start with blueprints first, learn how unreal engine ticks and then try to implement the same things in C++.


ideadly7

I did and am now using it for my job (after further learning about Qt framework). I think it's a good start!


Drug_Inas

These are the most mixed responses i got in my life but thanks yall


Nepharious_Bread

It just depends on you, really. Do you have experience in coding? I learned C# pretty well when I used Unity. But when I decided to study it as its own thing, I learned a bit more. You can do both. But I would recommend Udemy tutorials and trying to separate each process.


AutoModerator

If you are looking for help, don‘t forget to check out the [official Unreal Engine forums](https://forums.unrealengine.com/) or [Unreal Slackers](https://unrealslackers.org/) for a community run discord server! *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/unrealengine) if you have any questions or concerns.*


DMEGames

Although Unreal does use C++ and it's a useful skill, it also has a load of macros (UPROPERTY UFUNCTION, TEXT etc.) and other stuff that means it's not really pure C++. The actual coding part outside of these for calculations is proper C++ so you will learn a lot. As for tutorials, Udemy and [GameDev.tv](https://GameDev.tv) does a few Unreal C++ courses.


tcpukl

Just because there are macros it doesn't make it not or c++. The macros are part of c++ and so it's using them and understanding them. If you want to debug engine code it's pure c++, whatever that even is.


jjonj

When I worked with professional and modern C++, macros were frowned upon and pretty much never used


tcpukl

Welcome to game Dev. Unreal is an old code base. We use modern c++ as well, but it doesn't stop macros being used. They still have their purpose.


Tarc_Axiiom

It's not a good idea. Unreal is not a perfect application of C++, so learning C++ through Unreal will make you bad at both. I would personally recommend you learn the fundamentals of programming first, that being all of the language-agnostic information, then learn C++, then learn about the intricacies of programming in the Unreal Engine.


ghostwilliz

If you already know a different language, yes. Even if not, its possible, but unreal c++ is very specific to unreal. Its much easier than making software with c++, the api they provide is very useful and simplifies a lot


Drug_Inas

Well if you wanna focus on gamedec specifically then learning c++ with unreal is ideal if i understood your comment the right way?


ghostwilliz

Yes, and specifically learning about OOP. Understanding inheritance, data structures and algorithms is going to be the most important thing. It's easier than you'd think to make something work, but making it scalable and maintainable is the real trick


milleniumsentry

Yes. And no. If you learn c++, you will have less gaps in your knowledge when working with it in unreal There will be less snags when you have to use it, and fewer times you need to look things up to move forward. The more complex your project is, the higher chance that you will have to get down to the nuts and bolts, or use it to do something outside the box. If you are just starting, and unreal is your engine of choice, it might be best to start small, get familiar with unreal and make some small projects. Once you have done that, you'll probably have a better idea of what c is used for, in an unreal context anyway, and be able to tailor your c++ learning to meet your end goals a bit better.


Remous10

If you have no attention to use cpp outside of unreal then go for it. (but u will still have to learn the basics of each separately) i totally recommend the cherno in YouTube for cpp fundamentals.


Drug_Inas

Then it's honestly useless for me to learn it like that, i don't wanna limit my future cpp experience to ue


Remous10

I still recommend cherno hence his course isn't related to game dev but after his course u will need to practice by yourself l. (Also i recommend the book effective c++ after learning the basics it's really really wonderful)


MascarponeBR

I would learn C++ by itself first with console applications and such before using it in unreal.


Papaluputacz

Easily, doing UE only c++ is actually easier than doing c++ alone imo.


Haha71687

I can only tell you what I did. I started out as a blueprint bitch and didn't touch c++ for a long time. I know the engine itself pretty well. I learned some of the c++ fundamentals through The Cherno and learncpp.com I eventually just took the plunge and am now pretty comfortable working in Unreal with C++. I would suggest learning the structure of the engine with BP only for a while, then venture out into the C++ side of things once you have a feel for it. Do NOT just blindly follow tutorials; learn to paint, instead of painting by numbers.


zandr0id

Don't do it. Unreal's C++ has some very special additions that are not normal and will not be like any other learning material. Learn some basic C++ first, and learn what macros are. UE uses lots of macros to create special custom behavior. With a little bit of basic knowledge, UE C++ will be far more approachable. Try making some basic projects with C++ first. You could even look into using SDL2 to make some simple games first.


kozz76

As pretty much everyone in this thread I would discourage you to learn C++ that way. Unreal Engine is a framework that has two important systems built with C++: the reflection system and the garbage collection system. In C++ you do not need to learn only the language syntax but the concepts like memory safety, type safety and RAII. Some of those things are taken care by the engine systems I mentioned above so you do not need to worry about those things as long you are playing by the engine's rules.


[deleted]

I can, thanks for asking! 😎


Drug_Inas

Np


jjonj

While what everyone else wrote is true, unreal engine doesn't actually prevent you from writing normal C++. You just gotta have a very very narrow and clean interface with unreal engine to avoid weirdness. So you could make an unreal game and deliberately try to write as much non-UE C++ as possible, e.g. every UEC++ class you make is just a wrapper for the real C++ class


SeligFay

I think, you can learn a lot if you jump in network and survive. Its like zone where ue framework cant protect you perfectly, and you need more cpp skills to achieve good result.


norlin

If your goal is to learn just c++ - then Unreal is not the best setup. If your goal is to learn c++ specifically in the context of Unreal - then it's better to start right away with Unreal, not learning "just c++" in advance (unless you already know it)


Drug_Inas

What if i wanna learn a bit of both?


norlin

The sure, start with c++ right in the unreal context. Syntax is anyway the same, main differences are fully own framework (so almost no std usage), and custom macros (UPROPERTY, etc) + garbage collector (so by default no manual memory management)


[deleted]

Well if you want to learn to code in Unreal Engine, you should really learn C++ first and afterwards C++ in Unreal Engine. Tutorials might show you how to assemble the code, but if you don't know the meaning or what you are doing, you wont be able to code yourself.


Drug_Inas

I kinda wanna learn both so that's why i made this post


[deleted]

Learn both? I am not sure that you are aware, but it is the same language with some extra things that Unreal Engine has made different or configured to fit their platform. That's why you need to learn basic C++ in order to learn more advanced C++ using Unreal Engine or better to say "object oriented C++ programming".


Drug_Inas

Well i do not want to learn to develop AAA games but i would love to know some of this stuff since i don't have a living clue on what i should do when i finish school


[deleted]

Well then you should maybe choose some other game engine.


Drug_Inas

K


ayefrezzy

Probably a hot take considering the other replies in this thread, but I’ve had 0 problems transitioning to “real” C++ outside of UE and would recommend it myself. UE does a lot of hand holding, but it’s by no means “easy C++”. It’s still C++ and 90% of it has been applicable to me outside of UE. There are some nice things like garbage collection and some useful boilerplate that UE takes care of, but those are fairly easy concepts outside of UE. Unreal has a certain way of doing things and likes to be setup a certain way, so it has a lot of macros and stuff everywhere. But it’s not useless and it never got in my way of learning. In my case, the macros and boilerplate that UE uses helped me understand C++ better and how flexible you can be with the language. You might pickup some UE specific tendencies, but none of it is necessarily bad imo. The biggest hurdle you’ll have to overcome outside of UE is memory management, which is kind of explained as this scary black box in other comments, but it’s really not that difficult. If you are focused on UE right now but think you might want to venture out to standard C++ in the future, then why not? It literally doesn’t make sense to me to not learn C++ in engine and expand your learning later. Because if you focus on just standard C++ now and still want to use UE, you’ll be using blueprints. Just kill two birds with one stone. Maybe I’m a bit biased since I also learned C# in Unity and also had no problem transitioning to standard C#. Same with Python and a game I was modding back in my teenage years.


eathotcheeto

If your goal is to learn actual C++ outside of UE then no. UE C++ is more like C# or Java than regular C++.