Hmm… an IPO. I hadn’t thought of that, but it might work.
I was going to suggest torque or AngV (in motion actuator) with a high rotDamp (rotational dampening, in the actor buttons on the left side of the logic buttons panel). That would probably be easier to set up than using an IPO. Try a value of 1.0 on the rotDamp.
BTW, I made a similar game as my first project (and I also made the dRot mistake). I never finished it, but I add a little here and there when I get bored. If you’d like to look at it you can get it here. (If you’re on Windows, click “MarbleLabyrinth0.8.bat” to run it. Otherwise, you can run the .blend. It was written in Blender 2.41, so you’ll need 2.41 to run the blend since it uses the old physics system.) I didn’t change it to Torque yet, so the ball still bounces a bit, and it’s prone to “falling through”.
Edit: Oh, and if you were wondering, the reason the ball bounces when you use dRot is because dRot changes the rotation value in discreet steps, skipping all of the in between calculations. So if you use a dRot of .5 and start from zero, you’re going to .5, 1, 1.5, 2… Numbers like 1.2345 aren’t even considered by the engine. The ball is looking for the floor under it, but all of the sudden the floor is in the middle of it and it reacts like it’s getting hit (by bouncing). Torque and AngV give more fluid calculations.
2nd Edit: I forgot to mention, the controls on my game are up/down for forward/backward and z/x for left/right. I did this to simulate the two knobs that one would have to turn on the real wooden game.