Some Book Reference for Gameplay Programming in C++

Effective C++ is indeed a good book; the author Scott Meyers knows his stuff. I just want to state that generally you can’t know all of C++ just by reading one book, and the language has quite evolved since, the book linked above should cover C++03 I believe, and not C++11. And so new features added in C++11 which includes move semantics, lambdas, the new initialization forms and much more won’t be covered in that book, if you want to know C++ well then you should at least try to learn all that. Also knowing that lvalue and rvalues are not the only types of values in C++11 anymore, as is useful when it comes to knowing how to use move constructors which can save a lot of performance, lambdas are useful but mostly a syntactical , though it’s very useful when using the STL functions. For instance


    std::thread Thread{ ](void) -> void{
        // do something
    } };

is much more nicer than having to call a function that executes in the newly created thread. If you meant gameplay programming as I think you meant it, then I’d suggest to learn C++ first, read as much books as you can http://www.amazon.co.uk/Effective-Modern-Specific-Ways-Improve/dp/1491903996 that one is probably nice but I’ve never tried it, if you’re decent at C++ but want to be even better then read the C++ programming language, and just know that you can’t ever know everything as there’s always something new to learn, you’ll find that C++ supports a lot of features including type traits, auto type deduction and alternatives to macros, and of course a lot more!

Lastly knowing the architecture you’re targeting is generally good; since you said that’s not UE4 specific, then after knowing C++ well, perhaps you’d want to learn how your compiler transforms your code to x86 assembly (assuming you’re targetting the x86 architecture), how parameters are passed on the stack or to registers depending upon the calling convention, why local variables are uninitialized and why it’s bad to modify a string stored in .rodata. If you only want to learn C++ for UE4 then you can safely skip that and only learn the library provided by the engine. :slight_smile:

One more thing I’d like to add, knowing and being able to implement some algorithms is generally a good idea as it should help to think algorithmically.

Also best of luck!