I’ve got a bunch of students who are new to UE4 and are trying to get to grips with the engine (using C++ and a little bit of blueprint) and I thought it might be a good idea to ask you guys what you learnt first that was most useful to you to get going on your games. So any insights from the C++ side of things you can share, please do! Assume that they understand C++ already, but have no experience with UE4.
A lot of people start using Blueprints first, as it provides them with an easy way to create things (and that’s the fun part) with much less crashing (the sad part :() while giving them a good understanding of how the Game Development/Unreal process while actually producing something which you can then learn the equivalent using C++ with a little research. If you right-click a node in Blueprint, most of them have an option to open the C++ class that contains that blueprint function, so you can read how it’s done too.
Others, and partially myself, started by downloading the Examples you can find in the Learn Tab of the launcher, such as the Shooter Game Example which has C++ code access with it. So you download the game, play it, then open the source and begin taking a look at how they did it. From there you can build off of it while having a fun “core” experience pre-built for you that you can modify and play around fairly quickly.
I agree with IrishKilter; even if you have a strong background with C++ it is very helpful to make a complete game project entirely in Blueprints. Often times you’ll find that all the types you need are already built-in to the engine, such as linked lists and state machines, and without learning that they’re there in Blueprints you’d have no idea where to look. This is crucial because I see a lot of new UE4 C++ programmers reinventing the wheel, or using types that aren’t optimized for UE4 like std::vector.
Additionally, there is a far greater knowledge base for solutions online to common Blueprint implementations, so the ability to translate from Blueprint to C++ is incredibly useful.
I started learning UE4 with a hybrid of C++ and Blueprint, Blueprinting new features onto one of the C++ templates until I liked them, then implementing in C++. It’s also very good for your workflow because you can change large features like function/class behavior in blueprints, and then when you port to C++ you can leave hooks and blueprint-visible members in your C++ classes to change constants and minor features for your more finalized game. However, I came into UE4 with UDK and Unrealscript experience in addition to C++ understanding, so I kind of knew what I was looking for when I wanted to create functionality in my game.
Good luck, and I’m glad to see educators using UE4. Students can glean a good bit of information from game development in this engine.
half a year ago I gave the following hints at another engine’s forum, when I had a little insight into UE4:
what I also did is running through the most important engine class headers, what is for what and how they work together (gamemode, controller, player controller, ai controller, actor, pawn, character, navmesh etc.), but now the documentation is much better…
Once you’ve learnt blueprints inside the editor (which really is like two days tops to try everything), start *making *blueprints in C++. Don’t dive out into raw C++ for a little while, stay with blueprint classes and you’ll learn how to do things the right way from the word go. It really helps to learn how UE connects the dots before you go connecting your own dots, if that makes any sense.
Yeah… dont skip blueprint at all even if yo are planning to learn ONLY c++ - heck, be a master of it because you will learn a lot about how things intertwined each other. Blueprint also is a lot easier to learn, even though sometimes, it may seem like primary school toy. And also, learn how to use the editor as well.
I might have gone against the prevailing wisdom in this thread, but I have utterly ignored blueprints, and intend to keep utterly ignoring them until I finish my project :p. I came from a strong C++ background, and blueprints seemed unbearably limiting, not to mention highly cumbersome for anything that wasn’t fairly trivial anyway. I can’t even imagine doing the things I’m doing in C++, with blueprints. So I just dove into the C++ API, trying to discover the most important classes first, such as the AActor, and branched out from there. I started perusing the high level class descriptions and made myself some notes on what they were supposed to be for, and then read over the (somewhat cursory, but still useful) descriptions in the online docs.
That let me start prototyping ideas in a throw-away sandbox, and from there, I could start doing “real” things.