Straining

Revision as of 04:03, 23 October 2018 by JoshDuMan (talk | contribs) ("technical explanation" is a weak name but...idk)

Straining is a technique that Mario can use at any point while in midair in most actions. It involves how the joystick is angled relative to Mario's facing direction (which cannot be changed midair in most situations). Because of how the mechanic works, it can often become a trade-off of speed vs distance.

Technical Explanation

When in the air, the game deals with Mario's intended movement in two directions- forward and sideways (when forward speed is negative, it indicates backwards speed). These two different directions behave differently from one another, although the two are not independent. The farther the joystick is held in a given direction, the less of the effect it has on the other. This is true all the way to the point where one direction is maxed, and the other direction is zeroed.

The following calculations allow you to find what the effects of straining will be, but are not separate equations. Both equations are calculated at the same time and use the same values. This is why the two are not independent.

Forwards Movement

Forward movement is cumulative where some speed can be added to the forward speed. The maximum speed that can be added to forwards speed in a given frame is 1.15, although this depends on speed and type of air movement.

The formula for forwards speed is-


Forward Speed = 1.5 * Stick Magnitude * cos(Angle from Forwards) - 0.35 - Drag


Where angle from forwards is the angle from a vector straight forwards to the joystick direction, and stick magnitude is the magnitude of the stick being held divided by the maximum value. In other words, if the control stick is pushed all the way, the magnitude is 1.

Drag depends on two things- whether or not Mario is long jumping and what his speed is after the stick magnitude and -0.35 is added to the old speed. The values for drag are-

Condition Drag
Forwards Speed ≤ 32, Non-Long Jump 0
Forwards Speed > 32, Non-Long Jump 1
Forwards Speed ≤ 48, Long Jump 0
Forwards Speed > 48, Long Jump 1
Backwards Speed ≥ -16 0
Backwards Speed < -16 -2

There's a couple important things to note from the drag table. Drag is never zero, you will always slow down if not straining. Drag is not linear, it only changes over certain barriers. The impact of this can create odd movement effects, like the 31.99 Trick. Lastly, the backwards speed drag when faster than -16 is so strong, you cannot actually accelerate faster than it. This creates a soft cap for backwards speed which prevents Mario from moving backwards fast (typically).

Sideways Movement

Sideways movement is a tad simpler than forward movement. Any sideways movement applied gives Mario sideways displacement, but not speed. This displacement is a max of 10 with pure sideways direction being held.

The formula for sideways displacement is-


Sideways Displacement = 10 * Stick Magnitude * sin(Angle from Forwards)


Where angle from forwards is the angle from a vector straight forwards to the joystick direction, and stick magnitude is the magnitude of the stick being held divided by the maximum value. In other words, if the control stick is pushed all the way, the magnitude is 1.

XX.99 Trick

The XX.99 Trick is a way to maximize speed when moving forward in the air. Due to how drag works during forward movement, maximum forward magnitude can actually be slower than significantly smaller forward magnitudes. For example-

Speed at the start of the frame (normal air movement)- 30.86

New speed with full magnitude-    31.01        (=Speed (30.86) + Stick Magnitude (1.5) - Drag (1.35))
New speed with a lower magnitude- 31.99        (=Speed (30.86) + Stick Magnitude (1.48) - Drag (.35))

Speed lost due to poor straining- 0.98

The barrier in this case is 32 speed which dictates behavior. Long jumping and backwards movement also have their own versions, 48 and -16 respectively. While the 32, 48, and -16 barriers would work for this purpose, it is not typically possible to hit them exactly and not go over. Because of this, the goal speed is usually to approach 31.99, 47.99, and -15.99. The table below breaks down which speed should be aimed for depending on your speed-

Air State Speed Range for Trick Goal Speed for trick
Normal Forwards 30.85 – 31.85 31.99 (32 exact)
Long Jump Forwards 46.85 – 47.85 47.99 (48 exact)
Backwards -14.85 – -15.99 (-16 exact)* -15.99 (-16 exact)

*Backwards air movement is capped at -16 speed

This trick also allows "free" sideways movement, since the stick magnitude is not maxed. For this reason, if sideways air movement is beneficial, it should be done here.

Uses

Although technically straining is always in use while in midair, there are times when it is very important.

  • While building speed in a Pedro spot or via Hyperspeed Grinding, Mario may need to strain in order to avoid breaking free prematurely. This sacrifices some of his speed.