Game Programming Patterns by Robert Nystrom

A practical guide to software design patterns tailored to game development, explaining common solutions—such as game loop, state, component, event, command, object pool, flyweight, and visitor—and how they address performance, maintainability, and complexity in games. It uses clear examples and code to show when and how to apply each pattern, explores trade-offs and alternatives, and emphasizes concerns like data locality, object lifetime, decoupling, and real-world constraints of game systems.