   [ODE] Implementing proper 2d character movement
  In my 2D platformer game I am having a nightmare of a time implementing the main character control. I have done a lot of research on this and have used a capsule with a ray pointing downwards to represent the main character (just like in raycar). The problem is with applying the correct forces.I have tried implementing raycar's method, which is to apply damping on the current velocity of the rigid body until it is standing still (unless any of the movement keys are pressed). The problem with this I am then unable to have any external forces applied to the character without being affected by the movement damping (like a conveyor belt [ using dContactMotion1 ] or a bouncy pad for example).So instead I have kept a seperate force amount to move in the X direction, which is then modified by the movement keys and has damping applied to it. This force is applied to the rigid body each frame, thus allowing any external forces or contact joint forces to manipulate the character object without interfereing with the player movement. Now the problem is it does not take into account friction - so it works great as long as I set contact.mu to zero for every surface, which is undesirable.Has anyone successfully implemented 2d character physic in ODE?   
  Using a physics library for a 2d game should only be needed if you are using vector graphics.  If you're using bitmaps, it's just plain easier to implement the physics math manually.I've heard that Box2d is a good 2d physics engine.  The problems you are having probably have something to do with having no friction on a 1-dimensional edge because it has no surface area.  (Theoretically it should make no difference but that's another story entirely.)   ;  Sorry, I probably should have explained my problem a little better. There is no problem with the actual physics library, everything works in 2D using ODE as I would expect. The problem is how to safely model the main player character using a rigid body and making it move and jump by applying forces to it, and behaving in a manner like a 2D platformer character should.The biggest problem was when the player would land on a conveyor belt object, the code which slows down the player movement would intefere with the conveyor movement too, which i didn't want. I have now just made a flag for each object the player can land on to not apply movement damping and this seems to work.Thanks for the response anyhow.   ;  I use Chipmunk Physics and integrate the velocities manually.  This avoids being tied to a global gravity/damping.  The physics lib integrates positions and handles collisions.   