Video game optimization by Eric Preisz and Ben Garney is a book that is focused on highlighting and addressing performance concerns found in modern video games. This is probably the best code optimization book that I have ever read. It is also the only book on the market that covers the entire game development programming pipeline from start to finish and is the only book I know of with a heavy focus on GPU and Shader optimization. In brief this this book fills an important gap in any game dev’s library and is an absolute gem.
The book is extremely well laid out, with each chapter progression feeling smooth and natural, the book starts with an introduction to the optimization problem (goals, tools, issues) to the basic hardware considerations (cpu architecures, compiler, etc.) to the core chapters dealing with optimizing each major component in the programming pipeline (CPU, GPU, Shaders, Storage and Networking). In additonal to this, the book provides chapters dealing with optimization in regards to the concurrent programming model and on optimizing for consoles. The two final chapters feel like appendices with information regarding the role of managed languages and GPGPU techniques in the modern game development environment.
The writing is clear, concise and offers little to no fluff. The author assumes prior knowledge and while still attempting to cater for the inexperienced programmer, doesn’t treat the reader as an imbecile, a habit all too common in most game development books. The technical content of the book is rich, and provides a wealth of information on pretty much every aspect of code optimization (from identifying bottlenecks by using profiling tools to solving identified performance issues). While the book is only 325 pages long, which sounds quite short for such a comprehensive text, it is in no way a brief introduction to the topic, and the length can be attributed to the excellent “to-the-point” writing style used.
I’ve mentioned that the book is content rich but the chapters on storage and concurrency were especially informative for me since those were topics I have never really looked at from an optimization standpoint. The sections on how to use CPU and GPU profiling tools and on how compilers apply optimization, I also found were also absolutely critical for me. I honestly cant remember the last time I had so much fun reading a book, I felt like a kid in a candy store with a blank check.
This is a first edition book and as such there are issues with it, the first major oversight in my opinion is the quality of the graphs found in the book. The authors should really consider firing their editor, in almost all the graphs present, the axes are not labeled. The graph usually only has a title and the reader is left to deduce what the axes represents. While in many cases it’s a pretty simple task to do, in others I was staring at a graph and had absolutely no clue what the one axis represented! This is by far the biggest flaw with the book and absolutely NEEDS to be corrected in a future edition. As expected there are various typos present as well but I have yet to see a first (or even second) edition book without grammatical/typographical mistakes.
The other flaw, so to say, is that I’ve found myself wishing that a few topics (or sections) were covered in slightly more detail. For example in Chapter 6, the authors mention that CPU’s are set-associative and give a very brief “explanation” of the term that never really defines and explains what that means. I think that in future editions as with most books, the mistakes will be corrected and additional content will be added.
All in all, this is an absolutely phenomenal book, one that is an absolute must for any programmer (game dev or other) interested in optimization.
- Rich Technical Content
- No-nonsense writing style
- Covers GPU and Shader Optimization
- Easy to read
- The best optimization book I’ve ever read
- Graph axes not labelled for the majority of the graphs present
- One or two sections could do with more background and explanation.