How objects move, collide, and respond. Numerical integration and forces (and the fixed timestep that keeps it stable), broad-phase collision detection with bounding volumes, narrow-phase tests like SAT, resolving collisions with impulses and friction, rigid-body dynamics with rotation, and spatial partitioning to make thousands of objects fast.
Before you start
Physics is applied vector math — take the Game Mathematics course first (vectors, dot and cross products). Examples are in Python and map directly to any physics engine.
Integration & Forces
Physics simulation is just updating position from velocity, and velocity from acceleration, every step. Learn numerical integration, why semi-implicit Euler is the game default, and the fixed timestep.
Collision Detection: Broad Phase
Checking every pair of objects is O(n²) and too slow. Bounding volumes (AABB, circles) give cheap approximate tests, and the broad phase quickly rules out pairs that cannot possibly collide.
Narrow Phase & the Separating Axis Theorem
Once the broad phase flags a candidate pair, the narrow phase decides if they really collide. The Separating Axis Theorem tests convex shapes exactly and gives you the data needed to resolve the hit.
Collision Response
Detecting a collision is half the job — now make objects bounce, slide, and settle. Learn impulse-based resolution, restitution (bounciness), friction, and correcting the overlap so objects do not sink.
Rigid Body Dynamics
Real objects spin, not just translate. Add rotation to the simulation with angular velocity, torque, and the moment of inertia — the rotational counterparts of velocity, force, and mass.
Spatial Partitioning
To make thousands of objects fast, only test things that are near each other. Spatial data structures — grids, quadtrees, and BVHs — organize objects by location so the broad phase stays cheap.