# Game Physics

**By**

- David Eberly, President of Geometric Tools, Inc (www.geometrictools.com), a company that specializes in software development for computer graphics, image analysis, and numerical methods. Previously, he was the Director of Engineering at Numerical Design Ltd (NDL), the company responsible for the real-time 3D game engine, Netlmmerse. His background includes a BA in Mathematics from Bloomsburg U, MS and PhD degrees in Mathematics from the U of Colorado at Boulder, and MS and PhD degrees in computer science from the U of North Carolina at Chapel Hill.

Create physically realistic 3D Graphics environments with this introduction to the ideas and techniques behind the process. Author David H. Eberly includes simulations to introduce the key problems involved and then gradually reveals the mathematical and physical concepts needed to solve them. He then describes all the algorithmic foundations and uses code examples and working source code to show how they are implemented, culminating in a large collection of physical simulations. The book tackles the complex, challenging issues that other books avoid, including Lagrangian dynamics, rigid body dynamics, impulse methods, resting contact, linear complementarity problems, deformable bodies, mass-spring systems, friction, numerical solution of differential equations, numerical stability and its relationship to physical stability, and Verlet integration methods. This book even describes when real physics isn’t necessary - and hacked physics will do.

View full description### Audience

Professionals or students working in game development, simulation, scientific visualization, or virtual worlds.Game Physics Developers, Games Physics Engine Programmers, Game Programmers, Technical Directors.Level: Intermediate to Advanced

### Book information

- Published: April 2010
- Imprint: MORGAN KAUFMANN
- ISBN: 978-0-12-374903-1

### Table of Contents

Game Physics 1st edition1 A Brief History of the World: A Summary of the Topics 2 Basic Concepts 3 Rigid Body Motion 4 Deformable Bodies 5 Physics Engines 6 Physics and Shader Programs 7 Linear Complementarity and Mathematical Programming 8 Differential Equations 9 Numerical Methods 10 Quaternions Appendices A Linear Algebra B Affine Algebra C Calculus D Ordinary Difference Equations A Summary of the Changes for the 2nd Edition:Naturally, Chapter 1 (Introduction) will be rewritten based on the contents for the second edition. The chapter on Physics Engines needs a significant rewrite. The goal will be to describe how to implement a classic rigid-body physics engine. And there will be source code to go with it, illustrating a generic collision detection system to go with the collision response people seem to associate with a physics engine. I will also include a new section on ragdoll physics, and there will be source code to go with this. I plan on inserting a new chapter (chapter 6 below) that will contain descriptions of various papers of interest in game physics. In particular, I will review publications by Ronald Fedkiw, Jos Stam, and James O'Brien, choosing a few of each to describe and to implement in source code and include on the CDROM for the book. This new material fills the void in the 1st edition - not much discussion of applications of particle systems, fluids, or gases. The chapter on shader programs (old Chapter 6) will be discarded in its entirety. Chapters 7 through 10 and Appendices A through D form the mathematical heart of the book. The appendices are effectively background material that a reader will be exposed to at a university. The chapters 7 through 10 are more advanced topics. I believe it is reasonable to break the book into two parts: Part I -The Physics 1 Introduction 2 Basic Concepts 3 Rigid Bodies 4 Deformable Bodies 5 Physics Engines [rigid body concepts] 6 Particles, Fluids, and Gases [deformable body concepts] Part II -The Mathematics 7 Linear Algebra 8 Affine Algebra 9 Calculus 10 Quaternions 11 Differential Equations 12 Difference Equations 13 Numerical Methods 14 Linear Complementarity and Mathematical Programming The idea is that Part I is readable immediately by anyone having a reasonable mathematics background. Portions of Part II can be read, as needed. The chapter on Linear Complementarity will be rewritten to omit the Lemke algorithm, replacing it by a discussion of iterative methods to solve LCP. The 2nd edition will contain a lot more source code. And, as mentioned previously, we should include CD-ROM icons in the margins to let readers know that there is source code to illustrate the concepts.