"Game Design and Architecture: A New Edition" -- Book Review by Ryan Taylor

Paperback: 765 pages
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

Dynamic HTML: The Definitive Reference

Dynamic HTML: The Definitive Reference
Author: Danny Goodman
Published: December, 2006
Publisher: O'Reilly Media, Inc.
ISBN-10: 0596527403
ISBN-13: 978-0596527402
Pages: 1309

Reviewed April 11, 2007
by Kirk Holbrook, Manager
Maine Flash Platform User Group

Looking for a single reference for all your web development needs? Well, Dynamic HTML: the Definitive Reference isn't quite that, but it comes awfully close. It's not simply a DHTML reference; there's detailed reference info on XHTML, CSS, DOM, and Javascript -- all of which are necessary to create good DHTML.

Most of the book is divided into five sections, including the above mentioned references, as well as a section on Events. The references are easily navigated, clearly explained, and provide nice examples. The most valuable bits of information for many web developers are probably the compatibility info provided for each entry in the reference sections.

The remainder of the book offers handy cross-references and appendices. The cross references include: an HTML/XHTML Attribute Index, and DOM references by Property, Method, and Event. The appendices include info on colors, special characters, ASCII key codes, editable content commands, elements/attributes available in W3C standards, and the relationships between various Mozilla based browsers.

Of course, this is a reference book, so there's limited cohesion in the examples. There is no theme to follow and re-create a full-featured DHTML web site. But the book is intended to be a reference. There are other books for step-by-step DHTML development.

Likewise, this is a comprehensive reference, and therefore quite a thick book. There are separate CSS and JavaScript references available (also very handy), but this single volume packs a lot of punch.

Head First Object-Oriented Analysis and Design

Head First Object-Oriented Analysis and Design
Authors: By Brett McLaughlin, Gary Pollice, David West
Published: November, 2006
Publisher: O'Reilly Media, Inc.
ISBN-10: 0-596-00867-8
ISBN-13: 9780596008673
Pages: 600

Reviewed March 12, 2007
by Kirk Holbrook, Manager
Maine Flash Platform User Group

This is a good introduction to object oriented analysis and design (OOA&D), as well as use cases and class modeling. The authors lead the reader through several different scenarios (some of them progressively tied together and some of them standalone). The "build-it-up and then tear-it-apart and analyze it" methods seem to fit well for whom I suspect are the target audience for the book: developers who know how to program, but maybe don't have the best skills in needs analysis up-front.

Head First Object-Oriented Analysis and Design is the first (and currently only) book that I've read in the Head First series. The concepts are easily understood and there is a minimum of prior knowledge of Object Oriented Design required as a pre-requisite for reading the book. There's a good bit of humor and lightening up of the subject matter. The ideas are comprehensible, but I do understand other reviewers' comments about the layout and design of these books. It is rather all-over-the-place, with wacky fonts and "fridge magnet" pages (as I understand the Head First series is generally), but the concepts do come across pretty clearly. It's still pretty obvious what the different, wacky fonts are doing to engage the reader, and they do follow a graphic design scheme for the book.

There are some very heady topics discussed in the book, but the scenarios and various methods of describing the problems and solutions provide an accessible, understandable introduction to OOA&D.

The examples are all Java-based, but if you program in another language, you should be able to follow along without much difficulty.

The table of contents could benefit from some better tie-in to the industry-standard terms that are the topics in the chapters/sections (at least add in and bold the terms, such as Delegation, Encapsulation, Polymorphism, etc.). A glossary might be a handy addition, too.

Generally, I'd say this is a good introduction to Object Orient Analysis and Design, and it is certainly not a reference book.

Adobe Flex 2: Training from the Source

Adobe Flex 2: Training from the Source
Authors: Jeff Tapper, Matt Boles, James Talbot, Ben Elmore, Mike Labriola
Published: October, 2006
Publisher: Adobe Press
ISBN-10: 0-321-42316-X
ISBN-13: 978-0-321-42316-0
Pages: 600

Reviewed January 24, 2007
by Kirk Holbrook, Manager
Maine Flash Platform User Group

Wow! I'd recommend this to anyone using Flex 2. The authors have done an amazing job with presenting concepts in a well-organized and compelling manner. The book follows the development of a fictional, on-line grocery store. I rarely follow these step-by-step books as the authors intended, but the concepts in this book evolve as the store is developed, and the exercises are clear and concise. I followed the book right through from beginning to end.

Ive been developing a significant project with Flex 2 for the past 8 months. Im not a newbie as far as Flex or ActionScript are concerned, but I got a lot of really useful information out of this book. Some reaffirmed what Ive been doing, while others gave me tweaks (and a few outright So THATs the way to handle that! moments).

