If you're in 2D you can just store a scaler representing how much your rotation changes with time. All bodies have a force constantly acting on them. Room keeps track of finite number for force sources, each body computes sum of forces acting on it based on its position. Collision response Getting nice approximations of collision response when doing discrete simulations is tricky because its impossible to know exactly when a collision occured. Any simulation is game specific but most formulas for doing collision response are based on the idea of conservation of energy.
First issue is collision detection when doing discrete computation.
An enlarged bounding box based on current and last position can be helpful to detect cases where objects collide in the middle of a time step. However once an extended-bounding box intersection is detected a binary search may be necessary to find if and when a collision actually occured between the bodies. If we know approximately when in a time step a collision occured. At that time of collision we can compute the new velocity as a result of the collision, and then use that to find the proper position based on the fact that the particle changed direction midway through the time step. When say 2 spheres collide each has a component of their vector which is projected along the vector d which is the position of sphere 2 minus position of sphere 1.