The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exact problem. Based on years of experience in shipped AAA titles, this book collects proven patterns to untangle and optimize your game, organized as independent recipes so you can pick just the patterns you need.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
About the Author
Robert Nystrom has programmed professionally for twenty years, about half of which is in games. During his eight years at Electronic Arts, he worked on behemoths like Madden and smaller titles like Henry Hatsworth in the Puzzling Adventure. He's shipped games on the PC, GameCube, PS2, XBox, X360, and DS, but is most proud of the tools and shared libraries he created for others to build on. He loves seeing usable, beautiful code magnify the creative ability of others.
Robert lives with his wife and two daughters in Seattle where you are most likely to find him cooking for his friends and plying them with good beer.
Most helpful customer reviews
118 of 123 people found the following review helpful.
A must-have for any software engineer, game industry or not
By D. Otero
To understand the code and some of the more performance-oriented patterns, you must understand C/C++ pointers and memory model.
This book WILL give you:
- An excellent introduction to good software design and how to think about design issues.
- A great background in the notion of software design "patterns."
- An exploration of some key categories of problem that come up in software, and especially in games.
- A VERY detailed exploration of 19 concrete software patterns that are particularly useful in the hairiest parts of game programming.
This book will NOT:
- Teach you how to program.
- Give you specifics of working with a particular library, language, game engine, or platform.
- Give you a 100% complete architectural blueprint for your next game.
This book is a gem, and should certainly be considered required reading for any new industry or hobbyist software engineer, regardless of whether they work on games.
"Game Programming Patterns" delivers, providing an in-depth look at the core engineering patterns used ubiquitously in games but seldom known outside of the games industry. Each pattern gets a full treatment, including everything from background to motivation to concrete examples of where the pattern would apply and where it might go awry. Each chapter also includes a healthy dose of discussion, including going into the trade-offs between each pattern and other possible approaches.
However, at its core, Game Programming Patterns is about much more than games. I find it to be one of the most accessible and most complete books on Software Design in general. The thorough examination of trade-offs and design decisions makes it a fantastic introduction to "good design" for any programmer. I HIGHLY recommend this, especially to new-ish programmers starting off in their first job (again, regardless of whether or not they work on games).
1 of 1 people found the following review helpful.
Straightforward Software Design
By Michael Gautier
The very best book about how to design computer software. Author uses down-to-earth, regular, everyday language to present the material. Concise and practical. You can use each and every suggestion. Many other books on software design are abstract or dense and those books are valuable. This book is more high level but with enough substantive supporting information that produces a strong general document on software design. Three audiences can be well served by this book. The experienced. They may see a presentation that reconnects ideas forgotten in terms of coherent recall. Occasional practitioners. The material may provide good ideas for their solutions. The curious. Anyone who wants to understand the concept of good structure in software and how that may be represented may benefit from this material.
1 of 1 people found the following review helpful.
See all 127 customer reviews...
The best book ive ever read!
By Amazon Customer
A Absolute must have for game developers!
First of all im so glad i found this book, without it i would probably be making little crappie games but now i know how to correctly make well designed applications. This book does however expect you to know C++ and will not teach you how to program. It will however show how to properly implement programming patterns to correctly make a great application. All the people that have negative reveiws of this book are from people the most likely don't know how to program.