Sponsored By

Book Review: Game Coding Complete

This week, Justin Lloyd reviews Mike McShaffry's Game Coding Complete, and while he finds it an enjoyable read, it is also lacking in some of the depth he would have expected.

Justin Lloyd, Blogger

March 9, 2004

5 Min Read


I have to state this upfront, I enjoyed reading this next book, but constantly kept wondering when the author, Mike McShaffry, would talk about the “Game Coding Complete” aspects that I was expecting based on the title. I picked the book up looking for Steve McConnell’s Code Complete (Microsoft Press) worked from a game developer’s perspective, but it never seemed to step up to the plate.

Game Coding Complete is a generic, non-API specific game programming book that attempts to educate the reader with the ins and outs of the game industry and what goes into making a game from a production viewpoint. With 563 pages, the book isn't long enough to cover the entire development process in-depth, and many of the sections barely touch on what are essentially very deep subjects. And the chapters on 3D graphics and game engines are woefully inadequate.

From the beginning “What’s in a game?” chapter detailing many of the technologies and processes that go to creating a game from scratch, McShaffry covers 2D graphics, detouring in to a game’s initialization phase and the main loop, then sidelines to loading game data and caching it before returning, in roundabout fashion, to 3D graphics and game engines, confusing game engines and graphics engines at more than one point (probably more due to poor phrasing than actual confusion on McShaffry’s part). Beyond these few brief technological sections the book offers a glimpse at considerations you must pay to writing games for Microsoft Windows. The last three chapters wrap up the book by detailing how to debug games—a topic better served by other books on the market—scheduling and some of the pitfalls with that subject, and finally quality assurance.

Game Coding Complete meanders from one subject to another in no particular order, never being in-depth enough to really drive home a point; never insightful enough to give that “aha!” moment when the author points out the blindingly obvious that you should have known all along. The book offers very little to the seasoned professional even though the back cover clearly states “Intermediate to Advanced” as its target audience.

The book is littered with McShaffry’s experiences—dubbed “Tales from the pixel mines”—working in the game industry since 1990 where he started at Origin Systems, and it covers what I feel is his narrow experience and field of expertise, primarily DOS & Windows with the Ultima series of games. The anecdotes are amusing, and made the book enjoyable for me as I was often nodding knowingly—“Yup! Been there! Done that!”—as I read through it and they certainly helped keep the book from being dull and dry.

Game Coding Complete bounces around the technical areas so fast it’s more of an overview of what makes a game from a programmer’s viewpoint. It’s very difficult to explain the in-depth inner workings of a 3D engine in 50 pages or less—annotated with code—and still have it be useful to anyone. The book is neither a good process book nor a good programming book.

Unusually, this book contains no example CD containing the code contained in the pages; instead it offers a web site that holds the entire source, hopefully with working examples that are debugged. I wouldn’t know for sure, as when I went to the URL the web server gave me a timeout while attempting connection. The web site solution is good and bad. Good because you hopefully get the latest debugged version of the code. Bad, because in 5 years time, when you want the code again, the website may be long gone and there might be nobody at the publisher who knows what you’re talking about.

For an aspiring game programmer, it’s worth reading, but a seasoned developer of two or three years experience won’t take much away from this book.

Read more about:


About the Author(s)

Justin Lloyd


Justin Lloyd has over 18 years of commercial game programming experience on almost every released platform.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like