
This book covers both the theory and practice of game engine software development, bringing together complete coverage of a wide range of topics. The concepts and techniques described are the actual ones used by real game studios like Electronic Arts and Naughty Dog. The examples are often grounded in specific technologies, but the discussion extends way beyond any particular engine or API. The references and citations make it a great jumping off point for those who wish to dig deeper into any particular aspect of the game development process. Intended as the text for a college level series in game programming, this book can also be used by amateur software engineers, hobbyists, self-taught game programmers, and existing members of the game industry. Junior game engineers can use it to solidify their understanding of game technology and engine architecture. Even senior engineers who specialize in one particular field of game development can benefit from the bigger picture presented in these pages.
A few years after getting that book, I started to work professionally with people building games, mostly white-labelled projects or contract work, which was the studio's bread and butter. But actually working with people developed my understanding of a) the relative value that artists, designers, and animators bring to the project, relative to my own set of skills and b) how to solve the sorts of problems that ship games. I am a programmer, and I use my programmer skills to give designers and artists what they ask for.
All of that to say: the best next step is working with folks, ideally some who have had experience. Book learning will only get you so far.
That being said, here are a few more books I have seen recommended in my sphere:
- The Timeless Way of Building by Christopher Alexander (this is not about games, but design generally)
- Finite and Infinite Games by James P. Carse
- Game Engine Architecture by Jason Gregory (this is a technical book about modern game engines)
Finally, Liz England (a designer who lowkey helped me not lose hope when I was breaking into the industry) has/had a blog where she talks about game design books. I cannot personally vouch for the titles, but I trust Liz England [1]
The first are books like Pragmatic Programmer, Mythical Man Month, Code Complete, Design Patterns, talks by Alan Kay on software systems and OOP, even Game Engine Architecture etc. A lot of the content there is distilled experience which is much faster to learn from a book than gain the hard way on the job.
The other books are practical deep dives. Here I would recommend a variety of books like Inside the Machine by Stokes, Computer Architecture by Hennessy, 21st Century C by Klemens, Crafting Interpreters by Nystrom, Compilers by Aho, Effective Java, Nature of Code by Shiffman, Ray Tracing Challenge by Buck, Hands on Hacking by Hickey, and others, depending on your interest and area of focus.
I've recently enjoyed Game Engine Architecture, mostly because there is an interesting mix using low level techniques to solve problems a normal application wouldn't be required to fix.
Game development in general is case for tuning yourself to when you should utilize high level programming techniques, and when required dropping into low level optimization to solve local problems.
there's a section on memory allocation patterns
i believe casey muratori talks about allocation patterns in the handmade hero video series, too
edit: ryan fleury has a talk: https://www.rfleury.com/p/enter-the-arena-talk
You don't need or want a service locator in most cases, but if you read a book like this you'll be trained that it's some necessary and integral part of game development. If you can figure out how to draw trees, you can also figure out how not to duplicate their mesh/texture 200 times with their "flyweight pattern". You almost certainly don't want a bytecode interpreter in your game. You shouldn't be thinking in terms of prototypes. The only useful "pattern" in the book is the singleton, and hedged with "Despite noble intentions, the Singleton pattern described by the Gang of Four usually does more harm than good.".
It teaches complete beginners to think incorrectly about how games should be developed, but it covers enough topics will entertain people. If you want a book, I would suggest "Game Engine Architecture" because it goes much more in depth on what actually goes into a game engine instead of abstract design patterns from textbooks that are somewhere between maliciously bad and incompetent.
And yes, Game Engine Architecture is definitely a much better reference to the core engine building business.
But games and gamedev these days is not about that as well. Most of the technical problems are solved by the big engine trio. So all devs do is game rules and logic scripting...