Game Engine Architecture (1st edition)
Год выпуска: 2009
Автор: Jason Gregory
Жанр: Программирование
Издательство: A K Peters/CRC Press
ISBN: 978-1-4398-6526-2 (Ebook-PDF), 978-1-5688-1413-1 (Hardcover)
Формат: PDF
Качество: eBook (изначально компьютерное)
Количество страниц: 853
Описание: This book covers both the theory and practice of game engine software development, bringing together complete coverage of a wide range of topics. The concepts and techniques described are the actual ones used by real game studios like Electronic Arts and Naughty Dog. The examples are often grounded in specific technologies, but the discussion extends way beyond any particular engine or API. The references and citations make it a great jumping off point for those who wish to dig deeper into any particular aspect of the game development process.
Intended as the text for a college level series in game programming, this book can also be used by amateur software engineers, hobbyists, self-taught game programmers, and existing members of the game industry. Junior game engineers can use it to solidify their understanding of game technology and engine architecture. Even senior engineers who specialize in one particular field of game development can benefit from the bigger picture presented in these pages.
Также на трекере имеется
второе издание этой книги.
Foreword
Preface
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 in C/C++
3.3 Catching and Handling Errors
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 Time Lines
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 Screen Shots and Movie Capture
9.8 In-Game Profiling
9.9 In-Game Memory Stats and Leak Detection
III Graphics and Motion
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
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 A Look Ahead: Advanced Physics Features
IV Gameplay
13. Introduction to Gameplay Systems
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
14. Runtime Gameplay Foundation Systems
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
V Conclusion
15. You Mean There’s More?
15.1 Some Engine Systems We Didn’t Cover
15.2 Gameplay Systems
Bibliography
Index