[=;19168]
Another point I’d add is that writing Actor classes and gameplay in Unreal C++ does not force you into the esoteric and complex parts of the language. The frameworks they provide do the heavily lifting. Most of the code you need to write for gameplay in UE4 will be very straightforward C++, and all of the “hard to do things” are managed for you by the engine. It’s actually a great environment to learn the C++ language.
[/]
As someone who teaches people how to program, specifically games, I have struggled with this for a while. I have been asked dozens of times if Unity was a good way to learn to program. Should I learn to program then learn Unity, or should I learn to program while learning Unity? The same applies to Unreal Engine, and after all this time I dont have a good answer.
I can see merits both ways. One of the things that make learning easier is being hands on. If I could go back in time and learn 12th year math knowing it was directly applicable to game programming, I would have groked Matrix math, translations, etc… a heck of a lot easier. Learning something as a completely abstract concept is never easy.
On the other hand, without a foundation you are basically just putting magic numbers into a text file. How much of this is actually learning? I remember wayyyyy back, I used to enter page after page of basically binary code printed in a magazine to create a game. Did I learn anything in this exercise? Other than how to type, not really.
Learning with UE first would present some fairly interesting learning problems. First C++ syntax is a bit unwieldy to start with… without learning from scratch, its going to be pretty daunting. Templating syntax for example, isn’t going to make any ****** sense until you know what a template is and what problem they solve. Then there are macros… a powerful feature of C++, and something UE relies on heavily, but also something that should be avoided like the plague while a learner.
I think in the end, my recommendation for people starting with C++ and UE4 is the same as people starting with Unity + C#. Start with the language basics, run through a beginner book and make the obligatory console apps, then try picking up UE4.