First, You need to use normalized input direction to avoid having diagonal movement advantage. Second, Gravity calculation is so f**ked up. I don't know who wrote that but it's straight bullshit. The doc tries to fix its incorrect gravity calculation with increasing gravity. Gravity * deltaTime * deltaTime gives you delta velocity which you need to add to current velocity of the object. You don't add that to movementMotion which is a movement delta.