Fluffacorn / KFQuakeWikiImages

This hosts all of the gifs, images, and whatever else is required for the wiki to work.
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

TESTING: Air Strafing #2

Closed Fluffacorn closed 1 year ago

Fluffacorn commented 2 years ago

Why does air strafing not work when jumping, why do the air strafe techs I've discovered work. I am pretty sure I understand why, will be updating this over time with specific reasons.

Fluffacorn commented 2 years ago

The simplest thing we can ask is why air strafing is impossible through just jumping. Only one part of the code prevents this, this segment here.

else if (vlen(self.jump_vel) != 0)
{       //realistic jumping movement (player can't change direction)
self.velocity_x = self.jump_vel_x;              //don't change up or down movement
self.velocity_y = self.jump_vel_y;              //
}

Removing this doesn't break the mod, and allows for full aerial control identical to vanilla Quake 1. This code lets us understand why air strafing techniques work the way they do, kind of.

Fluffacorn commented 2 years ago

Seemingly, any technique which gets you into the air without (directly) jumping will restore full aerial control to the player. Grinding counts the player as being in the air, and jumping off of one doesn't technically count as a jump, which means this line of code is never invoked. More investigations to follow.

Fluffacorn commented 2 years ago

After a lot of testing, this is correct. Making any trick give velocity lets you do a trick that I will hence be referring to as Pouncing. If you skate over any floor with a hollow part (Think a window with no glass, but on the floor) you'll be launched upwards. Low and behold, this allows you to air strafe, confirming the theory. What's odd, though, are Slope Slings. These are technically done by jumping into an odd ramp, but they don't let you air strafe. This would make sense if not for Hippo Hop!!!, because you can air strafe out of those. I'm not sure why, will take more digging.

Fluffacorn commented 2 years ago

This is before we get into Slippi Trippy's by the way, I have no fucking clue where to even start with that.

Fluffacorn commented 1 year ago

I have, finally, fully solved how this works. It didn't take a year, I just got busy with other endevours. Let me break this down, and it starts with how surfing as a mechanic works.

When sliding on a slope in surf, you are counted as being airborne no matter what and are put in a frictionless state. Your angle in relation to the slope is how you gain speed. Quake uses this mechanic too, and because you aren't grounded when surfing on a slope (which is why you can strafe WHILE on a slope), you're allowed to air strafe. What had always confused me is how this was possible even after being locked into a jump, but it seems that surfing transfers you to a grounded > airborne state in the same way jumping onto a vent does. So long as you do not lose enough speed on a ramp to cancel a surf, you'll still be airborne and allowed to strafe.

What about slope slings? These are bugged and launch you, but unlike slippi trippy's or imposter strafes, you are NOT taken from a grounded > airborne state. You're still counted as being grounded. The reason is that you cannot do a slope sling while in an airborne state (if you try, you'll slowly fall down while remaining in an airborne state). Because slope slings REQUIRE you to be in a grounded state to work.

Much like meatsliding, this is solved! I will reopen this if need be, but for now, I've done it.

Fluffacorn commented 1 year ago

oh yeah, Hippo Hop!!! Why does this work? It's a bit more simple than I first thought (I think). Basically, you're always grounded during a Hippo Hop!!! while stuck on the surface, and once you're released, you're sent forwards with a bit of momentum and set to an airborne state. Think how a vent takes you from grounded > airborne by launching you upwards, but it's like if you got unglued and thrown into the air. Cool! NOW this is 100% solved, we love that.