If C# is what you want to learn … then Unity would be the engine for you. Personally I think you will get more mileage with C++ and UE4 … because you have the flexibility of Blueprints and the power of C++. If you plan on making a career as a game developer … you will get more opportunities with C++ than you will with C#.
I know Java and C# and C++ … I have been coding professionally for 19 years now … this has been my experience. 8-}
Agree. If you learn C++ first, then the other two will follow and feel more like little brothers / simpler flavors. Its been said that M$ created .Net / CLR / C# etc because they were secretly jealous of the success of Java, and now they want to revert back! Normally learning C++ is intimidating for modelers, and it is if you’re stuck in a gutter debugging obscure API’s, but UE4 C++ is much more highly abstracted, so its easier, or feels easier at least. Unfortunately, you still must learn the components of Epic’s engine, whereas in Unity, there wasn’t much of an object model to learn IIRC…
From what you’ve said, I would suggest that you learn Blueprints. There’s very little you can’t do with Blueprints, and if you get to a point where you feel you need C++ for something, you’ll have a good grasp on a lot of the fundamental concepts from having learned Blueprint and will really only need to learn syntax and things like memory management that Blueprint users are shielded from.
The concepts are hard, syntax is easy. If you’re a visual thinker, use Blueprint to learn the fundamentals and worry about C++ later, if you need to.
It is a little … but it still gives some valuable insight on how to get things going and some of the basics needed to get them going. I see it more of a gap filler between learning Blueprints and then wanting to get your hands dirty with UE4 C++.
It isn’t too much effort to bring the content in the book up to 4.7.6 or 4.8 … and I found it made me think about things more as I was trying to find the right objects to use. 8-}