Learning Game Physics with Bullet Physics and OpenGL

Learning Game Physics with Bullet Physics and OpenGL
Bullet-OpenGL

Author: Chris Dickinson
Publisher: Packt Publishing
Paperback : 126 pages
ISBN : 1783281871
ISBN 13 : 9781783281879
Rating: 7/10

Covering both physics and OpenGL in any meaningful way in only 100 pages is very ambitious, Learning Game Physics with Bullet Physics and OpenGL makes a half decent fist of it.

I found the first and third chapter very promising; concise, well written, covering relevant points thoroughly and articulately. Unfortunately the rest of the book falls short with a number of faults, although many are too minor to warrant criticism. Still…

The book’s sub-title includes the line “modern feature-rich graphics” which is misleading at best, the OpenGL here is most assuredly not modern and only a few features (lighting, materials) are used. OpenGL is used as no more than a method of visualisation (with GLUT used to handle user input) and not covered in any real depth, the bulk of the book is dedicated to Bullet Physics.

Disappointingly, Dickinson uses _very_ old OpenGL, in particular, glBegin() and glEnd() were deprecated with OpenGL 3.0, are inefficient and would be better replaced with vertex arrays. This choice is explained as being made to avoid complexity, however considering the level of the other material in the book that seems a poor excuse at best.

Some specific shortcomings:
The explanation of normals is a bit ropey; normals are attributed to points (which is wrong, since normals are perpendicular to lines or surfaces, a point can never have one).
glPopMatrix() and glPushMatrix() are not “delimiter functions” nor are they like glBegin() and glEnd().
While functions are clearly explained, parameter lists are omitted, making it difficult to know which parameters to pass and in which order.

Good (but not great), this book is certainly useful as a practical introduction to BulletPhysics, but not OpenGL. I found it to be a generally pleasant read with clear, concise, readable style marred by a few technical errors of varying severity.