O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Game Engine Architecture, Second Edition, 2nd Edition

Book Description

Hailed as a "must-have textbook" (CHOICE, January 2010), the first edition of Game Engine Architecture provided readers with a complete guide to the theory and practice of game engine software development. Updating the content to match today’s landscape of game engine architecture, this second edition continues to thoroughly cover the major components that make up a typical commercial game engine.

New to the Second Edition

  • Information on new topics, including the latest variant of the C++ programming language, C++11, and the architecture of the eighth generation of gaming consoles, the Xbox One and PlayStation 4
  • New chapter on audio technology covering the fundamentals of the physics, mathematics, and technology that go into creating an AAA game audio engine
  • Updated sections on multicore programming, pipelined CPU architecture and optimization, localization, pseudovectors and Grassman algebra, dual quaternions, SIMD vector math, memory alignment, and anti-aliasing
  • Insight into the making of Naughty Dog’s latest hit, The Last of Us

The book presents the theory underlying various subsystems that comprise a commercial game engine as well as the data structures, algorithms, and software interfaces that are typically used to implement them. It primarily focuses on the engine itself, including a host of low-level foundation systems, the rendering engine, the collision system, the physics simulation, character animation, and audio. An in-depth discussion on the "gameplay foundation layer" delves into the game’s object model, world editor, event system, and scripting system. The text also touches on some aspects of gameplay programming, including player mechanics, cameras, and AI.

An awareness-building tool and a jumping-off point for further learning, Game Engine Architecture, Second Edition gives readers a solid understanding of both the theory and common practices employed within each of the engineering disciplines covered. The book will help readers on their journey through this fascinating and multifaceted field.

Table of Contents

  1. Foreword to the First Edition
  2. Foreword to the Second Edition
  3. Preface to the First Edition
  4. Preface to the Second Edition
  5. Acknowledgements
  6. I Foundations
  7. 1 Introduction
  8. 1.1 Structure of a Typical Game Team
  9. 1.2 What Is a Game?
  10. 1.3 What Is a Game Engine?
  11. 1.4 Engine Differences Across Genres
  12. 1.5 Game Engine Survey
  13. 1.6 Runtime Engine Architecture
  14. 1.7 Tools and the Asset Pipeline
  15. 2 Tools of the Trade
  16. 2.1 Version Control
  17. 2.2 Microsoft Visual Studio
  18. 2.3 Profiling Tools
  19. 2.4 Memory Leak and Corruption Detection
  20. 2.5 Other Tools
  21. 3 Fundamentals of Software Engineering for Games
  22. 3.1 C++ Review and Best Practices
  23. 3.2 Data, Code and Memory
  24. 3.3 Catching and Handling Errors
  25. 3.4 Pipelines, Caches and Optimization
  26. 4 3D Math for Games
  27. 4.1 Solving 3D Problems in 2D
  28. 4.2 Points and Vectors
  29. 4.3 Matrices
  30. 4.4 Quaternions
  31. 4.5 Comparison of Rotational Representations
  32. 4.6 Other Useful Mathematical Objects
  33. 4.7 Hardware-Accelerated SIMD Math
  34. 4.8 Random Number Generation
  35. II Low-Level Engine Systems
  36. 5 Engine Support Systems
  37. 5.1 Subsystem Start-Up and Shut-Down
  38. 5.2 Memory Management
  39. 5.3 Containers
  40. 5.4 Strings
  41. 5.5 Engine Configuration
  42. 6 Resources and the File System
  43. 6.1 File System
  44. 6.2 The Resource Manager
  45. 7 The Game Loop and Real-Time Simulation
  46. 7.1 The Rendering Loop
  47. 7.2 The Game Loop
  48. 7.3 Game Loop Architectural Styles
  49. 7.4 Abstract Timelines
  50. 7.5 Measuring and Dealing with Time
  51. 7.6 Multiprocessor Game Loops
  52. 7.7 Networked Multiplayer Game Loops
  53. 8 Human Interface Devices (HID)
  54. 8.1 Types of Human Interface Devices
  55. 8.2 Interfacing with a HID
  56. 8.3 Types of Inputs
  57. 8.4 Types of Outputs
  58. 8.5 Game Engine HID Systems
  59. 8.6 Human Interface Devices in Practice
  60. 9 Tools for Debugging and Development
  61. 9.1 Logging and Tracing
  62. 9.2 Debug Drawing Facilities
  63. 9.3 In-Game Menus
  64. 9.4 In-Game Console
  65. 9.5 Debug Cameras and Pausing the Game
  66. 9.6 Cheats
  67. 9.7 Screenshots and Movie Capture
  68. 9.8 In-Game Profiling
  69. 9.9 In-Game Memory Stats and Leak Detection
  70. III Graphics, Motion and Sound
  71. 10 The Rendering Engine
  72. 10.1 Foundations of Depth-Buffered Triangle Rasterization
  73. 10.2 The Rendering Pipeline
  74. 10.3 Advanced Lighting and Global Illumination
  75. 10.4 Visual Effects and Overlays
  76. 10.5 Further Reading
  77. 11 Animation Systems
  78. 11.1 Types of Character Animation
  79. 11.2 Skeletons
  80. 11.3 Poses
  81. 11.4 Clips
  82. 11.5 Skinning and Matrix Palette Generation
  83. 11.6 Animation Blending
  84. 11.7 Post-Processing
  85. 11.8 Compression Techniques
  86. 11.9 Animation System Architecture
  87. 11.10 The Animation Pipeline
  88. 11.11 Action State Machines
  89. 11.12 Animation Controllers
  90. 12 Collision and Rigid Body Dynamics
  91. 12.1 Do You Want Physics in Your Game?
  92. 12.2 Collision/Physics Middleware
  93. 12.3 The Collision Detection System
  94. 12.4 Rigid Body Dynamics
  95. 12.5 Integrating a Physics Engine into Your Game
  96. 12.6 Advanced Physics Features
  97. 13 Audio
  98. 13.1 The Physics of Sound
  99. 13.2 The Mathematics of Sound
  100. 13.3 The Technology of Sound
  101. 13.4 Rendering Audio in 3D
  102. 13.5 Audio Engine Architecture
  103. 13.6 Game-Specific Audio Features
  104. IV Gameplay
  105. 14 Introduction to Gameplay Systems
  106. 14.1 Anatomy of a Game World
  107. 14.2 Implementing Dynamic Elements: Game Objects
  108. 14.3 Data-Driven Game Engines
  109. 14.4 The Game World Editor
  110. 15 Runtime Gameplay Foundation Systems
  111. 15.1 Components of the Gameplay Foundation System
  112. 15.2 Runtime Object Model Architectures
  113. 15.3 World Chunk Data Formats
  114. 15.4 Loading and Streaming Game Worlds
  115. 15.5 Object References and World Queries
  116. 15.6 Updating Game Objects in Real Time
  117. 15.7 Events and Message-Passing
  118. 15.8 Scripting
  119. 15.9 High-Level Game Flow
  120. V Conclusion
  121. 16 You Mean There’s More? You Mean There’s More?
  122. 16.1 Some Engine Systems We Didn’t Cover Some Engine Systems We Didn’t Cover
  123. 16.2 Gameplay Systems
  124. Bibliography
  125. Index