1.0 walljump
elodea
Editlodea Join Date: 2009-06-20 Member: 67877Members, Reinforced - Shadow
<b><u>1.0 walljump</u></b>
Here is my take on the three core problems i have with 1.0 walljump design and implementation, which are unpredictability, unnecessary complexity, and skill <b>curve</b> or lack thereof.
<b>Unnecessary complexity</b>
There is no consolidated means of actually getting speed with like 4 different methods that don't tie together very well. Most oft than not, they clash.
1) Jumping downwards (You need to look down at an arbitrarily steep enough angle to get a suddenly higher speed boost).
2) Speed boost on floor jump due to downward momentum conversion
3) <b>Vertical</b> speed boost from timing your jump 0.325 seconds after you land on a wall.
4) Speed boost from glancing, parallel walljumps (exploiting the ability to jump off a wall without actually attaching to it)
1,3,4 conflict with each other and 2 is just an unnecessary and net harfmul byproduct - your speed will rapidly drop down to the maxspeed.
As opposed to singular, simple rules with alot of organic room such as
a) scaled speed boost from jumping off a wall as soon as possible.
or
b) Speed boost from turning into a strafe in the air.
<b>Unpredictability</b>
There is no gradual speed increase and alot of micro speed jitter (it becomes quite evident whats going on when you turn on debugspeed). Downward momentum conversion has a few bad consequences. Straight floor jumping creates micro speed jitter that serves no real purpose. In some cases you also get some very weird cases of abrupt ice skating with strafe jumping.
Walljump launch direction is unpredictable given that a vertical boost is added depending on where you hit jump in a 0.65s curve from when you land. This is both for the skulk and the marine. Delayed timers essentially add alot of noise.
<b>Skill Curve</b>
The walljumpskill curve (separate from other skulk skills), is by no means gradual and kind of looks like this. Yea i know i suck at mspaint.
<img src="http://i.imgur.com/vYswo.jpg" border="0" class="linked-image" />
The first effectiveness step is utilisation of speed boost methods 1 and 2. The second is 3 where you stop purposely utilising downward momentum conversion, and the third is 4 where you put aside most of what you learnt in the previous steps and operate in a totally different system of thinking. The player is always going to feel limited, with no real way to organically practice or improve without learning the next distinct system.
Small incremental speed boosts (as opposed to 7 to 8.5 instantly) from jumping as soon as you touch the wall, with pre and post jump scaling do not suffer from this stepped skill 'curve'. Also, despite the ammount of hate bhop gets, it has an even smoother skill curve. Whether or not bhop gets implemented seems more of a 'political' reason than any so i don't want to talk about bhop nor have it be the focal point.
<b>Amendment</b>
<!--QuoteBegin-Elodea+--><div class='quotetop'>QUOTE (Elodea)</div><div class='quotemain'><!--QuoteEBegin-->Ok! It seems like i didn't check the code deeply enough. The delayed timing code was only hooked up to debugspeed and not actual movement.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// the duration of the bound (time from landing, to deepest point, to top)
Skulk.kJumpTimingDuration = 0.65
....
function Skulk:GetSpeedDebugSpecial()
return ConditionalValue(self:GetCanJump(), self:GetJumpTiming(), nil)
end<!--c2--></div><!--ec2-->
However, i still don't think this changes too much. The only ammendment/s i'd make is to say there are still 3 distinct ways of using walljump - downward momentum conversion, upward launching to confuse and position, parallel glancing jumps to chain heaps of speed. I'm making the distinction between downward and upward because they both rely on two different understandings.
- Downward results from the player learning there is a downward to forward momentum mechanic. They learn that jumping down at a steep enough angle off vertical surfaces will give a bigger speed boost.
- Upward results from the player learning they can launch in the direction they are looking.
- The player cannot do both at the same time
<b>Unpredictability</b>
Instead of a delayed timer encouraging players to move at abruptly different speeds, the ability to successfully walljump off a wall at any time and the magnitude of the boost/boost floor means players can still emulate very unpredictable speed paths.
<b>
Skill curve</b>
The first two steps are going to be closer together. At the worst, we still have a binary two step system with very limited organic improvement room.<!--QuoteEnd--></div><!--QuoteEEnd-->
Here is my take on the three core problems i have with 1.0 walljump design and implementation, which are unpredictability, unnecessary complexity, and skill <b>curve</b> or lack thereof.
<b>Unnecessary complexity</b>
There is no consolidated means of actually getting speed with like 4 different methods that don't tie together very well. Most oft than not, they clash.
1) Jumping downwards (You need to look down at an arbitrarily steep enough angle to get a suddenly higher speed boost).
2) Speed boost on floor jump due to downward momentum conversion
3) <b>Vertical</b> speed boost from timing your jump 0.325 seconds after you land on a wall.
4) Speed boost from glancing, parallel walljumps (exploiting the ability to jump off a wall without actually attaching to it)
1,3,4 conflict with each other and 2 is just an unnecessary and net harfmul byproduct - your speed will rapidly drop down to the maxspeed.
As opposed to singular, simple rules with alot of organic room such as
a) scaled speed boost from jumping off a wall as soon as possible.
or
b) Speed boost from turning into a strafe in the air.
<b>Unpredictability</b>
There is no gradual speed increase and alot of micro speed jitter (it becomes quite evident whats going on when you turn on debugspeed). Downward momentum conversion has a few bad consequences. Straight floor jumping creates micro speed jitter that serves no real purpose. In some cases you also get some very weird cases of abrupt ice skating with strafe jumping.
Walljump launch direction is unpredictable given that a vertical boost is added depending on where you hit jump in a 0.65s curve from when you land. This is both for the skulk and the marine. Delayed timers essentially add alot of noise.
<b>Skill Curve</b>
The walljumpskill curve (separate from other skulk skills), is by no means gradual and kind of looks like this. Yea i know i suck at mspaint.
<img src="http://i.imgur.com/vYswo.jpg" border="0" class="linked-image" />
The first effectiveness step is utilisation of speed boost methods 1 and 2. The second is 3 where you stop purposely utilising downward momentum conversion, and the third is 4 where you put aside most of what you learnt in the previous steps and operate in a totally different system of thinking. The player is always going to feel limited, with no real way to organically practice or improve without learning the next distinct system.
Small incremental speed boosts (as opposed to 7 to 8.5 instantly) from jumping as soon as you touch the wall, with pre and post jump scaling do not suffer from this stepped skill 'curve'. Also, despite the ammount of hate bhop gets, it has an even smoother skill curve. Whether or not bhop gets implemented seems more of a 'political' reason than any so i don't want to talk about bhop nor have it be the focal point.
<b>Amendment</b>
<!--QuoteBegin-Elodea+--><div class='quotetop'>QUOTE (Elodea)</div><div class='quotemain'><!--QuoteEBegin-->Ok! It seems like i didn't check the code deeply enough. The delayed timing code was only hooked up to debugspeed and not actual movement.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// the duration of the bound (time from landing, to deepest point, to top)
Skulk.kJumpTimingDuration = 0.65
....
function Skulk:GetSpeedDebugSpecial()
return ConditionalValue(self:GetCanJump(), self:GetJumpTiming(), nil)
end<!--c2--></div><!--ec2-->
However, i still don't think this changes too much. The only ammendment/s i'd make is to say there are still 3 distinct ways of using walljump - downward momentum conversion, upward launching to confuse and position, parallel glancing jumps to chain heaps of speed. I'm making the distinction between downward and upward because they both rely on two different understandings.
- Downward results from the player learning there is a downward to forward momentum mechanic. They learn that jumping down at a steep enough angle off vertical surfaces will give a bigger speed boost.
- Upward results from the player learning they can launch in the direction they are looking.
- The player cannot do both at the same time
<b>Unpredictability</b>
Instead of a delayed timer encouraging players to move at abruptly different speeds, the ability to successfully walljump off a wall at any time and the magnitude of the boost/boost floor means players can still emulate very unpredictable speed paths.
<b>
Skill curve</b>
The first two steps are going to be closer together. At the worst, we still have a binary two step system with very limited organic improvement room.<!--QuoteEnd--></div><!--QuoteEEnd-->
Comments
Hopefully we will get to play with it soon enough.
What I'd like to try is something much simpler and consistent: speed boost on jump (from any surface) and a bit of vertical air control (so you can redirect a bit your vertical speed into horizontal one).
Not at all!
Here is the first method (beginner).
<a href="http://www.youtube.com/watch?v=9iTVrw02WCQ" target="_blank">http://www.youtube.com/watch?v=9iTVrw02WCQ</a>
Here is the second method. Notice how skie is delaying his jumps when he lands on walls.
<a href="http://www.youtube.com/watch?v=jwL9bWq-En8" target="_blank">http://www.youtube.com/watch?v=jwL9bWq-En8</a>
Here is the third. Notice how you don't hear the clanking skulk landing sound, only the plop jumping sound.
<a href="http://www.youtube.com/watch?v=KNLHGSzXySU" target="_blank">http://www.youtube.com/watch?v=KNLHGSzXySU</a>
Some of these videos are really required viewing, they need to be seen by everyone!
I still do, but it's mainly because I'm so used to using strafe from the Bhop days of NS and not sure if it's actually beneficial.
Also, let me repost what I wrote about Skulk jumping a few weeks ago. This is straight from reading the code so it should be accurate, but might work out a bit differently in practice:
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->Basically wallljumping adds a boost in the direction you're facing on top of your current velocity. So depending on your angle coming into the wall and your view angle this can results in either an increase or decrease in speed (the more parallell to the wall the jump is, the bigger the increase). In any case a walljump will always set your speed to a minimum of 8.5.
When it comes to friction there are two factors, ground friction and air friction. On the ground or a wall you are affected by ground friction but this only kicks in 0.3 seconds after you land. This means that if you time your jumps right you will only be affected by air friction. Air friction will always slow you down while in the air, but you will also gain speed from the transfer of downwards velocity into forward velocity, and of course from walljumping. So if you do it right you will gain enough speed to cancel out the air friction and get a net increase.<!--QuoteEnd--></div><!--QuoteEEnd-->
<a href="http://www.youtube.com/watch?v=jwL9bWq-En8" target="_blank">http://www.youtube.com/watch?v=jwL9bWq-En8</a>
Here is the third. Notice how you don't hear the clanking skulk landing sound, only the plop jumping sound.
<a href="http://www.youtube.com/watch?v=KNLHGSzXySU" target="_blank">http://www.youtube.com/watch?v=KNLHGSzXySU</a><!--QuoteEnd--></div><!--QuoteEEnd-->
I'm guessing mf uses mwheel or a script to jump, but that's just a guess. I just use mouse2, so my timing isn't so good. I'm not 'delaying' it on purpose.
If you press jump fast enough, before actually touching the wall, there's no sound. The method is exactly the same, the timing is just different.
I fear the moment when the movement changes again and I have to redo the tutorial once again.
But I would like a system where the speed increase is more linear and maintainable. We will see.
I truly apologize for that. I just typed "ns2 walljumping" into youtube and clicked on the most obvious links. Oops. Can someone clarify for me whether simply jumping around increases movement speed?
<!--quoteo(post=2011070:date=Nov 5 2012, 10:26 PM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Nov 5 2012, 10:26 PM) <a href="index.php?act=findpost&pid=2011070"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm guessing mf uses mwheel or a script to jump, but that's just a guess. I just use mouse2, so my timing isn't so good. I'm not 'delaying' it on purpose.
If you press jump fast enough, before actually touching the wall, there's no sound. The method is exactly the same, the timing is just different.
I fear the moment when the movement changes again and I have to redo the tutorial once again.
But I would like a system where the speed increase is more linear and maintainable. We will see.<!--QuoteEnd--></div><!--QuoteEEnd-->
Skie thank you again for your video. It was really awesome to watch, my jaw dropped several times while watching it. Do you mind explaining what you just posted a little clearer? So you use mouse2 to jump instead of spacebar? Is the delay not necessary? Which is the part in the videos which make you think that he uses a script to jump?
- I've been using mouse2 to jump since playing Duke Nukem 3D back in 1996. I can't fathom using space, mousewheel, scripts or anything such to jump.
- You don't have to delay when you hit a wall before you jump off. Whether you hear a 'clank' sound or not when you jump off, you still get the boost.
- Whole video pretty much, the timing on jumping from a wall consistently without making a sound is pretty narrow. Not impossible though.
- Simply jumping off a wall always gives a speed boost, but plain jumping along the ground doesn't. Also falling in the air after a jump from the wall gives you extra speed, but it has to be quite a high jump to be effective.
Well if this is the intended result, then there's got to be a bug preventing this from happening because it just doesn't. Floor jumping with tight timings only causes your speed to spike for a tiny bit without actually having any real effect.
<!--QuoteBegin-Skie+--><div class='quotetop'>QUOTE (Skie)</div><div class='quotemain'><!--QuoteEBegin-->I'm not 'delaying' it on purpose.<!--QuoteEnd--></div><!--QuoteEEnd-->
haha oh. Either way, i checked the lua and there seems to be a vertical speed boost for delaying your jump kinda like the old spring mechanic? First time i watched your vid a few days ago, i was wondering how you were getting the air you were getting, so i started delaying the jumps which seemed to do the trick..
*oh and im pretty sure mf isn't scripting. I've been trying to learn how to do it recently and it did seem like the trick was to avoid actually touching the wall while jumping parallel to the wall...
walljumping seems to be difficult just because the walls are strewn with obstacles, so i can see that it's more difficult than it 'should' be, but i don't really want to see linear acceleration bunny hopping (to the extent that i've seen it counterstrike etc).
yeah but if it's 50/50 then it's unfair for the marine, because the marine doesn't have any choice... he didn't choose to fight, it was the skulk
i can't even imagine how frustrating it would be to be playing as marine and all of a sudden a skulk soars into the room unannounced and kills you. it's totally not the same as a skulk running down a corridor towards a cautious marine. getting into melee range is half of the battle, and that would be gone for pretty much any player who practices bunny hopping for an hour or so.
*oh and im pretty sure mf isn't scripting. I've been trying to learn how to do it recently and it did seem like the trick was to avoid actually touching the wall while jumping parallel to the wall...<!--QuoteEnd--></div><!--QuoteEEnd-->
Could be some old, redundant code. It's a bit of a jumble. I haven't looked that deep into it recently.
The way to get air is to look up when jumping... you simply go faster to the direction you're looking and moving at, so it enables pretty high jumps.
And I can believe you about mf, he was already good in Dystopia years ago.
See NS1, skulks had more speed and better mobility from bunnyhop and celerity mechanics and yet somehow you could still regularly win 1 v 3s as marine with your LMG going up to 4 or even 5 with the pistol. Marines could also utilize the air control doing a backwards strafe jump away and bunnyhop up ramps and off railings.
I would prefer that Sewlek fixes the huge vertical jitter that you get when you jump repeatedly on the floor.
If you press jump fast enough, before actually touching the wall, there's no sound. The method is exactly the same, the timing is just different.
I fear the moment when the movement changes again and I have to redo the tutorial once again.
But I would like a system where the speed increase is more linear and maintainable. We will see.<!--QuoteEnd--></div><!--QuoteEEnd-->
Hello Skie :) Thought i recognised your name from Dys, wasn't sure!
Just space bar btw with extreme tight timing. Although not as tight as the 1/60th of a second frame links in street fighter!
Skie, any chance of you giving me a tutorial on walljumping in person sometime XD
Upcoming skulk movement changes can be tested out with Sewlek's Prototyping Mod now. Currently it's just refinement of the previous system and clean-up of the code mainly. There's also a bug introduced by this new code so it will not be put into public use quite yet.
<!--quoteo(post=0:date=:name=mf-)--><div class='quotetop'>QUOTE (mf-)</div><div class='quotemain'><!--quotec-->Just space bar btw with extreme tight timing. Although not as tight as the 1/60th of a second frame links in street fighter!<!--QuoteEnd--></div><!--QuoteEEnd-->
Cool to hear, pretty boss of you then!
<!--quoteo(post=0:date=:name=Yuuki)--><div class='quotetop'>QUOTE (Yuuki)</div><div class='quotemain'><!--quotec-->I would prefer that Sewlek fixes the huge vertical jitter that you get when you jump repeatedly on the floor.<!--QuoteEnd--></div><!--QuoteEEnd-->
That bug is being a bit elusive, I've already reported it and it happens with all classes. Need to get matso working on it because I think it has something to do with prediction.
<!--quoteo(post=0:date=:name=Sooty)--><div class='quotetop'>QUOTE (Sooty)</div><div class='quotemain'><!--quotec-->Skie, any chance of you giving me a tutorial on walljumping in person sometime XD<!--QuoteEnd--></div><!--QuoteEEnd-->
Sorry, don't have the time for that.
Wall jumping/bhopping really defines a game. It can make it or break it.
Good to shed some light on this!
I would prefer that Sewlek fixes the huge vertical jitter that you get when you jump repeatedly on the floor.<!--QuoteEnd--></div><!--QuoteEEnd-->
Ok! It seems like i didn't check the code deeply enough. The delayed timing code was only hooked up to debugspeed and not actual movement.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// the duration of the bound (time from landing, to deepest point, to top)
Skulk.kJumpTimingDuration = 0.65
....
function Skulk:GetSpeedDebugSpecial()
return ConditionalValue(self:GetCanJump(), self:GetJumpTiming(), nil)
end<!--c2--></div><!--ec2-->
However, i still don't think this changes too much. The only ammendment/s i'd make is to say there are still 3 distinct ways of using walljump - downward momentum conversion, upward launching to confuse and position, parallel glancing jumps to chain heaps of speed. I'm making the distinction between downward and upward because they both rely on two different understandings.
- Downward results from the player learning there is a downward to forward momentum mechanic. They learn that jumping down at a steep enough angle off vertical surfaces will give a bigger speed boost.
- Upward results from the player learning they can launch in the direction they are looking.
- The player cannot do both at the same time
<b>Unpredictability</b>
Instead of a delayed timer encouraging players to move at abruptly different speeds, the ability to successfully walljump off a wall at any time and the magnitude of the boost/boost floor means players can still emulate very unpredictable speed paths.
<b>Skill curve</b>
The first two steps are going to be closer together. At the worst, we still have a binary two step system with very limited organic improvement room.
there is the "clank" noise which indicates you've landed on the wall and friction is being applied
Here is the first method (beginner).
<a href="http://www.youtube.com/watch?v=9iTVrw02WCQ" target="_blank">http://www.youtube.com/watch?v=9iTVrw02WCQ</a>
Here is the second method. Notice how skie is delaying his jumps when he lands on walls.
<a href="http://www.youtube.com/watch?v=jwL9bWq-En8" target="_blank">http://www.youtube.com/watch?v=jwL9bWq-En8</a>
Here is the third. Notice how you don't hear the clanking skulk landing sound, only the plop jumping sound.
<a href="http://www.youtube.com/watch?v=KNLHGSzXySU" target="_blank">http://www.youtube.com/watch?v=KNLHGSzXySU</a><!--QuoteEnd--></div><!--QuoteEEnd-->
I've never been a big walljumper/bunny hopper. But after watching the 2nd video, first kill, at about a minute....yeah, I need to learn that!
Maybe my mind is old, but I don't remember being able to move that fast in NS1.
3rd video....that is simply crazy. Like a rocket....
Know what I am doing tonight in explore mode :-)