This is a small book (280 pages of core material, appendices excluded, with lots of source code listings and images taking up space) that aims to teach basic game programming using the popular Python library Pygame, which wraps the cross platform SDL C gaming library.

The book is very easy going and quick to read, and serves as a nice introduction to the subject, although I definitely don't agree with the subtitle - From novice to professional, because this book will take you very far from a professional, as it's basic at best.

Frankly, I would expect a bit more from a book. It only covers the material on a basic tutorial level and rarely goes deeper, which is a shame. The decision to teach Python and Pygame in the same book is questionable. It's hard to believe a novice will learn Python from the first two introductory chapters, so perhaps aiming the book at Python programmers would be a better idea.

Other cons:

  • I don't like the author's using his own mathematical library for manipulating vectors and matrices as opposed to using something like Numpy.
  • the author ignores the Sprite class of Pygame and develops his own GameEntity instead. I don't see much justification for this.
  • I felt that events were presented in a superficial way. This is probably one of the most important core topics of game programming, and it deserved more attention

On the positive side, the book really is a nice tutorial. If you are familiar with Python and basic math you can actually code a simple game based on this book very quickly, as it contains all the elements you need (at least for 2D games). There's a lot of code in it, and the code is reasonably well written. This code can be used as a jumpstart for your own game.