Home Page Image

Topics include:

  • large-scale C++ software architecture in a games context
  • mathematics for game programming
  • game development tools for debugging, source control and profiling
  • engine subsystems including engine foundation systems, rendering, collision, physics, character animation and game world object models
  • multiplatform game engines
  • game programming in multiprocessor environments
  • tools pipelines and the game asset database


Table of Contents

  1. Introduction
  2. 1.1   Structure of a Typical Game Team
    1.2   What Is a Game?
    1.3   What Is a Game Engine?
    1.4   Engine Differences Across Genres
    1.5   Game Engine Survey
    1.6   Runtime Engine Architecture
    1.7   Tools and the Asset Pipeline
  3. Tools of the Trade
  4. 2.1   Version Control
    2.2   Microsoft Visual Studio
    2.3   Profiling Tools
    2.4   Memory Leak and Corruption Detection
    2.5   Other Tools
  5. Fundamentals of Software Engineering for Games
  6. 3.1   C++ Review and Best Practices
    3.2   Data, Code and Memory in C/C++
    3.3   Catching and Handling Errors
  7. 3D Math for Games
  8. 4.1   Solving 3D Problems in 2D
    4.2   Points and Vectors
    4.3   Matrices
    4.4   Quaternions
    4.5   Comparison of Rotational Representations
    4.6   Other Useful Mathematical Objects
    4.7   Hardware-Accelerated SIMD Math
    4.8   Random Number Generation
  9. Engine Support Systems
  10. 5.1   Subsystem Start-Up and Shut-Down
    5.2   Memory Management
    5.3   Containers
    5.4   Strings
    5.5   Engine Configuration
  11. Resources and the File System
  12. 6.1   File System
    6.2   The Resource Manager
  13. The Game Loop and Real-Time Simulation
  14. 7.1   The Rendering Loop
    7.2   The Game Loop
    7.3   Game Loop Architectural Styles
    7.4   Abstract Time Lines
    7.5   Measuring and Dealing with Time
    7.6   Multiprocessor Game Loops
    7.7   Networked Multiplayer Game Loops
  15. Human Interface Devices (HID)
  16. 8.1   Types of Human Interface Devices
    8.2   Interfacing with a HID
    8.3   Types of Inputs
    8.4   Types of Outputs
    8.5   Game Engine HID Systems
    8.6   Human Interface Devices in Practice
  17. Tools for Debugging and Development
  18. 9.1   Logging and Tracing
    9.2   Debug Drawing Facilities
    9.3   In-Game Menus
    9.4   In-Game Console
    9.5   Debug Cameras and Pausing the Game
    9.6   Cheats
    9.7   Screen Shots and Movie Capture
    9.8   In-Game Profiling
    9.9   In-Game Memory Stats and Leak Detection
  19. The Rendering Engine
  20. 10.1   Foundations of Depth-Buffered Triangle Rasterization
    10.2   The Rendering Pipeline
    10.3   Advanced Lighting and Global Illumination
    10.4   Visual Effects and Overlays
  21. Animation Systems
  22. 11.1   Types of Character Animation
    11.2   Skeletons
    11.3   Poses
    11.4   Clips
    11.5   Skinning and Matrix Palette Generation
    11.6   Animation Blending
    11.7   Post-Processing
    11.8   Compression Techniques
    11.9   Animation System Architecture
    11.10   The Animation Pipeline
    11.11   Action State Machines
    11.12   Animation Controllers
  23. Collision and Rigid Body Dynamics
  24. 12.1   Do You Want Physics in Your Game?
    12.2   Collision/Physics Middleware
    12.3   The Collision Detection System
    12.4   Rigid Body Dynamics
    12.5   Integrating a Physics Engine into Your Game
    12.6   A Look Ahead: Advanced Physics Features
  25. Introduction to Gameplay Systems
  26. 13.1   Anatomy of a Game World
    13.2   Implementing Dynamic Elements: Game Objects
    13.3   Data-Driven Game Engines
    13.4   The Game World Editor
  27. Runtime Gameplay Foundation Systems
  28. 14.1   Components of the Gameplay Foundation System
    14.2   Runtime Object Model Architectures
    14.3   World Chunk Data Formats
    14.4   Loading and Streaming Game Worlds
    14.5   Object References and World Queries
    14.6   Updating Game Objects in Real Time
    14.7   Events and Message-Passing
    14.8   Scripting
    14.9   High-Level Game Flow
  29. You Mean There’s More?
  30. 15.1   Some Engine Systems We Didn’t Cover
    15.2   Gameplay Systems
  31. Index
  32. References