I bought this book as soon as it was published, and I sold it soon after. Suffice to say I had a very mitigated impression after reading it. There are good things in it, but also some very bad stuff. It doesn’t describe how to write your ultimate game engine, but the author’s game engine. What about some modesty?
Let’s start with the bad stuff.
Content and opinions
This book does not show the engine architecture, the only thing you can see are some pictures with some classes. There are hints about UML, but those pictures are far from being UML. Besides code quality is really disappointing. No const-correctness, no std::string for the parameters, char* are used and then converted to strings (!!!) Really bad coding practices. Another thing is class instantiation before they are actually used whereas the text says it shouldn’t be done! Finally, the book has plenty of code pages, whereas the code is in the CD or on the Internet, so why using so much pages for something that is easily available?
For the good things, the book covers almost every aspect of a multiplatform game engine. For inputs to physics as well as graphism (OpenGL and DirectX), AI, the handling of these systems is there. If some parts show only abstraction for replacable libraries (as for graphism), other show the actual implementation, like for physics. Speaking of physics, it uses a good part of the book to explain how it works, even if it is not a fully-fledged physics engine at the moment of writting.
I regret the fact that the book is about a uncomplete and evlving engine. I also regret the script engine part, because it is kind of false (compiled or interpreted, a script language can always use a virtual machine) and pages could have been better spent for exposing the engine architecture…
As a conclusion, this book was the first (to my knowledge at that time) complete book on a game engine. There are more complete books on parts of it (mainly 3D engines), but nothing on a complete engine. For this, it desevres some credits. Unfortunately, the drawbacks are too big to consider this book a viable option.