Description
Efnisyfirlit
- Cover Page
- Half Title page
- Title Page
- Copyright Page
- Dedication
- Contents
- Preface
- I Foundations
- 1 Introduction
- 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
- 2 Tools of the Trade
- 2.1 Version Control
- 2.2 Compilers, Linkers and IDEs
- 2.3 Profiling Tools
- 2.4 Memory Leak and Corruption Detection
- 2.5 Other Tools
- 3 Fundamentals of Software Engineering for Games
- 3.1 C++ Review and Best Practices
- 3.2 Catching and Handling Errors
- 3.3 Data, Code and Memory Layout
- 3.4 Computer Hardware Fundamentals
- 3.5 Memory Architectures
- 4 Parallelism and Concurrent Programming
- 4.1 Defining Concurrency and Parallelism
- 4.2 Implicit Parallelism
- 4.3 Explicit Parallelism
- 4.4 Operating System Fundamentals
- 4.5 Introduction to Concurrent Programming
- 4.6 Thread Synchronization Primitives
- 4.7 Problems with Lock-Based Concurrency
- 4.8 Some Rules of Thumb for Concurrency
- 4.9 Lock-Free Concurrency
- 4.10 SIMD/Vector Processing
- 4.11 Introduction to GPGPU Programming
- 5 3D Math for Games
- 5.1 Solving 3D Problems in 2D
- 5.2 Points and Vectors
- 5.3 Matrices
- 5.4 Quaternions
- 5.5 Comparison of Rotational Representations
- 5.6 Other Useful Mathematical Objects
- 5.7 Random Number Generation
- II Low-Level Engine Systems
- 6 Engine Support Systems
- 6.1 Subsystem Start-Up and Shut-Down
- 6.2 Memory Management
- 6.3 Containers
- 6.4 Strings
- 6.5 Engine Configuration
- 7 Resources and the File System
- 7.1 File System
- 7.2 The Resource Manager
- 8 The Game Loop and Real-Time Simulation
- 8.1 The Rendering Loop
- 8.2 The Game Loop
- 8.3 Game Loop Architectural Styles
- 8.4 Abstract Timelines
- 8.5 Measuring and Dealing with Time
- 8.6 Multiprocessor Game Loops
- 9 Human Interface Devices
- 9.1 Types of Human Interface Devices
- 9.2 Interfacing with a HID
- 9.3 Types of Inputs
- 9.4 Types of Outputs
- 9.5 Game Engine HID Systems
- 9.6 Human Interface Devices in Practice
- 10 Tools for Debugging and Development
- 10.1 Logging and Tracing
- 10.2 Debug Drawing Facilities
- 10.3 In-Game Menus
- 10.4 In-Game Console
- 10.5 Debug Cameras and Pausing the Game
- 10.6 Cheats
- 10.7 Screenshots and Movie Capture
- 10.8 In-Game Profiling
- 10.9 In-Game Memory Stats and Leak Detection
- III Graphics, Motion and Sound
- 11 The Rendering Engine
- 11.1 Foundations of Depth-Buffered Triangle Rasterization
- 11.2 The Rendering Pipeline
- 11.3 Advanced Lighting and Global Illumination
- 11.4 Visual Effects and Overlays
- 11.5 Further Reading
- 12 Animation Systems
- 12.1 Types of Character Animation
- 12.2 Skeletons
- 12.3 Poses
- 12.4 Clips
- 12.5 Skinning and Matrix Palette Generation
- 12.6 Animation Blending
- 12.7 Post-Processing
- 12.8 Compression Techniques
- 12.9 The Animation Pipeline
- 12.10 Action State Machines
- 12.11 Constraints
- 13 Collision and Rigid Body Dynamics
- 13.1 Do You Want Physics in Your Game?
- 13.2 Collision/Physics Middleware
- 13.3 The Collision Detection System
- 13.4 Rigid Body Dynamics
- 13.5 Integrating a Physics Engine into Your Game
- 13.6 Advanced Physics Features
- 14 Audio
- 14.1 The Physics of Sound
- 14.2 The Mathematics of Sound
- 14.3 The Technology of Sound
- 14.4 Rendering Audio in 3D
- 14.5 Audio Engine Architecture
- 14.6 Game-Specific Audio Features
- IV Gameplay
- 15 Introduction to Gameplay Systems
- 15.1 Anatomy of a Game World
- 15.2 Implementing Dynamic Elements: Game Objects
- 15.3 Data-Driven Game Engines
- 15.4 The Game World Editor
- 16 Runtime Gameplay Foundation Systems
- 16.1 Components of the Gameplay Foundation System
- 16.2 Runtime Object Model Architectures
- 16.3 World Chunk Data Formats
- 16.4 Loading and Streaming Game Worlds
- 16.5 Object References and World Queries
- 16.6 Updating Game Objects in Real Time
- 16.7 Applying Concurrency to Game Object Updates
- 16.8 Events and Message-Passing
- 16.9 Scripting
- 16.10 High-Level Game Flow
- V Conclusion
- 17 You Mean There’s More?
- 17.1 Some Engine Systems We Didn’t Cover
- 17.2 Gameplay Systems
- Bibliography
- Index




