I’m excited that the table of contents for Game Engine Gems, Volume 2 is now available. The book is scheduled to be released at GDC 2011, this coming March.
Although I don’t know anything beyond the titles and authors, I am looking forward to many of the articles.
Rémi Arnaud’s 3D in a Web Browser sound timely and is always a hot topic where I work. Recently, I’ve played with JOGL Java Applets, but I’d also like to look at WebGL. I’m curious to read what Rémi has to say.
Noel Llopis’s High-Performance Programming with Data-Oriented Design also sounds worthwhile. I feel my design skills have plateaued over the past year or two; I couldn’t even give you a completely legit definition of “Data-Oriented Design.” Some reading in this area will be good for me.
I’m happy to see that the Systems Programming part has a good bit of threading coverage, including Julien Hamaide’s Thread Communication Techniques, Martin Fleisz’s A Cross-Platform Multithreading Framework, and Matthew Johnson’s Producer-Consumer Queues. I can’t imagine that anyone is writing a new engine without at least some multithreading support. I’m curious to read about communication between threads. I have to admit to being a big fan of message queues but I’m sure they are not the be all end all. (P.S. Our book also has a chapter on multithreading.)
Finally, I contributed two articles on OpenGL techniques. Here are their abstracts:
Delaying OpenGL Calls
It is a well known best practice to write an abstraction layer over a rendering API such as OpenGL. Doing so has numerous benefits that include improving portability, flexibility, performance, and above all, ease of development. Given OpenGL’ s use of global state and selectors, it can be difficult to implement clean abstractions for things like shader uniforms and frame buffer objects. This chapter presents a flexible and efficient technique for implementing OpenGL abstractions using a mechanism that delays OpenGL calls until they are finally needed at draw time.
A Framework for GLSL Engine Uniforms
The OpenGL 3.x and 4.x core profiles present a clean, shader-centric API. Many veteran developers are pleased to say goodbye to the fixed function pipeline and the related API entry points. The core profile also says goodbye to the vast majority of GLSL built-in uniforms, such as gl_ModelViewMatrix and gl_ProjectionMatrix. This chapter addresses the obvious question: what to use in place of GLSL built-in uniforms.
I’ll write an actual review when the book comes out (excluding my articles, of course, and with the disclaimer that, as a contributor, I am biased) and I am going to finishing reading and reviewing GPU Pro 2 as soon as I am done writing the manuscript for my own book!