5 of 5 people found the following review helpful:
4.0 out of 5 stars
It is a good book, January 26, 2001
This review is from: Building a 3D Game Engine in C++ (Paperback)
I purchased this book in 1995 when I was migrating from C to C++. Stepped through the code in the debugger, and put it aside, as it was for DOS, and I wanted to have a real Window, not DOS screen. Later, with Charles Petzold's "Programming Windows" help, I ported 3D engine DOS code to Windows31 and it worked, but I have to adapt it to the Windows events/kbd/mouse processing. Now in 6 years I recompiled the Windows 31 version on Windows 2000 Advanced Server in VS.NET Beta1 - it compiles and runs(!). I am learning C# these days, and will try to re-write Brian's engine in C#. My point is that the ideas of 3D engine experssed in this book are fundamental, as they are absorbed from the knowledge of many talented people named in the book. The bulk of engine design and the code is solid, it just takes time and patience to gain necessary experience to understand the engine, adopt it to the event-driven model, and move it to the platform of your choice. Overall book is worth the money spent for those who want to learn the core of 3D programming.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
4 of 4 people found the following review helpful:
3.0 out of 5 stars
OK for an overview of basic 3D game engine design, January 28, 2006
This review is from: Building a 3D Game Engine in C++ (Paperback)
This is a very old book using very old technology. The author is using raw C++ code and some assembly language to demonstrate a 3D game engine which he calls AST3D. At this point in time, you should not buy the book expecting to extract the code intact and have a state of the art 3D game engine. However, since the code is not wrapped up as part of a larger more complex programming library, the code snippets in the book are very readable and therefore useful as pseudocode to understand the components of a game engine at a building block level, and some of the more basic algorithm information is still useful too. The problem is that modern in-print books on 3D game engine architecture are usually so wrapped up in some very complex code library that it is hard to get a good handle on how to write an engine and the design decisions involved. That is why this book is still useful. The most useful chapter in the book is chapter 16, "The View from the Top", in which the structure of the 3D game engine is explained in text and in block diagram form, referring back to topics in previous chapters. There is a complete code listing in the back of the book, so even if the diskette is missing from your used copy, you can still go through the code and get an idea of what you would need to have in your own game engine. Just don't pay any more than a used-book price. I notice that Amazon does not show the table of contents so I do that here:
1. An Approach to Games Programming - Designing Real-Time Interactive Games;The Main Loop; Real-Time Interactivity; Fun: The Golden Rule of Programming
2 Graphics in Two Dimensions - Basic Raster Graphics Theory; Basic VGA Theory; The VGA Class; The ASTPallette Class; Debugging with Dual Monitors;
3. Fixed Point Math - Why Fixed Point Math?; What is Fixed Point Math?; The ASTFixedPoint Data Type; Mathematical Operations; Function Call Overhead and Borland C++; Why not a C++ Class?;Cumulative Error;
4. 3D Graphics Primer - 3D Coordinates; Coordinate Systems; Math Classes; Transformations; Trigonometry; Projections;
5. Optimizing By Design - The Main Loop; Event Driven Programming; The Graphics Pipeline;
6. Organizing Your Data - The C++ Language; The AstObject Class; Object Definitions; The AstWorld Class;
7. Input Devices - The Generic Input Device Class; 2D Input Devices; The Thrustmaster Cockpit System; Keyboard;
8. Hidden Surface Removal - Types of HSR; Backface Culling; Depth Sorting; The Z-Buffer;
9. Drawing and Object - Transforming from LCS to CCS; Projecting the Vertices; Drawing the Triangles;
10. Shading - Fundamentals; Flat Shading; Gouraud Shading; Flat versus Gouraud;
11. Texture Mapping - Linear Interpolation; What is a Texture Map?; Drawing a Texture Mapped Triangle; Loading Textures from a Disk; Room for Improvement;
12. Environmental Effects - Depth Cuing;
13. Simplifying for Speed - Object Culling; Distance Abstraction;
14. Collision and Boundary Detection - Object Collisions; Boundary Collisions;
15. Automatons - Implementing Automation; Timing and DoSomething(); Automatons in AST3D;
16. The View From the Top - Overall Structure of AST3D;
17. Advanced Topics - Custom Hardware; Multiplayer Games;
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
3 of 3 people found the following review helpful:
4.0 out of 5 stars
A good 3d book, October 14, 1998
By A Customer
This review is from: Building a 3D Game Engine in C++ (Paperback)
This is one of the only 3d graphics books I've come across which actually does a decent job in explaining how 3d graphics are done. I'm not saying its brilliant, but it is simple. Even though the examples are probably outdated, and probably designed for a 386/486 machine with no texture mapping, it still explains pretty timeless techniques which are still valid in 3d engines of today. I like it.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No