Tweak Marauder's wall jump


#1

Marauder's wall jump has been enhanced on test with GPP's fixes, but it lacks another thing to me.

With the arrival of CPM's physics on test (which is or not a good idea, needs to be argued), marauder became a funny racing and tricking machine. The problem is that it gets easily velocity but if it wall jumps, it loses all of it's impulsion.

I think wall jump could, over a certain speed of the player, keep player's velocity directing it in another way, like a normal wall jump, or like a "bounce".

Warsow, which is a game I used to play, does it very well
](/uploads/default/original/2X/b/bd205270efaaaa7121378f68e979619a5e9688aa.gif) (taken from [there

Hopefully, the code is available as it's real FOSS(tm) !¡! (no offense)

You can have it by clicking >>>HERE (no fake)<<<

Anyway, time for comments and bullshits.


#2

I like this idea of redirecting the velocity, and thank you for the link to the source code.

But regarding the mara's wall jump in general for even the lower velocities, I think it needs a complete overhaul. The way gpp did the wall jump just feel broken, even without cpma physics (this is coming from someone who started Tremulous out on gpp, and who has played on gpp exclusively for many years). I don't know if we should go back to the 1.1 mara wall jump completely or in part, or do something new with the wall jump, but it shouldn't stay as it is.

Any suggestions?


#3

Amsterdam Unlimited's marauder wall-jumping physics allows marauders to practically climb walls, and even accelerate to high upward speeds in case of a very tall wall, generally even if starting with a high-speed fall. 2 kinds of wall-jumps r available: view-directed and upward; both also have an added „away” (from a wall) factor.

there's also a „friction claw” capability that allows marauders decelerate next to walls, to slowly slide down walls. after a high-speed fall to begin with, this ability quickly decelerates a marauder to wall-drag terminal velocity quickly; this property makes the use of friction claws a good tool to use (in case of a high-speed fall) right before applying upward wall-jumps.

maybe i should release this code.


#6

Seems like there is a walljump maxspeed. What happends if it is removed/set higher ?

There's also a walljump time release which is good to me (maybe make it a bit higher ?)


#7

Here is the function about Marauder's walljump : https://github.com/darklegion/tremulous/blob/master/src/game/bg_pmove.c#L643

Seems like on line 739, speed is set to maxspeed if it's over maxspeed.

Anybody wanting to try what it does without ? (with CPM physics obviously)

747 to the end : animation things.


#8

That's part of why everything the marauder sux.


#9

I don't give a shit it's just to see clearly the speed difference


#10

As a side note about CPMA physics, I ported it from the Cuboid mod (which got it from ViruS' Pro Trem mod) as a starting point changes to the physics. One of the issues with it is that its features uniformly apply to both teams and to all classes, while the physics of each class needs to be adjusted to better fit and add to the game play aspects each specific class. This topic is a perfect opportunity to do exactly that for the marauder :slight_smile: .


#11

with redman's balance


#12

lol, that's not a time value. that's just a flag (and a unique bit) meaning that „the player has recently performed a walljump”. the actual value of „recent” is defined at the point of use:

  pm->ps->pm_flags |= PMF_TIME_WALLJUMP;
  pm->ps->pm_time = 200;

#13

Ok thanks for being the only to have noticed that. I don't know what hexadecimal stands for out of color-codes :slight_smile:


#14

I've been lurking around those lines of code, tweaking, commenting, testing, {make -j8}ing, and I found many things, thought mara's jump didn't evolve very much to me.

It appears that wall jump is triggered only if the angle between normal axis of the wall you want to wall jump on and the forward axis of your vue is =< 90°
I don't know where is that information located thought :confused: , and am not really used to trem's syntax.

I think this is the main reason why marauder is so counter-intuitive


#15

one other feature of Amsterdam Unlimited is that it remembers each marauder's last 2D-thrust direction, so it's possible to jump at a wall, release all 2D-thrust keys, but then still perform a wall-jump using the upward movement key, regardless of the looking direction.


#16

GET GUD


#17

Amsterdam Unlimited : Not published, not playable => not existing.


Request for the Publishing of Amsterdam Unlimited's Complete Code
#18

both 1.1 and 1.2/GPP:

Jumping off a wall increases your overall velocity by a bit (can't remember the value) and adds (not sets) velocity away from the wall and also adds upward velocity to your current velocity.

There is a jump timer restriction that restricts your ability to spam the jump and that time is 200msec as DevHC pointed out above. In the time you cannot jump again and cannot walljump. This is partically significant for the the differences between 1.1 and GPP style marauder:

.

1.1: Your velocity isn't clipped for the 200msec duration after you last jumped.This means you can jump before a wall and your velocity will not reduce until the 200msec timer is done. However before you can jump again, your velocity is clipped (the velocity component into the wall is set to 0 basically) and you jump off it. This is why you do not stick to a wall, but you can jump at a corner at a fast horizontal speed, and you sort of "warp" around the wall without losing any speed if the time you collide with the wall is less than 200msec after your last jump. This is actually a feature in CPM physics.

.

1.2/GPP/Unvanquished: Same as 1.1 except your velocity gets clipped AFTER the next jump when the 200msec paralising period is done. If you decide to jump again, the timer just resets and your velocity doesn't get clipped and if you had enough velocity into the wall when you started, enough to overcome the walljump velocity added away from the wall, you get the "Sticky" feeling. Because the Marauder's air accelreation value is higher in Unvanquished and KoRx (adv mara) and when using the CPM bunnyhop strafe acceleration (A/D keys) than in 1.1, the marauder's acceleration is greater than the overall acceleration away from the wall as a result of walljumping. This is why you can basically climb a wall in maps like the Cannon series.


Note that the jump timer bug ALSO exist in other forms and not just the marauder.
One example is the human dodge ability in GPP and Unvanquished, where after using the dodge function, your velocity doesn't get clipped horizontally (and friction becomes 0 above a certain sv_fps value in some maps like yalt's star atcs) which means you are able to sort of "slide around"

Watch the speedometer in the unvanquished vid samples below:

(I just used u2b's brighten-up function for this new upload)