Deflector Object
A Deflector modifier deflects particles. A realistically animated billiard table could quite easily be created with just five deflectors (one for the surface plus four cushions). The emitter creates just one particle (a sphere for the ball) that never leaves the table, rebounding off the cushions.
The use of the Bake Particles command may help here (Object Manager: Objects > Bake Particles). In the Bake Particles dialog, define a higher Samples Per Frame, such as 10. This will ensure that the entire animation, and in particular those frames involving particle calculations, are rendered with a higher time rate (in this case, it would be 10 times higher). The deflector then has a chance of seeing, and thus influencing, the particles.