A proper frame-rate independent newtonian physics integration: Vector forces = 0.0f; // gravity forces += down * m_gravityConstant; // 9.8m/s/s on earth // left/right movement forces += right * m_movementConstant * controlInput; // where input is scaled -1..1 // add other forces in for taste - usual suspects include air resistence // proportional to the square of velocity, against the direction of movement. // this has the effect of capping max speed. Vector acceleration = forces / m_massConstant; m_velocity += acceleration * timeStep; m_position += velocity * timeStep; Tweak gravityConstant, movementConstant and massConstant until it feels right. It is an intuitive thing and can take a while to get feeling great. It's easy to extend the forces vector to add new gameplay - for instance add a force away from any nearby explosion, or towards black holes.