Brief synopsis of Software Engineering for Game Developers
This book is a complete overview of professional enterprise-level software engineering techniques as they apply to games. Normally these techniques are emphasized in non-game software development books which makes Software Engineering for Game Developers somewhat unique. This book is, as far as I have seen to date, the most comprehensive overview of software development strategies for games available. It walks the reader through the complete unabridged process a giant AAA studio might employ when developing a blockbuster title requiring a huge development team. The authors apply these techniques to a game project found on the companion CD.
The book has few code examples in it and instead presented many concepts in written form along with a plethora of diagrams. This helps keep the content relevant even today. The example game and source code found on the CD was written in C++ and uses Windows DirectX. What makes the source code special is how it is presented at each development phase so the reader can see how it changed over time.
The biggest criticism I have about this book is that it is quite clearly a blatant attempt to inflate the page count to justify the original price. The book spends a tremendous amount of time summarizing ISO standards for no good reason, it’s redundant to the extent there are even chapters that serve only to summarize previous chapters. Chapter-ception? I have to believe this started as a project focused around creating a game that follows true software engineering principles from start to finish. I suspect that once the game was completed the author’s were instructed to fill up 800 pages so the publisher can charge around $59.99 for the book. All of this said, there is definitely value buried in the fluff, but as a reader you’ll need to be very patient to find it.
Software Engineering for Game Developers Length
729 pages not counting the appendices
Print and binding quality
The version reviewed was a softcover of average dimensions for a computer programming book. However, the high page count means it is rather hurculian in size. The book was printed in black and white with no noticeable quality issues.
Target audience of Software Engineering for Game Developers
Software Engineering for Game Developers is for anyone that wants to know how giant complex games are tackled by huge development teams. The content goes beyond concepts and provides granular detail sufficient to actually employ the techniques being discussed.
Relevance to game development
The relevance of this book to Unreal Engine and Unity 3D game developers is variable. On the one hand all game developers should know enough about the content covered to have a conversion about it, but there is no way anyone is actually going to use all of the strategies outlined in the book unless they are working on a truly huge project with a very large team.
How Software Engineering for Game Developers should be read
Software Engineering for Game Developers goes into an incredibly granular level of detail and at times can be slightly redundant. My recommendation is to fully read the chapters covering content you’re truly unfamiliar with while many others can safely be skimmed over.
The best part of this book for me was probably coverage of UML and object oriented programming, white box testing, and requirements. The most useful knowledge you’re likely to gain is a 100% complete picture of strategies used to develop the most complex projects imaginable.
What I wish was different
The author wastes a tremendous amount of space summarizing ISO standards. Overall the book is verbose and at times redundant. I would have preferred something distilled down to the essential core concepts. A link to ISO standards would have sufficed. Some of the later chapters feel like a quick aggregate summary of previous individual chapters. This is where I started to skim content and focus on chapter summaries and anything bolded.
Software Engineering for Game Developers was edited by André LaMothe which should trigger some nostalgia if you’ve been in the game since the 90’s. Overall the book is well-written with only a few noticeable typos; of those found nothing was undecipherable. This is above average for a first edition book of almost 800 pages. The writing is good, but nothing amazing. It’s clear and neutral in tone.
The code examples in the book are sparse. It almost doesn’t even matter that it’s an old Windows DirectX game written in C++ because everything is explained thoroughly in a language-agnostic manner. The book is all about concepts, but the example code on the CD is exceptional if for no other reason that it’s a complete game, various stages of the code are presented throughout the development process, and it’s commented generously.
The author’s seldomly inject any real personality. It is appreciated when it happens. Overall, as mentioned previously, the book is quite neutral in tone. There is no real sense of personality. No strong opinions are expressed; the authors sit on the fence when techniques are divergent, never asserting a strong position.
At the time of this review Software Engineering for Game Developers is sitting on a perfect 5-star review score with a whopping 8 total global reviews. Of note, some of the reviewers rave about the example code on the included CD. It should be noted, however, that this book is getting long in the tooth (they use Windows DirectX).
Should you buy Software Engineering for Game Developers?
Despite the flaws in this book I still recommend buying and reading it. However, this might be one you should try to find a used copy of; they should be inexpensive as there is little demand for the book based on the Amazon review count. Every game developer should at least be somewhat familiar with the content of this book. However, it will be challenging to read the entire thing.