Beginning Game Development With Python and PyGame
by Will McGugan
Introduces Python, PyGame and game development ideas from the ground up, in a really pleasant writing style which is both unintimidating, clear and covers all the bases. It's definitely a book for beginners though, walking through high-school topics like bitmaps and vectors and matrices, but having laid the foundations, it works up to an excellent hands-on overview of using OpenGL in the final three chapters, including lighting, textures and fog. It makes all the topics very accessible, and does an incredible job of putting all the various topics to work together to form a cohesive and illustrating whole.
Nothing extremely hardcore is covered though. An 'ants chasing spiders' state machine is probably the most involved example in here, barring the latter parts of the OpenGL section, with four-state creatures beautifully explained and presented. If you're already doing OpenGL or game development, even as a piss-poor amateur like myself, you likely already know many of the things between these covers, aside from the PyGame specifics, which are generally transparent enough to figure out yourself.
Update: In the months since I wrote this review, I've found my thoughts returning to this book time and again, and have come to the conclusion that I gained more from its extremely clear exposition than I realised at the time. I'm revising the review scores significantly upwards to reflect this.
Rating: 10/10 for beginners. 5/10 for experts. Consider yourself somewhere between the two.