I always try to take some books with me when flying for vacation, this year I finally managed to read Real-Time Collision Detection. I’ve never been a “true” physics programmer, I am not one now and I doubt I ever will, so I thought it’s not a book for me. After few pages I already knew I had been wrong. Turns out it’s book that every game programmer should read. Sure, it does focus on collision detection, but that subject is so broad that it touches multiple other vital areas like linear algebra, spatial partitioning, ray tracing, bounding volumes and more. If you’re seasoned developer you may not learn many new tricks when reading about basic stuff, but it’s good to have all this info compressed in one place (and still I bet you will probably learn a trick or two). Description on more advanced subjects is in a league of its own, I dont think you can find better material on shape intersections, closest point computations or GJK (random examples).
One of the biggest strengths of this book is that it is very practical. Say, you want to learn about octrees. You’ll find million of theoretical descriptions. How many of them will mention different representations and their memory requirements? How many will focus on cache-friendly data layout? How many will mention locational codes and Morton order (with sample implementation)? Loose octrees? Array, pointer-less representation? It’s all here (and more), on 10 pages (how about that signal:noise ratio?). All the code samples are in C/C++ instead of some random pseudo-code.
On top of that there are two chapters you should print, force every CS grad in your company to read and make sure they did: one about numerical robustness and one about optimizations (focusing on the most important of them all – cache/memory friendliness). This way, next time when they come to you bragging about a new cool structure they’ve just found and introduced to your codebase, red-black tree of double-linked lists, you’ll be perfectly justified to hit them with the book. It’s not heavy enough to kill, but there’s a chance of permanent injury.
All in all, one of top 10 programming books for sure. Not just a list of equations and algorithms, rather tips on how to implement them in an optimal way. If you haven’t read it yet, do it now.