A full-blown game engine is now an important industrial asset. Current engines exist with licensing fees of several $100,000, plus profit share costs. Because of these high costs, hobbyist game programmers are eager to learn how to write their own engines. The availability of a game engine which is ready to rock simplifies the development process of a game, allowing developers to concentrate on the game and gameplay experience. "3D Game Engine Programming" shows game programmers how to develop such an engine.
Author(s): Stefan Zerbst; Oliver Düvel
Year: 2004
3D Game Emgine Programming
Acknowledgments
About the Authors
About the Series Editor
Contents at a Glance
Contents
Introduction
PART I
Introduction to the Topics
Chapter 1
3D Engines and Game Programming
Buzzword Engine
A Kind of Magic
The Development Process of a Video Game
Direct3D versus OpenGL Wars
Why Do It the Hard Way If There Is an Easy Way?
Get Ready to Rock
Chapter 2
Designing the Engine
Requirements for the Engine
API Independence through Interface Definitions
The Structure of the Engine
Components of the Engine
One Look Back, Two Steps Forward
Chapter 3
Engineering the Engine
What Is an Interface?
Defining the Interface
Workspace for the Implementations
Implementing the Static Library
Implementing the DLL
Testing the Implementation
One Look Back, Two Steps Forward
Chapter 4
Fast 3D Calculus
Fast, Faster, the Fastest
Working with Vectors
Working with Matrices
Working with Rays
Working with Planes
Working with AABBs and OBBs
Working with Polygons
Working with Quaternions
One Look Back, Two Steps Forward
PART II
Rendering Graphics
Chapter 5
Materials, Textures, and Transparency
Middle Management
A Class for Skins
Adding Skins and Textures
Adding Textures
Adjusting the Transparency of Textures
One Look Back, Two Steps Forward
Chapter 6
The Render Device of the Engine
Project Settings
View and Projection
Vertex Structures
Shader Support
Activating Render States
Rendering Primitives Efficiently
Rendering Text, Points, and Lines
Rendering Point Lists
Presenting a Scene
Demo Application Using the DLL
One Look Back, Two Steps Forward
Chapter 7
3D Pipelines and Shaders
Shader Basics
Shader Techniques and Samples
One Look Back, Two Steps Forward
Chapter 8
Loading and Animating 3D Models
Triumphant Advance of Skeletal Animation
The CBF File Format
Processing the Data in the Memory
Using the Animated Model
One Look Back, Two Steps Forward
PART III
Support Modules for the Engine
Chapter 9
The Input Interface of the Engine
Good Old Interface Design
Interface Definition for an Input Class
Base Class for Input Devices
Getting Down to the Keys
The Pied Piper of Redmond
No Joy Without a Joystick
Implementing the Interface
Demo Application
One Look Back, Two Steps Forward
Chapter 10
The Audio Interface of the Engine
Quick and Painlessly
Implementing the Interface
Demo Application
One Look Back, Two Steps Forward
Chapter 11
The Network Interface of the Engine
Network Games
Network Architecture
Network Technology
Implementing a Network Library
Demo Application
One Look Back, Two Steps Forward
Chapter 12
Timing and Movement in the Engine
Different Camera Modes
Movement by a ZFXMovementController
Demo Application
One Look Back, Two Steps Forward
Chapter 13
Scene Management
The Concept of Scene Management
Scene Management Techniques
Implementing a BSP Tree
Class Declaration
Implementing an Octree
Demo Application: Octree and BSP Tree
One Look Back, Two Steps Forward
PART IV
Black Art of Game Programming
Chapter 14
Computer-Aided Design (CAD) Tools
Using CAD Tools
Low-Polygon Editor: PanBox-Edit
Class Design of the Tool
Selected Aspects of the GUI
One Look Back, Two Steps Forward
Chapter 15
Deathmatch Shooter
Deathmatch Shooter: Pandora’s Legacy
In the Shadows of Ourselves
Loading a Level
Rendering a Level
Integrating Characters
CGame, a Class of Its Own
One Look Back, Two Steps Forward
Epilogue
INDEX
End of Book