attempting to build a third person controller

pseudostereo's icon

Here are my first and second pathetic attempts to make a 3rd person controller that obeys physics (so it can travel over uneven terrain). I honestly don't have a clue, but I had to begin somewhere. Basically I want something that will remain upright while it moves around.

First I tried using jit.phys.6dof, but the controller often whirls around uncontrollably:

Max Patch
Copy patch and select New From Clipboard in Max.

(use the w/a/s/d keys to move, and the z/x keys to turn)

Max Patch
Copy patch and select New From Clipboard in Max.

Next I simply tried using a squashed sphere as a sort of disc at the bottom of the controller so that it would tend to stay flat on the ground, but this doesn't work very well, and it does tip over if there's too much force:

Any alternate approaches & ideas would be welcome. I would imagine that I'm way off here, and that the correct approach would involve using kinematic and/or the anim attribute of jit.phys.body with a jit.anim.drive, but I can't find any examples so I don't know where to begin.