Physics Engines
Simulating the real world
Physics engines simulate physical behaviour in games, from rigid body dynamics to fluid simulation, enabling realistic object interaction.
Overview
Physics engines handle collision detection, rigid body dynamics, joints, ragdolls, cloth, and other physical simulations that modern games require. Early games implemented physics case-by-case — Pong had ball-and-paddle collision; Pinball Construction Set (1983) had remarkably good ball physics for its era; Marble Madness (1984) handled isometric ball-on-slope dynamics. By the late 1990s the physics-as-middleware market emerged, with Havok (1998), MathEngine (1998), and PhysX (originally Ageia, 2005) competing for licences.
This entry surveys the landscape. For specific engines see Havok; for ragdolls see Ragdoll Physics; for collision see Collision Detection.
Fast facts
- Purpose: Simulate physical behaviour — Newtonian rigid bodies, soft bodies, fluids, cloth, articulated characters.
- Core components: Collision detection, dynamics, constraint solving.
- Major middleware: Havok, PhysX, Bullet, Jolt, Box2D, Chipmunk.
- Built-in: Unity (PhysX-based + DOTS), Unreal (Chaos), Godot (Jolt), all modern engines.
- Performance: Single-thread → multi-thread → GPU-accelerated → modern multi-threaded SIMD.
Physics types
| Type | Simulation domain | Examples |
|---|---|---|
| Rigid body | Solid, non-deforming objects | Falling boxes, stacked crates, tumbling barrels |
| Soft body | Deformable objects | Jelly, sponge, deformable terrain |
| Ragdoll | Articulated characters | Death animations, body reactions |
| Cloth | Fabric simulation | Capes, flags, banners, character clothing |
| Rope / chain | Chain-of-segments | Rope swings, vehicle tow lines |
| Fluid | Water, smoke, particles | Pool water, smoke effects, blood spatter |
| Particle | Small mass-points | Sparks, debris, weather |
| Vehicle | Car / bike / aircraft dynamics | Specialised modules in most engines |
Major physics engines
| Engine | Type | Origin | Notable for |
|---|---|---|---|
| Havok Physics | Commercial | 1998, Dublin | Half-Life 2, Skyrim, Halo 3, dozens of AAA |
| PhysX | Commercial → free | Ageia 2005, NVIDIA 2008 | Unreal Engine 4 default, Borderlands, Witcher 3 |
| Bullet | Open source | Erwin Coumans, 2003 | GTA V, Red Dead Redemption 2, Blender, Maya |
| Box2D | Open source 2D | Erin Catto, 2007 | Angry Birds, countless 2D indies |
| Chipmunk2D | Open source 2D | Scott Lembcke, 2007 | Crayon Physics, Limbo, indie 2D |
| Jolt Physics | Open source | Jorrit Rouwé, 2022 | Horizon Forbidden West, Godot 4 |
| MathEngine | Commercial (defunct) | 1998 | Early competitor to Havok |
| ODE (Open Dynamics Engine) | Open source | Russell Smith, 2001 | Education, robotics, early indie |
| Newton Game Dynamics | Open source | Julio Jerez, 2001 | Mid-2000s indie |
Integration approaches
How games use physics:
| Approach | Detail |
|---|---|
| Middleware licence | Pay per platform / per game (Havok, original PhysX) |
| Engine-integrated | Unity, Unreal, Godot bundle physics |
| Open source | Bullet, Box2D, Jolt — free for any use |
| Custom | Bespoke physics for specific gameplay (Trials, Worms, racing games) |
| Hybrid | Middleware for general physics + custom for specific systems |
What an engine does each frame
Simplified physics-engine update loop:
each frame:
1. Update transforms from animation / scripts
2. Apply external forces (gravity, wind, scripted impulses)
3. Broad-phase collision detection (quick rejects via spatial hashing)
4. Narrow-phase collision detection (precise contact generation)
5. Constraint solver (resolve collisions + joint constraints)
6. Integrate velocities → positions
7. Sleep idle bodies (don't simulate stationary objects)
8. Output transforms for renderer
The constraint solver is the maths-heavy core — typically iterative (run multiple passes until converged) and sensitive to timestep. Stable physics requires careful timestep management; fixed timestep with multiple sub-steps per frame is common.
Performance considerations
| Optimisation | Effect |
|---|---|
| Spatial partitioning | Don't check every pair against every other pair |
| Sleep / island detection | Stop simulating objects at rest |
| Substepping | Smaller timesteps for stable simulation, especially with high velocities |
| CCD (Continuous Collision Detection) | Prevent fast objects from tunnelling through walls |
| Multi-threading | Solver across multiple cores |
| GPU acceleration | PhysX and others can offload to GPU |
| Determinism | Reproducibility for replays / multiplayer |
Notable physics-driven games
Games where physics is the gameplay rather than just visual flavour:
| Game | Year | Physics use |
|---|---|---|
| Pinball Construction Set | 1983 | Surprisingly good 1980s ball physics |
| Marble Madness | 1984 | Isometric marble dynamics |
| Lemmings | 1991 | Per-pixel terrain physics |
| Worms | 1995 | Artillery + destructible terrain |
| Half-Life 2 | 2004 | Gravity gun + interactive props |
| Trials series | 2008+ | Pure motorbike physics gameplay |
| Angry Birds | 2009 | Box2D + projectile physics |
| Crayon Physics Deluxe | 2009 | Player-drawn physics shapes |
| Bridge Constructor | 2011+ | Engineering simulation |
| Kerbal Space Program | 2011+ | Newtonian orbital mechanics |
| Besiege | 2015 | Build-and-test physics machines |
| Human: Fall Flat | 2016 | Active ragdoll as movement |
| Boneworks / Bonelab | 2019, 2022 | VR full-body physics |
| Teardown | 2022 | Voxel-based destruction physics |