The book does a great job at describing how and why to do most tasks in Flex 2. Looking for a tutorial on how to work with HTTP calls? How about data sets, events, custom components, charting, styles, skins, transitions, printing, shared object, or debugging? Theyre all in there, as well as a few similar exercises done with ActionScript vs. MXML.

The one drawback I see here is in the area of Flex Data Services (FDS). Personally, I think they could have dropped the limited introduction to the many advanced features of FDS and published a separate book on that (which hopefully Adobe Press will do anyway).

The book includes a CD-ROM with a preset, developer copy of ColdFusion to work through some of the exercises. It would have been nice if they had included the FDS components on the CD, too, but it can be downloaded from Adobes website.

At any rate, this is an excellent resource for anyone using Flex 2.

ActionScript 3.0 Cookbook

ActionScript 3.0 Cookbook
Authors: Joey Lott, Darron Schall, Keith Peters
Published: October, 2006
Publisher: O'Reilly Media, Inc.
ISBN: 0-596-52695-4
Pages: 562

Reviewed November 17, 2006
by Kirk Holbrook, Manager
Maine Flash Platform User Group

This is an excellent book. I'd recommend it to anyone using Flex 2 (and eventually Flash 9) -- especially now with the limited resources available for ActionScript 3 (AS3). There are a lot of useful examples along with coherent explanations of why the authors are programming the way they are.

The chapter on XML (chapter 20) is a must-read. It includes concise summaries of dealing with XML in AS3, which has changed significantly from AS2. Generally, XML handling is much easier in AS3, but there are some areas that can be really confusing when making the switch from AS2. This book explains most things you'll need to do with XML in AS3.

The chapter titled "Display List" (chapter 6) also contains critical information for developers coming from AS2. The rendering model in Flash Player 9 is completely re-designed -- a move away from the MovieClip class (although it's still in there) to the new DisplayObject class. The examples provided here give some important guidance on working with the various elements in rendering your project's interface.

I particularly like some of the custom classes available as a free download (of course, you should buy the book for those!). For instance, recursive arrays can be a hassle to deal with, but very useful in many projects. One of the classes includes several Array utilities -- one, in particular, that makes dealing with recursive arrays easier.

Of course, there's a lot of other great stuff in this book. I won't touch on all its greatness, but, again, I do recommend it highly.

That said, I do have a few complaints.They are not to dissuade you from buying the book, but to give the authors some feedback, in hopes that they can improve the next edition.

The authors state that this book is not intended to be an introduction to AS3. However, since it's really the first book to market on AS3, I'm sure that many AS3 developers will be looking to it for some introductory material.

The first 60 pages also seem to reinforce this impression. There are many pages devoted to basics of AS3, like creating functions and classes. Forcing these into the Cookbook scheme seems rather trite in several instances. Take, for instance, 2.5 Creating Subclasses. The Problem is stated as "You want to create a class that inherits from an existing class." And the Solution is "Write a subclass using the extends keyword." Now, if I know I want to create a class that inherits from another class, I'm pretty well along the way to knowing that I want to extend the latter. And I can probably find the answer much more readily in the Flex 2 or Flash 9 documentation. I'd rather see an appendix with documentation on the free-to-download custom classes, than 60 pages of very basic AS3.

In the interest of full disclosure, let me say that I have not read any of the Cookbook developer books lately, so some of my remarks may be a bit off base here. But it seems to me that this title falls short of the idea that I have for a Cookbook. There are a lot of good tidbits in here, like creating custom buttons and the inclusion of several custom class files, such as the already mentioned ArrayUtilities class (along with several other useful utilities classes) and the Cards class. But most of the Problems and Solutions are more like ingredients than recipes.

If I were editor of a book like this, I'd aim for more advanced Problems and Solutions that combine the various ingredients to provide a richer set of problems solved. How about solving the following Problems:

  • I want to create a tile based game. How can I work with various sized grids to create a seamless experience for the user?
  • I have tons of UI to place in the limits of the users' screens. What are the various ways I can maximize the user experience (view stacks, tabs, and other new containers and navigator classes in AS3)?
  • I want to program card games using the Cards class. How would I program a version of Blackjack?
  • I need a reliable and reusable way to hit several web services. What's a good way to split up my code into one or more classes to make this efficient?
Perhaps the Cookbook I'm describing better fits the Hacks series from O'Reilly. Or maybe it's more of an Advanced Cookbook.

But, yes, it's extremely useful. If you're using Flex 2, or plan to use Flash 9, run out and buy a copy -- now!

BlogCFC was created by Raymond Camden. This blog is running version 5.1.004.