800 likes | 945 Views
This overview addresses critical problems faced by game developers when implementing physics. It highlights key considerations such as "knowing when to cheat" for performance, simplifying complex bodies, and effectively moving objects within a simulation. The guide also examines the intricacies of collision detection and resolution, simulation baggage, and the challenges of real-time physics representation. With insights into kinematics, dynamics, and energy preservation, this resource is vital for creating engaging and realistic game experiences without overwhelming system resources.
E N D
Physics for Games Programmers Problem Overview Squirrel EiserlohTechnical DirectorRitual Entertainmentsquirrel@eiserloh.netwww.ritual.comwww.algds.org
Types of Problems • Knowing when to cheat • Simplifying things • Giving shape to things • Moving things around • Simulation baggage • Detecting (and resolving) collisions • Sustained interactions • Dealing with the impossible • Making it fast enough
Knowing When to Cheat • Discrete physics simulation falls embarrassingly short of reality. • “Real” physics is prohibitively expensive... • ...so we cheat. • We need to cheat enough to be able to run in real time. • We need to not cheat so much that things break in a jarring and unrecoverable way. • Much of the challenge is knowing how and when to cheat.
Knowing When to Cheat • Ask: • “Will the player notice?” • “Will the player care?” • “Will the results be predictable?” • “Are we at least cheating in a consistent way?” • “Will the simulation break?” • If the simulation breaks, they will notice and they will care • Some crimes are greater than others
Simplifying Things • Simplified bodies
Simplifying Things • Simplified bodies • Even more simplified bodies
Simplifying Things • Simplified bodies • Even more simplified bodies • Convex bodies
Simplifying Things • Simplified bodies • Even more simplified bodies • Convex bodies • Homogeneous bodies
Simplifying Things • Simplified bodies • Even more simplified bodies • Convex bodies • Homogeneous bodies • Rigid bodies
Simplifying Things • Simplified bodies • Even more simplified bodies • Convex bodies • Homogeneous bodies • Rigid bodies • Indestructible bodies
Simplifying Things • Movement is often assumed to be in a vacuum (ignoring air resistance) • Even when air resistance does get simulated, it is hugely oversimplified
Simplifying Things • Collisions are often assumed to be perfect and elastic • That is, 100% of the energy before the collision is maintained after the collision • Think billiard balls
Giving Shape to Things • N-sphere • 2d: Disc • 3d: Sphere
Giving Shape to Things • N-sphere • 2d: Disc • 3d: Sphere • Simplex • 2d: Triangle • 3d: Tetrahedron
Giving Shape to Things • N-sphere • 2d: Disc • 3d: Sphere • Simplex • 2d: Triangle • 3d: Tetrahedron • Convex Polytope • 2d: Convex Polygon • 3d: Convex Polyhedron • a.k.a. “Convex Hull” • a.k.a. “Brush” (Quake)
Giving Shape to Things • Discrete Oriented Polytope (DOP)
Giving Shape to Things • Discrete Oriented Polytope (DOP) • Oriented Bounding Box (OBB)
Giving Shape to Things • Discrete Oriented Polytope (DOP) • Oriented Bounding Box (OBB) • Axis-Aligned Bounding Box (AABB)
Giving Shape to Things • Discrete Oriented Polytope (DOP) • Oriented Bounding Box (OBB) • Axis-Aligned Bounding Box (AABB) • Capsule
Giving Shape to Things • Discrete Oriented Polytope (DOP) • Oriented Bounding Box (OBB) • Axis-Aligned Bounding Box (AABB) • Capsule • Cylinder (3d only)
Moving Things Around • Kinematics • Describes motion • Uses position, velocity, momentum, acceleration
Moving Things Around • Kinematics • Describes motion • Uses position, velocity, momentum, acceleration • Dynamics • Explains motion • Uses forces • ...and impulses
Moving Things Around • Kinematics • Describes motion • Uses position, velocity, momentum, acceleration • Dynamics • Explains motion • Forces (F=ma) • Impulses • Rotation • Torque • Angular momentum • Moment of inertia
Simulation Baggage • Flipbook syndrome
Simulation Baggage • Flipbook syndrome • Things can happen in-between snapshots
Simulation Baggage • Flipbook syndrome • Things mostly happen in-between snapshots
Simulation Baggage • Flipbook syndrome • Things mostly happen in-between snapshots • Curved trajectories treated as piecewise linear
Simulation Baggage • Flipbook syndrome • Things mostly happen in-between snapshots • Curved trajectories treated as piecewise linear • Terms often assumed to be constant throughout the frame
Simulation Baggage (cont’d) • Error accumulates
Simulation Baggage (cont’d) • Error accumulates • Energy is not always conserved • Energy loss can be undesirable • Energy gain is evil • Simulations explode!
Simulation Baggage (cont’d) • Error accumulates • Energy is not always conserved • Energy loss can be undesirable • Energy gain is evil • Simulations explode! • Rotations are often assumed to happen instantaneously at frame boundaries
Simulation Baggage (cont’d) • Error accumulates • Energy is not always conserved • Energy loss can be undesirable • Energy gain is evil • Simulations explode! • Rotations are often assumed to happen instantaneously at frame boundaries • Numerical nightmares!
Collision Detection • We need to determine if A and B intersect
Collision Detection • We need to determine if A and B intersect • Worse yet, they could be (and probably are) in motion
Collision Detection • We need to determine if A and B intersect • Worse yet, they could be (and probably are) in motion • If they did collide, we probably also need to know when they collided
Collision Response • ...and we need to figure out how to resolve the collision
Sustained Interactions • Surface contact
Sustained Interactions • Surface contact • Edge contact
Sustained Interactions • Surface contact • Edge contact • Contact points
Sustained Interactions • Surface contact • Edge contact • Contact points • Different solutions
Sustained Interactions • Surface contact • Edge contact • Contact points • Different solutions • Stacking
Sustained Interactions • Surface contact • Edge contact • Contact points • Different solutions • Stacking • Friction • Static & Kinetic
Sustained Interactions • Surface contact • Edge contact • Contact points • Different solutions • Stacking • Friction • Static & Kinetic • Constraints & Joints