"Game Design and Architecture: A New Edition" -- Book Review by Ryan Taylor
Publisher: New Riders Games; Subsequent edition (October 24, 2003)
ISBN-10: 0735713634
ISBN-13: 978-0735713635
I began reading this book expecting to learn something about game programming and architecture but what I came out with was less about programming and specific technical advice (though there was some of that) and more about the process of creating games, including how someone might attempt to manage a game development project. Even though my expectations were not met I can honestly say that I was not disappointed. The book was very well written and thorough in many ways (e.g., project management, what is a game?) and weak in others (e.g., programming tricks, guidelines).
The first half of the book was dedicated to the process of creating games. The project management side of game creation. There are plenty of books about gaming programming with API X with Language Y. In my opinion these books are frequently unfulfilling because they concentrate on tiny details (such as a specific method in DirectX). Things you should be able to glean from help documentation such as the MSDN or user forums. They rarely show the larger picture. Game Architecture and Design introduced me to a side of game development I had never considered and this was easily the most interesting and well thought out portion of the book. Ive often thought about what kind of game I would like to create but I never asked myself: What is a game? What makes a game fun? How do I design a game specification document? What sort of project management pitfalls might I come across and how can I void them? This book constantly asks these sorts of questions. Interestingly, while reading through this section I found myself asking the same questions when playing through some professional big budget games and found that even the professionals could have used this book to improve their games.
The latter half of the book touched upon the actual game architecture. I found this part rather weak. Though it promotes the idea of abstraction, modules and flexibility these are not new concepts to software development in general and are covered in better details in books dedicated to software design patterns, techniques and technologies. Some of the suggestions are more suited to company policy such as variable naming guidelines, commenting etc. Thats not to say that these things arent important (I personally try to adhere to a particular style), but Im not convinced these sorts of opinion driven items will fit everyones coding style.
Overall I found the book incredibly engaging, especially the first half of the book. Ive always thought about game development in terms of classes, variables, source control etc and I never questioned what happens before coding begins. I would highly recommend this book to any budding game developer in so far as understanding the entire game development process, from inception to documentation to creation. Though not the Rosetta stone for game developers it is an excellent resources for beginners and experienced developers alike.
Ryan Taylor
MFPUG Member
