Game Engine Architecture (2nd edition)
Год выпуска: 2014
Автор: Jason Gregory
Жанр: Программирование
Издательство: A K Peters/CRC Press
ISBN: 978-1-4665-6006-2 (Ebook-PDF), 978-1-4665-6001-7 (Hardcover)
Формат: PDF
Качество: eBook (изначально компьютерное)
Количество страниц: 1018
Описание: 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.
Также на трекере имеется
первое издание этой книги.
Foreword to the First Edition
Foreword to the Second Edition
Preface to the First Edition
Preface to the Second Edition
Acknowledgements
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 Microsoft Visual Studio
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 Data, Code and Memory
3.3 Catching and Handling Errors
3.4 Pipelines, Caches and Optimization
4. 3D Math for Games
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
II Low-Level Engine Systems
5. Engine Support Systems
5.1 Subsystem Start-Up and Shut-Down
5.2 Memory Management
5.3 Containers
5.4 Strings
5.5 Engine Configuration
6. Resources and the File System
6.1 File System
6.2 The Resource Manager
7. The Game Loop and Real-Time Simulation
7.1 The Rendering Loop
7.2 The Game Loop
7.3 Game Loop Architectural Styles
7.4 Abstract Timelines
7.5 Measuring and Dealing with Time
7.6 Multiprocessor Game Loops
7.7 Networked Multiplayer Game Loops
8. Human Interface Devices (HID)
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
9. Tools for Debugging and Development
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 Screenshots and Movie Capture
9.8 In-Game Profiling
9.9 In-Game Memory Stats and Leak Detection
III Graphics, Motion and Sound
10. The Rendering Engine
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
10.5 Further Reading
11. Animation Systems
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
12. Collision and Rigid Body Dynamics
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 Advanced Physics Features
13. Audio
13.1 The Physics of Sound
13.2 The Mathematics of Sound
13.3 The Technology of Sound
13.4 Rendering Audio in 3D
13.5 Audio Engine Architecture
13.6 Game-Specific Audio Features
IV Gameplay
14. Introduction to Gameplay Systems
14.1 Anatomy of a Game World
14.2 Implementing Dynamic Elements: Game Objects
14.3 Data-Driven Game Engines
14.4 The Game World Editor
15. Runtime Gameplay Foundation Systems
15.1 Components of the Gameplay Foundation System
15.2 Runtime Object Model Architectures
15.3 World Chunk Data Formats
15.4 Loading and Streaming Game Worlds
15.5 Object References and World Queries
15.6 Updating Game Objects in Real Time
15.7 Events and Message-Passing
15.8 Scripting
15.9 High-Level Game Flow
V Conclusion
16. You Mean There’s More?
16.1 Some Engine Systems We Didn’t Cover
16.2 Gameplay Systems
Bibliography
Index