Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for your Game, 2nd Edition (Paperback) book cover

Game Physics Engine Development

How to Build a Robust Commercial-Grade Physics Engine for your Game, 2nd Edition

By Ian Millington

CRC Press

524 pages | 100 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9780123819765
pub: 2010-07-23
$63.95
x
Hardback: 9781138403123
pub: 2017-07-26
$195.00
x
eBook (VitalSource) : 9781498736411
pub: 2015-03-02
from $31.98


FREE Standard Shipping!

Description

Physics is really important to game programmers who need to know how to add physical realism to their games. They need to take into account the laws of physics when creating a simulation or game engine, particularly in 3D computer graphics, for the purpose of making the effects appear more real to the observer or player.The game engine needs to recognize the physical properties of objects that artists create, and combine them with realistic motion.

The physics ENGINE is a computer program that you work into your game that simulates Newtonian physics and predict effects under different conditions. In video games, the physics engine uses real-time physics to improve realism.

This is the only book in its category to take readers through the process of building a complete game-ready physics engine from scratch. The Cyclone game engine featured in the book was written specifically for this book and has been utilized in iPhone application development and Adobe Flash projects.  There is a good deal of master-class level information available, but almost nothing in any format that teaches the basics in a practical way. The second edition includes NEW and/or revised material on collision detection, 2D physics, casual game physics for Flash games, more references, a glossary, and end-of-chapter exercises. The companion website will include the full source code of the Cyclone physics engine, along with example applications that show the physics system in operation. 

Reviews

Praise for 1st edition:

"The first game physics book to emphasize building an actual engine…his book fills a gap by demonstrating how you actually build a physics engine." - Dave Eberly, President, Geometric Tools.

"A competent programmer with sufficient mathematical sophistication could build a physics engine just from the text and equations--even without the accompanying source code. You can't say this about a lot of books!" - Philip J. Schneider, Industrial Light & Magic.

Table of Contents

Introduction

What is Game Physics?

What is a Physics Engine?

Approaches to Physics Engines

The Mathematics of Physics Engines

The Source Code in the Book

How the Book is Structured

PART I Particle Physics

The Mathematics of Particles

Vectors

Calculus

Summary

Exercises

The Laws of Motion

The Particle

The First Two Laws

The Integrator

Summary

Exercises

The Particle Physics Engine

Ballistics

Fireworks

Summary

Projects

PART II Mass Aggregate Physics

Adding General Forces

D’Alembert’s Principle

Force Generators

Built-In Gravity and Damping

Summary

Exercises

Springs and Spring-Like Things

Hook’s Law

Spring-Like Force Generators

Stiff Springs

Summary

Exercises

Hard Constraints

Simple Collision Resolution

Collision Processing

The Contact Resolver Algorithm

Collision-Like Things

Summary

Exercises

The Mass Aggregate Physics Engine

Overview of the Engine

Using the Physics Engine

Summary

Projects

PART III Rigid-Body Physics

The Mathematics of Rotations

Rotating Objects in 2D

Orientation in 3D

Angular Velocity and Acceleration

Implementing the Mathematics

Summary

Exercises

Laws of Motion for Rigid Bodies

The Rigid Body

Newton-2 for Rotation

D’Alembert for Rotation

The Rigid-Body Integration

Summary

Exercises

The Rigid-Body Physics Engine

Overview of the Engine

Using the Physics Engine

Summary

Projects

PART IV Collision Detection

Collision Detection

The Collision Detection Pipeline

Broad-Phase Collision Detection

Bounding Volume Hierarchies

Spatial Partitioning

Summary

Exercises

Generating Contacts

Collision Geometry

Contact Generation

Simple Collision Algorithms

Separating Axis Tests

Coherence

Summary

Exercises

PART V Contact Physics

Collision Resolution

Impulse and Impulsive Torque

Collision Impulses

Resolving Interpenetration

The Collision Resolution Process

Summary

Exercises

Resting Contacts and Friction

Resting Forces

Microcollisions

Types of Friction

Implementing Friction

Friction and Sequential Contact Resolution

Summary

Exercises

Stability and Optimization

Stability

Optimizations

Summary

Putting It All Together

Overview of the Engine

Using the Physics Engine

Limitations of the Engine

Summary

Projects

PART VI Further Topics in Physics

Physics in Two Dimensions

2D or 3D?

Vector Mathematics

Particle and Mass Aggregate Physics

The Mathematics of Rotation

Rigid-Body Dynamics

Collision Detection

Collision Response

Summary

Projects

Other Programming Languages

ActionScript 3

C

Java

C#

Other Scripting Languages

Other Types of Physics

Simultaneous Contact Resolution

Reduced Coordinate Approaches

Summary

Appendix A Useful Inertia Tensors

Discrete Masses

Continuous Masses

Common Shapes

Cuboid

Sphere

Cylinder

Cone

Hemisphere

Moments of Inertia in 2D

Common 2D Shapes

Appendix B Useful Friction Coefficients

Appendix C Mathematics Summary

Vectors

Quaternions

Matrices

Integration

Physics

Other Forumlas

About the Author

Ian Millington is a partner of IPR Ventures, a consulting company developing next-generation AI technologies for entertainment, modeling, and simulation. Previously he founded Mindlathe Ltd, the largest specialist AI middleware company in computer games, working with on a huge range of game genres and technologies. He has a long background in AI, including PhD research in complexity theory and natural computing. He has published academic and professional papers and articles on topics ranging from paleontology to hypertext.

Subject Categories

BISAC Subject Codes/Headings:
ART046000
ART / Digital
COM012040
COMPUTERS / Programming / Games