No announcement yet.

Requesting Jump/ Dodge technical details

  • Filter
  • Time
  • Show
Clear All
new posts

    Trying to calculate maximum distances by using only initial velocities would be complicated, but I suppose it's possible. You have to factor in air control for all of the jumps. Also, on any jump that involves a second jump (Dodge Jump, Wall Dodge Jump); you have to account for the second jump occurring near the apex. For maximum distance, this second jump will occur at the latest possible time after the dodge. That time is when the player is falling at ~ 99.99 uu/s because you are only allowed to perform a second jump when your Z velocity is between -100 and +100. For maximum height, this jump will occur when the player's velocity is 0 (right at the apex).

    Here are some maximum distances I was able to cross between level platforms. However, I only moved the platforms in 16 unit increments so this is not exact.

    Jump - 432
    2xJump - 640
    st dodge - 352
    run dodge - 416
    st dodge jump - 800
    run dodge jump - 960


      Hmmm, yeah i've tried to factor all those into account.

      I've not held any keys down while in my airtime (well any that deviate from the initial direction)
      I've calculated everything at the apex (btw you can't jump again after you've passed the apex of a jump or a dodge so the max distance is then. You can only dodge after the apex of a jump i.e. during a fall and then jump)

      Well calculating it isn't that hard, it's just ballistics, s=ut+1/2at^2 and voila.

      But anyway, getting values too large is the problem, not too small.


        You can certainly jump once you have fallen below the true apex (velocity.Z = 0) I can tell when I'm dodge jumping that this is true. The code also confirms this...

        // xPawn class Line 2026-2038
        function bool DoJump( bool bUpdating )
        // This extra jump allows a jumping or dodging pawn to jump again mid-air
        // (via thrusters). The pawn must be within +/- 100 velocity units of the
        // apex of the jump to do this special move.
        if ( !bUpdating && CanDoubleJump()&& (Abs(Velocity.Z) < 100) && IsLocallyControlled() )
        if ( PlayerController(Controller) != None )
        PlayerController(Controller).bDoubleJump = true;
        MultiJumpRemaining -= 1;
        return true;


          Ahhh, i see. Tis a very small window after the apex then around 0.2s and -10 uu, barely noticable!!

          But anyway, i think that will do this thread. The theory doesn't quite agree with experimental, but i think i can work with these numbers and with a bit of fudging get something definite.

          Cheers again