Hello, want some advice on how to start.

Hello everyone, first I wanna tell everyone that i’m excited to be inside the community after my subscription to ue4. Because I was shocked to see the number of the examples and documentations for an engine like this, and how cute this engine actually is. I am an intermediate programmer, i know how a programmer think (you know the basic algorithms), I’ve been coding in Unity javascript for almost 3 years and switched to c# for like 6 months. But now, I wanted to learn UE4, and switched all my cards, I started learning C++ in ue4 by watching the tutorials given by Epic Games on Youtube (Unreal Engine Channel) . But I have to admit that, I didn’t understand most of the things, actually I understand but if you tell me to do the same things that I watched in the video, with no help, even forget about the syntax I won’t be able to do that because I’m actually not familiar with the logic and structure of C++.

Here comes my question, I have read some other topics about this but still wasn’t able to decide.
Should I start learning C++ natively, from the platforms like learncpp, or should I directly go with the UE4 and look up for tutorials, examine examples ? Will i be able to understand the logic behind C++ if I study on UE4 and will i get used to it easily ? I am really confused about this, one part of me says take your time and start learning it natively, when you go for the ue4 you will be all buckled up and ready. The other part of me says " do not waste your time learn it on UE4 like you did to c# and javascript in unity. You will learn it eventually." What you guys say, help me out of this.

Welcome to the community!
I’d say get going with some basics on a dedicated platform and then switch to UE soon after that. But I don’t have that much experience, mostly writing to bump the thread since it have been pushed down to page 11 by black magic specialists and other cool stuff from India.

Hi lineupthesky, welcome to the fun house.

I want to answer your question in two different ways, so forgive me if the first part sounds a little preachy.

First and foremost, pick a language you like and learn it, really learn it. If you’ve got 3 years in with Javascript you should have a pretty solid understanding of it, and other languages (besides their nuances, which C++ has it’s fair share of, but so does javascript) will come pretty easily. The key here is to learn at least one programming language very intimately. Once you do, once you can solve any problem you face (realistically) in your language of choice, you’ve got a really solid foundation that’s going to help you no matter what language you end up using for whatever project you end up doing, whether it’s tomorrow, a week from now or in a few years. If you’d like a simple language to learn, my advice for beginners is ALWAYS Python. Some people will disagree, many people have their own feelings - but it’s a very simple to understand and very powerful language, with lots of tutorials, online learning, many many modules and packages etc.

Although I started with C++ (it was the only language taught at the school I first programmed at, when I first programmed) I would never recommend it for a beginner. The problem with C++ is, at a very basic level, there are a whole lot of gotchas that the uninitiated will find themselves stumbling into. Things like memory management can also be a pain if you’re not familiar with it. With that being said I would also never say C++ isn’t worth learning. It’s a very dominant language in many industries (I think most people would agree it is definitely the dominant language in gaming, and has been for quite a while and thus probably will be for a while.) But don’t rush yourself, if you wait until you master C++ before you really start working on your game, well, it’s gonna be a while.

So my second answer to your question is, you don’t need to learn C++ at all. Don’t undersell Blueprints, it is very powerful and there are already a lot of tutorials. Check out the blueprint subforum, some of the really interesting threads like Edge Grabbing or some of the Map Generation threads. Blueprints is powerful, and if you have a basic understanding of most programming concepts - blueprints should be second nature for you, regardless of what language you’re coming from. If you ever run into something you can’t do in Blueprints, you can solve that problem in C++ without having to have your whole project in it. In fact, personally my workflow right now is basically prototyping the idea in blueprints, if I think it’s going to be a performance problem I might move it to C++, but honestly I haven’t run into that yet. I’ve been employed as a developer (a C++ developer coincidentally) for the majority of my professional life, and yet currently 100% of my project is blueprints. It’s that effective and easy.

So to sum it up and combine the two, I say disconnect the two goals (making a game and learning C++.) You can work on your game in Blueprints all day long, and when you take breaks or want to relax you can run through C++ tutorials or elearning at your own pace and completely separate of your work on your game(s). A lot of concepts in gaming (like 3d math, and working with things like directx) are a pain in the butt if you know what you’re doing, they’re not really conducive in my opinion to learning a language. You will do much better (again, obviously this is my opinion) if you don’t try to apply those things until after you already understand the language. Basically don’t try to learn too many things at once, you’ll move too fast and end up confusing yourself and getting bogged down or disappointed.

Finally, this is the best community for a game engine I’ve been a part of. It rivals Ogre3D back in the day, I like it more than Unity’s community, or CryEngines. You have so many resources available to you, the Epic tutorials, other tutorials by users in this forum (look around, again for example the blueprint section, or rendering or content - people post ‘tutorials’ of how they figured something out basically every day), the wiki, the UE AnswerHub. The community here is great, everyone wants to help you and everyone wants you to succeed. If this is what you want to do, you’ve already surrounded yourself with people who want you to achieve your goals too, it’s a healthy place to learn and move forward. Start today, if you get stuck ask for help - I could practically guarantee you someone will help, one of your peers here, one of the Epic devs - someone. The support here is unmatched in my experience.

Best of luck!

Thanks for your replies guys ! Then I think I will stick with Blueprint for now, if i got any problem, i’ll switch to c++ and i think there will be lots of tutorials and answers for the problems i might face. On the other hand in my free times i probably will improve myself on C++ on a compiler like devC. Again, thanks !
And if there is anyone out there had the time that was hard to decide when beginning, i’d like to hear how did you guys overcome this problem.

First, you should ask yourself what platform you wish to target. If it is PC, you are good to go. If it is iOS, you might want to look at the iOS section to see what the problems are first. If you are targeting Android – don’t bother. It simply doesn’t work well enough yet to actually sell.

I target PC, i really messed with Android while I was working with Unity and no, mobile phone hardware is not my type i got that.