As Harold mentioned you have to make a computation strategy for collisions e.g. ball vs ball and ball vs frame. Here are some terms that you can google. You can go the variable time step way - good for getting the simulation right. You can go fixed time step - good for having the simulation go fast. One computation strategy could be as follows until no more collisions occur in a time step: - within a time step calculate the next collision - calculate the physics for involved objects Collision checking is a discipline in itself - a moving ball within a time step can be looked at as a sweeping volume being a capsule. Collision checking results in a collision time within a time step and a set of contact points. The physics can be as complicated as you want to. You can keep it very simple by sticking with kinematics (position, velocity) added some impulse calculation or go very exotic by adding lots of dynamics (gravity, friction, spin, energy loss, etc.). About gravity: If gravity is g (9.82[m/s^2]) downwards and you have a time step of deltaTime [s], all balls need to have their velocity changed by velocity change due to gravity: deltaVg = deltaTime * g In any case, have fun :) Kind Regards, Keld Ølykke