In some genres of games (Such as FPS, Platformer etc) the player's character usually has an acceleration to it's movements. I assume that for the vast majority of games this acceleration is arbitrary, and not actually based on real world physics as this would be cumbersome and artificial.
Somewhere I stumbled upon a Blitz3D sample that I believe might be the best example of a simplified acceleration formula. In pseudo-code it might be rendered as:
Speed += ((MoveDirection * MaximumSpeed) - Speed) * AccelerationFactor
Speed is the current speed the entity is travelling at on the current axis.
MoveDirection is the direction the entity is trying to travel in on the current axis, 1 is forward, 0 is still and -1 is backwards. All values in between are allowed.
MaximumSpeed is a constant determining the fastest that the entity can travel on the current axis.
AccelerationFactor is a constant between 0 and 1 that represents the rate of acceleration and deceleration. 1 is instant, and 0 will never move.
The beauty of it is that it works equally well for travelling forwards and backwards, and acceleration is curved rather than linear. That said, it's still not perfect, for instance you can't define a specific acceleration rate.
Any suggestions for improvement would be gratefully appreciated.