As a game developer, you never stop learning. Almost every day, you learn something new from a colleague or from yourself. This is what makes being a game developer the best job in the world. You can also learn a lot outside of the workplace by reading. The following books have changed me as a game developer, and I highly recommend them.
While not a technical book, there’s a lot to learn from Masters of Doom – a book that follows the early history of iD Software and its founders. Its interesting reading about John Carmack and John Romero and how their brilliance helped transformed the game industry into what it is today. It’s also quite entertaining reading about parts of the industry that haven’t changed, like bad eating habits, immature jokes and unavoidable “crunch time”. Since it’s a book about two of the most successful game developers in the industry, it’s a great motivational book as well.
I feel as if Algorithms are often overlooked in the Game Industry. Game developers tend to know what operations are slow and how to write efficiently – but few can prove why one algorithm is faster than another. Knuth’s book is the cornerstone of most Computer Science programs and it does an excellent job teaching Algorithm analysis. Some of the reading is very difficult, especially by the end of the book, but the early chapters are priceless.
If you were to take Knuth’s The Art of Computer Programming and tailor it specifically for game developers, then you would have Data Structures and Algorithms for Game Developers. Allen Sherrod focuses on data structures and algorithms that game developers use often. From front to back, the book is easy to understand and the code examples are in C++, which gives this book an advantage over Knuth’s.
This is an interesting book because it’s written in a very unique way. Each topic is presented as a code example that has an issue, followed by a solution to that issue. You read the book as if you were debugging the code in it. Each topic is a puzzle that needs to be solved. This approach improves your debugging skills, while teaching you some of the nuances of the C++ language. Considering debugging is large part of any game developers life, this book can have a huge impact on your productivity
I can’t recommend a book more highly than Effective C++. Its a must read for any C++ programmer and it will change you as a game developer. The book covers many of the tricky aspects of the C++ specification and leaves you with a much better understanding of the compiler. The book is definitely not an entry level C++ textbook, it’s geared for programmers already familiar with and able to write C++. It covers a lot of obscure topics, like Unspecified vs Undefined behavior, Translation units and RAII. Although the topics covered are advanced, the book is very easy read and straight to the point. This book does a great job teaching you to write cleaner, faster, safer C++ code and there’s no other book like it. It’s a must read for anyone who takes C++ seriously.