A major revision of the international bestseller on game programming
About the Author
Dave Eberly is the president of Geometric Tools, Inc. (www.geometrictools.com), a company that specializes in software development for computer graphics, image analysis, and numerical methods. Previously, he was the director of engineering at Numerical Design Ltd. (NDL), the company responsible for the real-time 3D game engine, NetImmerse. He also worked for NDL on Gamebryo, which was the next-generation engine after NetImmerse. His background includes a BA degree in mathematics from Bloomsburg University, MS and PhD degrees in mathematics from the University of Colorado at Boulder, and MS and PhD degrees in computer science from the University of North Carolina at ChapelHill. He is the author of 3D Game Engine Design, 2nd Edition (2006), 3D Game Engine Architecture (2005), Game Physics (2004), and coauthor with Philip Schneider of Geometric Tools for Computer Graphics (2003), all published by Morgan Kaufmann. As a mathematician, Dave did research in the mathematics of combustion, signal and image processing, and length-biased distributions in statistics. He was an associate professor at the University of Texas at San Antonio with an adjunct appointment in radiology at the U.T. Health Science Center at San Antonio. In 1991, he gave up his tenured position to re-train in computer science at the University of North Carolina. After graduating in 1994, he remained for one year as a research associate professor in computer science with a joint appointment in the Department of Neurosurgery, working in medical image analysis. His next stop was the SAS Institute, working for a year on SAS/Insight, a statistical graphics package. Finally, deciding that computer graphics and geometry were his real calling, Dave went to work for NDL (which is now Emergent Game Technologies), then to Magic Software, Inc., which later became Geometric Tools, Inc. Dave's participation in the newsgroup comp.graphics.algorit
Most Helpful Customer Reviews on Amazon.com (beta)
123 of 132 people found the following review helpful
Does not deliver as promisedNov. 14 2000
- Published on Amazon.com
The title of this book and the back cover convinced me to buy this book on sight. "At last," I thought, "a book covering the dificult task of game engine architechture." I was very wrong. This book does a fair job of going one level deeper than the Game Programming Gurus series, or 3D Game programming by De Geos, or any of the hack retained mode Direct X books, but it does not come close to the full knowledge of Foley - Van Dam, or the Watt and Watt books. It is written at a math level that if you can easily understand it, you don't need it. This book, ignoring its title for a minute is a poor substitute for Real Time Rendering even at twice the thickness. It is more complicated than the two excellent books by the Watt brothers, 3D Computer Graphics and Advanced Animation and Rendering Techniques. It fails to explain architecture even remotely as well as Lakos' book Large Scale C++. In short it does a poor job at replicating what many books have done before. What it does do though, is expose a glaring hole in all the books relating to graphics programming and games in particular. There still is no good book on designing a game engine. I work in the industry, and while I've seen some briliant ideas on visual effects and performance gains, I have never seen an architecture that wouldn't have the lead programmer fired from any other industry. There is a need for what the title indicates, but the subject is contained in appendix A. The rest of the book is about culling and collisions and ray tracing and every other low level library function I could have gotten from a dozen books. There is massive amounts of source code. And while reasonably well written as a library, the whole is woefully lacking as a framework. This book should have been the other way around. We all have the libraries, how about a little discussion on the framework to hang them in.
21 of 21 people found the following review helpful
You'd better know a *lot* of advanced math before startingJuly 7 2001
- Published on Amazon.com
First off, the positives: 1. Dr. Eberly is writing about a subject which has never really been dealt with at an intermediate or advanced level. "Game Programming For Dummies" this ain't. 2. The discussions and subjects tackled are top-notch. If you really want to know how a solid graphics engine works, aside from stealing the code to Quake 2 and sifting through it (not an easy read, I'm sure), this is the best place to begin. All sorts of advanced topics are touched upon, things you won't find in any other book. 3. The writing itself is quite good, especially considering the technical discussions involved. Sad to say, however, the book gets only rates average for the following reasons: 1. The mathematical understanding needed to make sense of much of the text is considerably more than the preface and some reviewers would have you think, and 2. For a 3D "Game Programming" book, there are damn few illustrations in parts. The math used in this book requires you to know a fair amount of later-semester calculus, to be very fresh on your advanced linear algebra, and to even know some statistics. Covariance matrices? They're in there. Those of you who took calculus a few years back and forgot some of it, or maybe had linear algebra as a freshman, are in for quite a surprise. And those who haven't taken many math classes, period, can save your $60 and just forget it. I don't disagree with anyone who says you need to know a lot of math in order to work with computer graphics, and 3D in general. Anyone tackling the subjects Dr. Eberly does had better know their stuff. It's just that a shameless plug by the author for his favorite math texts (or a better primer) might have helped a lot of readers get up to speed. Even if you've got enough of a math background to follow the technical discussions, the bigger problem is the lack of diagrams in the book. When you're talking about bounding volumes or collision detection, it really helps to be able to see a sample of what the author is talking about. Instead, all we get for much of the book is equation after equation, with no images to try and place things against. Whether this was Dr. Eberly's oversight, or the fault of the publisher is unimportant. The book in it's present form just won't do for any but those looking for a code tidbit, or your run-of-the mill PhD who likes to sketch out his own illustrations as he reads the text. The rest of us will have a hard time making use of it. It's too bad, considering it's strengths.
16 of 17 people found the following review helpful
Good, but not what you might expectApril 15 2005
- Published on Amazon.com
I read this a few years ago, and have referred back to it many times, but I only recently realized that I neglected to write a review of it.
This book is well-written and contains a lot of useful information. The author is one of the few people qualified to write a book of this nature, and he has done an admirable job. That said, the title is pretty misleading, since the book has very little to say about the design of a game engine. Instead, it focuses on implementation details and the math involved with them. Topics covered include geometrical methods, the graphics pipeline, tree-based scene graphics, intersections, collision detection, curves and surfaces, animation, terrain, spatial sorting (quad/octrees, portals, BSPs), special effects, object-oriented infrastructure, and numerical methods. The author doesn't gloss over anything, providing detailed mathematical derivations of how things work.
Unfortunately, the math is so heavy that unless you're already pretty familiar with the subject matter, you'll probably have a hard time with the book. Therefore, I think that the target audience is much smaller that the group that would be attracted by the title.
If you're involved in game engine development or just want to deepen your knowledge, I think you'll appreciate the fact that the author doesn't pull any punches. Otherwise, you'll probably be more interested in the author's new book 3D Game Engine Architecture, which was recently released.
14 of 15 people found the following review helpful
Excellent reference, not a tutorialMarch 30 2002
- Published on Amazon.com
This is an extremely thorough text and covers a wide variety of topics in a fairly detailed manner. The book is sort of a survey or "toolkit" of game and graphics engine techniques. it is unlikely that in writing a single game you will use everything in this book - but having the exposure to the numerous topics he dicsusses is good. As others have noted, he's "heavy on the math." For me, this is a good thing, since I intend to use the book as a reference, not as a primer. While he is "heavy on the math" he is "light on the diagrams," really the only negative about this book at all. I found the coverage of intersection and collision tests, and the section on numerical methods in the end, both to be especially good compared to other books. In general, this book is an excellent reference for experienced readers, not a how-to for beginners. Very thorough, well written. The book feels academic and authoritative - however, the author has the in-the-trenches experience which lends him creditibility. Once you know the basics, this book is a must-have reference book.
10 of 10 people found the following review helpful
Highly recommended for those learning computer graphics.Dec 3 2000
- Published on Amazon.com
I do think this is a great book for programmers. The fact that it comes with well written code libraries makes it a very powerful teaching tool. I was very pleased that an updated version of the code was available online that fixed some bugs. Many games use technologies that are discussed in this book. While many games may solve problems in much narrower ways because of the particular focus that their project has, this book covers good general approaches that are definitely valuable knowledge. One standout for me is the section on culling and clipping where different clip and transform sequences are discussed. Games very often use different sequences for clip and transform based on what is being rendered, but many graphics books only address a single traditional method. The appendix discussion and code implementation of c++ persistent storage is a good basis for tools code. Personally, I really like the author's kind of code style which has practical and readable c++ coding techniques similar those used in MFC. To be fair, the book doesn't really talk about a game engine, it talks about the many 3d math and rendering techniques that part of what is needed for a game engine.