ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
3D Games: Animation and Advanced Real-time Rendering
Alan Watt, Fabio Policarpo
0 201 78706 7
550 pages+CD
Daire Stockdale
graphics; games
Appeared in:
This book is the second volume of a pair of books Alan Watt and Fabio Policarpo on the subject of 3D games. This volume covers topics such as modern hardware accelerated real time lighting, character animation and some collision detection and resolution. It also discusses in depth the 'Fly3D' engine, a proprietary engine developed by Brazilian software company Paralelo.

My biggest gripe with this book is that it is tied to the Fly3D game engine. I felt throughout the book that I was reading a manual for a particular game engine, as opposed to a general discussion of the subject. In fairness to the book, it does mention on the back cover that "the built around a specific games system, Fly 3D SDK 2.0". The book comes with a CD which contains the SDK in question, and I believe it is free for non commercial use. However I have to be suspicious of a book that promotes a commercial product without advertising itself as such.

As the book uses the Fly3D engine as its frame of reference, I found this limited the scope of discussion on many of the topics. Instead of explaining the pros and cons of different approaches used by modern games engines to solve problems in this field, as is the case with Eberly's "3D Game Engine Design" book, we are presented only with the method used by the Fly3D engine. This also led to a tendency to present methods as being definitive, when in fact the designer of a game engine system might be better served by different approaches. An example is the engine's use of the Binary Space Partitioning system to accelerate various engine systems. Perhaps in the first volume this system and its merits are discussed and compared with other methods of spatial partitioning; however in this book its use forms the basis of several chapters of discussion, all with relation to the Fly3D engine, without mention of alternatives.

Where the book was not discussing the Fly3D engine, and instead focused on specific topics such as lighting equations, it became much stronger and much more interesting and enjoyable for me to read. Techniques that are only just beginning to leak into commercially available games; such as BRDF lighting and per-pixel lighting are covered clearly and well, and were very informative. These are the best chapters of the book, where it becomes a technical and enlightening read about often-difficult subjects. I suspect that these chapters were authored by one person, and the chapters concentrating on the Fly3D engine and pseudo code by another.

In summary, if you are interested in learning about how 3D engines work, and are happy to use the Fly3D engine as a learning tool, or perhaps if you are considering using the Fly3D engine commercially, then this book will be useful to you. Good as the more generic and technical chapters are, I am not sure they justify a purchase of this book. Perhaps the authors would consider revising the two volumes of this series, and release one that contains only the (excellent) generic discussions, and another volume that focuses on the Fly3D engine?