Collision detection is _very_ simple.
Accurate collision detection, not relying on the 60fps offered by lua, is harder.
(ie, "last frame i had not collided, this frame i am 30 units overlapping. at what point did I go from 0 units to 1 unit overlap? What would the other values have been at that point? These are the variables that must be used for an accurate bounce calculation)
Even harder is calculating the angles they bounce off at.
Thanks for the link Alex, will read up on it :>