
This book examines the entire game development process and the unique challenges associated with creating a game. An introduction to game architecture, it explores the major subsystems of modern game engines and professional techniques used in actual games.
[0] https://www.amazon.com/Game-Coding-Complete-Fourth-McShaffry...
"Game Coding Complete 5" also talks about moderately large scale C++ high-level design. Of course, it's focused on games, but unlike other game programming books, it deals with things like dependency inversion, abstracting away the framework, data-driven architectures, etc.
It's surprisingly hard to find books talking about high-level software architecture ; Amazon is flooded with technology-specific books (things like "Learn <insert framework name> in 7 days", whose lifetime is so short, you wonder, why write a book about this in the first place).
The Game Programming Gems series has a wonderful variety of articles, and even though many of the graphics tricks are no longer super useful the software engineering and exposure to how other people think about systems is very useful.
The O'Reily Physics for Game Developers is kind of lacking--it's more a cookbook than anything else; the Eberly books are a much better use of time, and actually explore the math much better.
Computational Geometry in C by O'Rourke is wonderful, but a bit academic for almost any game development purposes.
Geometric Tools for Computer Graphics has a permanent place on my desk, and was very useful when doing graphics work as well as CAD software stuff. It actually bothers with some of the rigor of the linear algebra you'll use in graphics. Not listed but An Integrated Introduction to Computer Graphics and Geometric Modeling by Goldman does a superb job of the mathematics behind projective geometry for graphics, and is probably one of the best ways I've ever read for getting the real reason why we do the math we do. He's referenced in the Geometric Tools book.
Write Portable Code has some great insights, but if you've had to deal with cross-platform code for more than a couple of years you probably won't find too much new. For a beginner it's invaluable.
CLRS Introduction to Algorithms is very cool and all, but as Johnathon Blow pointed out in a talk the fact is that for game development you are better off using the dumbest, most straight-forward data structures you can. There are a lot of great things in there, but the sort of workhorse stuff you'll use in games (BSPs, quad- or octrees, hash tables, A-star, etc.) is either already made for you or is better covered elsewhere. Looks impressive on the bookshelf though.
AI Game Development was a very long, very interesting read, but tended to be somewhat academic. Programming Believable Characters For Computer Games is much better from a practical standpoint, surveying a large number of AI techniques and the implementation of examples for each one (very much a sort of "Seven AI Architectures in Seven Weeks" kind of affair).
~
Not on the list, but two I'd really recommend:
Game Scripting Mastery by Varanese is basically "Compiler and Interpreter Design and Implementation for High Schoolers". It's a massive tome, and covers both Lua integration and then rolling a scripting engine from scratch (lex and yacc and all).
Game Coding Complete by McShaffry is utterly fantastic. Another tome (just shy of 1000 pages), it goes over how to structure a game, covering a lot of important but banal stuff like resource management and passing Microsoft Windows certifications and project management and the like. It's also written in a very entertaining manner, and has lots of helpful anecdotes about why things should be done a particular way--often by counterexample of what happens when they weren't.
~
In general, the various Gems series are all worth reading. Morgan Kaufmann does a pretty solid job, and tends to have a lot of math (if that's your thing). Charles River Media is mostly good.
Premier Press Game Development varies widely in quality--some of the books are amazing, many are meh, some are garbage.
An older book like Eberly's 3D Game Engine Design was more a loosely knit compendium of theory and algorithms. Eberly's more recent 3D Game Engine Architecture is closer to Gregory's in intent. Unfortunately, it's more a reflection of the idiosyncrasies of the author and his personal code base than an investigation of game engines as developed and used in the industry.
I've also heard good things about Mike McShaffry's Game Coding Complete. McShaffry is a game industry veteran, so he knows what he's talking about. However, it seems to be targeted at rank beginners, so a lot of the material might not be very useful to you.
Below that tier, of course, you have an endless array of how-to books written by incompetents. The worst is the "here's my shitty homebrewed codebase" variety.
For rendering in games, you'll need a separate book. Real-Time Rendering is the canonical reference. The first and second editions were my favorites. The third edition added a lot of information on recent techniques but at the expense of reading too much like an annotated bibliography, skating from topic to topic while rarely going into enough detail to be useful and often listing several alternative solutions to a given problem without comparing their relative merits and trade-offs. The first editions flowed more like textbooks and were thus better suited as introductions. Some of that might be hindsight bias on my part; I'm curious what others think who first learned the subject from the third edition.
I also want to give a shout-out to Christer Ericson's Real-Time Collision Detection book. It's full of clear explanations and practical, hard-earned knowledge that you can't get anywhere else. Plus, the accompanying code is robust and well written, a far cry from the usual crap that either straight-up doesn't work or is inextricably entangled with a massive code base (I'm looking at you, Eberly!).
After those two I would consider what gaming topics you want to investigate further(rendering, collision, AI, etc.), and start specializing your search.
