Game Programming All In One, 2nd Edition — by Jonathan S. Harbour
Before starting this book, I had partially read at least half a dozen game programming books over the past ten years. They covered topics ranging from simple game programming to 3D engines mostly for Windows on the PC. Since my switch to the Mac shortly after Mac OS X Jaguar was released, I’ve been looking for resources on game programming that would target the Mac, or at least not be so directly tied to Microsoft’s DirectX framework. Finally, this book was what I was looking for. Basic 2D game development using the cross-platform game framework, Allegro.
The book starts off with a general introduction to game development and the author’s history writing games, presumably to establish authority and to give you a sense of what types of games he has worked on. Then, Harbour quickly runs through Allegro and how to install it and compile it for the platform you are running — as long as it’s Windows or Linux. There aren’t any instructions at all for the Mac, but as I covered in my previous article on Allegro, there are instructions online.
Once you have the framework installed (with little to no help from the book) you quickly start writing code to excercise the framework and get used to the general layout of an Allegro game loop. All goes smoothly and looks very promising. Harbour then progresses through the basics of putting together a simple but relatively feature rich, two player tank game throughout the rest of the book. He does take some detours to teach some specific topics about vertical scrollers and horizontal scrollers, but always returns to the tank game as a basis of a progressivly more complex game engine. Overall, he does a pretty good job of keeping explanations simple and to the point with out getting too caught up in technology specific implementations. This makes it very easy to take the ideas, algorithms, and approach of building the game engine to any platform and technology you desire.
The only negative I would point out is that the version of the Allegro framework that the book covers is sorely out of date. If you use a newer release, some adjustment of the code is necessary at points to get correct functionality — but your compiler should give you adequate warnings about deprecated methods and structures and the online documentation should help you find adequate replacements for the outdated methods.
Game Programming All In One is a terrific learning tool for picking up the basics of how a 2D game engine is built. After working through the examples and seeing how the pieces fit together, I feel ready to move forward on my own projects. In the end, the book has provided one of the best return on investments of any technology book I’ve read in quite some time.