Review: Game Engine Gems 2 by Eric Lengyel

Game Engine Gems 2 is the second book in a series from editor Eric Lengyel, one of the premiere game engine developers in the scene. I read the first book and I will say this second volume is even better in my opinion. There are a vast number of topics covered, and I found the depth in most of them to be thorough, considering that this is a gem collection and not a full book. Inside there are 31 chapters, each from a different author, and a lot of ground is covered. Chapters include: bounding boxes, volumetric clouds, night vision, deferred shading, OpenGL tricks, stereo 3d, web browser 3d, object-oriented design, networked games, GPGPU cloth physics, bit hacks, memory management, multi-threading, and more. Each section was given about 10 to 20 pages, but the authors were concise and were able to explain the concepts well in the short space. I very much enjoyed the wide span of content and I feel this is a text I will look back upon for reference in my own development.

While some of the topics were a bit over my head, I did find most of the book to be digestible and relevant. The text would be most apt for people developing their own engines, especially in C++. A few of the early chapters could likely be applied to commercial engines (for example, the sections on volumetric clouds or night-vision shaders) but the the vast majority of the book is focused on more lower-level engine work. I liked that stereoscopic 3d was covered in a few chapters, and the depth was greater than in the first book. The chapters on multi-threading were also very helpful, even though this is admittedly a confusing area for me (I bet I’m not alone). And the section for bit hacks was pretty interesting, which showed some tricks like how to test the sign of a number without branching. Overall, I think this is an awesome book and feel it was somehow overlooked. I would recommend this to any engine developer. Also bought the 3rd book in the series, and I’m looking forward to see how that stacks up.