3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics (Hardcover)

David Eberly -



Order This Book | Authors | Contents | Web-Enhanced | Related Titles

Game Developer Front Line Finalist '01 3D Game Engine Design was chosen as a finalist for Game Developer magazine's Front Line Awards for 2001. The book was selected by the Front Line Awards judging panel, comprised of experienced professional game developers working closely with the editorial staff. These industry experts have recognized this book as a useful tool for game development, and its nomination is an acknowledgement from the most experienced professionals in interactive entertainment.

"Virtually all the books on building 3D game engines cover the basics: here's a polygon, here's a transformation matrix, here's a perspective projection, and so on. The problem is that you can't make a professional quality game with just the basics. This leaves a large gap between you and your goal of creating a great game engine. With this book, Dave is launching a huge boulder into the gap, helping you scamper to your destination."

-- Eric Yiskis Lead Programmer, Oddworld Inhabitants

3D Game Engine Design is the first book to go beyond basic descriptions of algorithms and accurately demonstrate the complex engineering process required to design and build a real-time graphics engine to support physical realism. Faster algorithms will always win out over faster processors and assembly-language optimization techniques. Implementing those algorithms, however, can be a challenge for even experienced programmers. This book provides rigorous explanations and derivations of all the essential concepts and techniques. Ideas are revealed step by step with numerous code examples and illustrations. Source code implementations are included on the companion CD-ROM to help you understand the full progression from idea, to algorithm, to working code. Since algorithms are not used in isolation, the source code for a complete engine is provided to bring crucial context to the implementations. This book and CD-ROM offer the most comprehensive professional reference available for the development of 3D game engines.


  • Designed for professionals working in game development, simulation, scientific visualization, or virtual worlds.
  • Written by a respected game engineer and designer of a leading commercial game engine.
  • Thoroughly describes the algorithms-fully implemented in working code-that are the key to writing the fastest, most efficient code possible.
  • Provides source code for Windows 95/98/NT/2000, Linux/Unix, and Macintosh platforms.
About the software:
Includes a CD-ROM with C++ source code implementations of all the algorithms covered in the text as well as source code for a complete game engine. Updates for the engine, new ports (such as for the Macintosh), FAQs, and additional material on real-time graphics can be found at WildMagic http://www.wild-magic.com. The renderer layer of the engine is abstract and can work with whichever API is desired. An OpenGL-based renderer, DirectX8 (Direct3D), and a GLUT-based hardware renderer for either Windows or Linux, are included.


  1. Microsoft Windows 95/98/NT/2000 on a PC
    • Compilers = {Microsoft Visual C++ 6.0 SP5}
    • Renderers = {GLUT-based OpenGL, Windows-based OpenGL, DirectX8}
    • Application layers = {GLUT-based, Windows-based}
  2. Red Hat Linux 7.x on a PC
    • Compilers = {g++ (latest version)}
    • Renderers = {GLUT-based OpenGL}
    • Application layers = {GLUT-based}
  3. Mac OS 9.1/10.1 on a PowerMac G4
    • Compilers = {CodeWarrior 7.0}
    • Renderers = {GLUT-based OpenGL, Apple-based OpenGL}
    • Application layers = {GLUT-based, Apple-based}
  4. SGI IRIX (Only the "free" source has been tested, not the game engine source)
    • Compilers = {SGI MipsPro CC 7.2.x}
Source code for 3D Game Engine Design is used by many companies and organizations for product development and research. Copies of the licenses for commercial and non-commercial use of the source code are available for download at:


Dave Eberly is the President of Magic Software, Inc. (www.magic-software.com), a company known for its Web site that offers free source code and documentation for computer graphics, image analysis, and numerical methods. Previously, he was the Director of Engineering at Numerical Design Limited, the company responsible for the real-time 3D game engine, NetImmerse. His background includes a B.A. degree in mathematics from Bloomsburg University, M.S. and Ph.D. degrees in mathematics from the University of Colorado at Boulder, and M.S. and Ph.D. degrees in computer science from the University of North Carolina at Chapel Hill. Dave is series editor for the Morgan Kaufmann Series in Interactive 3D Technology. He is also co-author with Philip Schneider of the forthcoming Geometry Tools for Computer Graphics (August 2002), and author of Game Physics (December 2002), both to be published by Morgan Kaufmann.

Table of Contents:


Sample Chapters
The Introduction
Chapter 4 part 1
Chapter 4 part 2

Educator Materials for Game Engine Design courses

Course notes prepared by Dave Eberly for his Game Engine Design course taught at the University of North Carolina at Chapel Hill are available:

1. GameEngineSlides.pdf (The course materials.)
2. MethodOfSeparatingAxes.pdf (Supplemental materials not found in the book.)
3. PolylineReduction.pdf (Supplemental materials not found in the book.)
4. GameEngineSlides.zip (All the LaTeX source, PNG images, and PDF files for customization.)

A postmortem written by a group of Dave Eberly's students from his Game Engine Design course at UNC-Chapel Hill can be found at: http://www.gamasutra.com/features/20011109/whoopass_pfv.htm

Related Titles:

Software Engineering & Programming
Computer Graphics & Geometric Modeling