Sybixsus - Glimmer have done a fab pool game in blitz3d - did this utilise some sort of physics engine, or are you guys there just really good at physics?
You're too kind :)
No, Kick Shot Pool doesn't use any physics engine. I checked out Tokamak, Newton and ODE when I began planning KSP, and found that - when it comes to friction and motion transfer - they're all utterly rubbish.
Case in point: When you hit the cue ball into another, full ball, the cue ball will ( assuming zero spin is applied ) stop dead and the object ball will take 100% ( or as near as makes no difference ) of the velocity of the cue ball. All of the physics engines get this completely wrong and the cue ball keeps a huge chunk of it's velocity.
So I rolled my own. I am not really good at physics, I've love to pretend otherwise, but I'm not. KSP was always intended to be a 2d game with 3d graphics. Jumping the ball was a level of complexity I just didn't want for a game that was going to end up on Reflexive Arcade and BigFish. When you're only working in 2d, it's considerably easier. It's mainly basic trig really. The trickiest part was getting the balls to roll correctly. That was really just a case of tweaking the values and lots and lots of testing until the balls were rolling at exactly ( to my eye ) the same speed as they were moving.
Sphere/Sphere collisions and Sphere/Box collisions are really dead simple, and spin, again, was just a case of lots and lots of tweaking and testing. You generally have to do a lot of that even if you use a physics engine.
I really can't say if this particular engine would be any better for pool physics or not. I know the three I mentioned were useless for it, and I tried finished pool games made using each of them to verify that it wasn't me. Every pool game I played made with one of those engines was horribly unrealistic. As I said, it's sure not rocket science so one of these engines ought to be able to do it. If not, it's not as hard you might think to roll your own.