Inside3D!
     

Possibility to exceed sv_maxspeed by various techniques
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion
View previous topic :: View next topic  
Author Message
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Tue Dec 09, 2008 8:56 am    Post subject: Reply with quote

Well, testing it out on my end, if I try to strafe bunnyhop it will boost me up to 339 for a split sec, but nothing sustainable as without the cap. Also strafing side-to-side doesnt gain > 320 and wall hugging doesnt go higher than 304 so.... works 98% i suppose Wink

Oh btw I put that code at the end of BOTH PlayerPreThink and PlayerPostThink, not that it will make much a difference but just for sh!ts and grins Very Happy
Back to top
View user's profile Send private message
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Wed Dec 10, 2008 1:35 am    Post subject: Reply with quote

That's cool. Does it create any stuttering in client-side prediction?
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Wed Dec 10, 2008 1:48 am    Post subject: Reply with quote

BTW (and sorry for the double post), I feel I should respond to Spike, as he brings up a good point or two. Rocket Jumping may have been a bug initially, but it's one I like a lot. I think it's very clever, and you have to make serious concessions (in health and armor) to pull it off in addition to developing the skill required to get it working. It's a really cool mechanic imo, and it's more clever and has influenced gamer culture a lot more than bunnyhopping has.

That said, like bunnyhopping there's times when rocket jumping is appropriate, and times when it's game damaging. If the player is able to use it to cheat in a single player map (bypassing a huge part of the level), the mapper may not be happy with that. To the player this may be a cool way to beat the map, and speedruns may rely on it, but if a mapper wants to fix rocket jumps for his maps with a progs.dat inclusion then that's his right. If it doesn't work for the map he's creating, then it simply doesn't work.

Even worse, if a rocket jump lets players go places they shouldn't go (or get there too easily/quickly) in competitive games like Team Fortress, it can become a serious problem. Lamer tactics like placing sentries in spawn areas, or rocket jumping to the flag in 10 seconds on what should be a 45+ second run even when uncontested... these are things a modder is going to be *very* interested in stopping, regardless of how much certain players may lobby against him so they can keep doing it. There's a time and a place for rocket jumping, and it's not all-inclusive.

So, IMO the modder should have a solution to rocket jumping if it's not appropriate for his mod. Some games and mods are designed around rocket jumps (actually expecting and requiring them to do well), while others should not allow them because they ruin gameplay. If the modder sees it as a bug or threat to proper gameplay in his mod, it's an easy QC fix. If not, it's a cool "feature" that players love to use... myself included.
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
MauveBib



Joined: 04 Nov 2004
Posts: 602

PostPosted: Wed Dec 10, 2008 2:58 am    Post subject: Reply with quote

This thread has descended into pro vs anti, and I can't really see why.

The point isn't whether you are pro or anti bunnyhopping for tandard quake, the point is that modders should have the OPTION to not include bunnyhopping in their mods.

Is that really disputable?
_________________
Apathy Now!
Back to top
View user's profile Send private message
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Wed Dec 10, 2008 3:30 am    Post subject: Reply with quote

Wazat, um i'm using standard netQuake though, this is server side based on velocity most likely BEFORE prediction code is calculated so it shouldnt hinder any prediction.

Rocket jumps can be stifled thru quakeC also, imho its a quakeC bug anyways...

Code:

   if ((inflictor != world) && (targ.movetype == MOVETYPE_WALK))
   {
      dir = targ.origin - (inflictor.absmin + inflictor.absmax) * 0.5;
      dir = normalize(dir);
      targ.velocity = targ.velocity + dir*damage*8;
   }



change
Code:

if ((inflictor != world) && (targ.movetype == MOVETYPE_WALK))

to
Code:

if ((inflictor != world) && (targ.movetype == MOVETYPE_WALK) && (attacker != targ))

and poof no more Rocket jumps...

or if u want UBER rjs,
change all that to this

Code:

// figure momentum add
   if ( (inflictor != world) && (targ.movetype == MOVETYPE_WALK) )
   {
      dir = targ.origin - (inflictor.absmin + inflictor.absmax) * 0.5;
      dir = normalize(dir);
      if (attacker == targ)
         targ.velocity = targ.velocity + dir*damage*12;//OMG look out!!
      else      
         targ.velocity = targ.velocity + dir*damage*8;
   }

You get the idea Wink Though i do find RJs pretty much an expected behavior in most mods, CTF wouldnt complain if this was removed though.... Razz

Ack: 3rd time editing this post... but that above code may kill grenade bounce also so...

Code:

dist = vlen ((inflictor.origin - targ.org));
if ((attacker.v_angle_x > 45) && (dist < 40))

can be used to dertermine that the player is truely aiming at the ground... Razz
Back to top
View user's profile Send private message
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Wed Dec 10, 2008 3:54 am    Post subject: Reply with quote

Quote:
there's times when rocket jumping is appropriate, and times when it's game damaging.

But more importantly, it is player damaging. With each rocket jump, you do more damage, and you expend rockets, which can be a very precious commodity in some modes and maps. Perhaps if bunnyhopping was damaging in some way? On collision with a wall perhaps speed / 4 attributed to the hopper? You can go really fast in racing games, but there is genuine risk to it, and thats where the gameplay balance comes in - if you aren't judicious, you risk losing more ground than you gained. With bunnying, if you screw up, in most scenarios you still gained a lot of ground and now are set back to the actual game speed, without any reduction. In this respect, rocketjumping/grenadejumping is significantly different - not only is it intrinsically evident to the player ("He just propelled himself with that explosion! I never thought of that!") when being clever, it also has the significant costs of ammo for two very powerful weapons, and of the player's own health and armor. Bunnying is neither the work of intrinsically evident clever thinking, nor does it have a natural counterbalance. It is simply a gulf.

Quote:
If the player is able to use it to cheat in a single player map (bypassing a huge part of the level), the mapper may not be happy with that. To the player this may be a cool way to beat the map, and speedruns may rely on it, but if a mapper wants to fix rocket jumps for his maps with a progs.dat inclusion then that's his right. If it doesn't work for the map he's creating, then it simply doesn't work.

Try this one on for size - It is the mapper's responsbility to foresee such things. Just like it is their responsibility to lock the door to the exit if they want the player to find the key first. Look at e2m1, a rather large single player map. It is broken by jumping. Not rocketjumping, not rampjumping, not zigzagging, not bunnying - but the normal Quake jump, like the one you have to perform to access Hard skill.

This does not need to be done via a progs.dat, Romero could've prevented that easily by putting bars along the opposite side of the jump, or raising the lip on the window.... Regarding rocket jumps in singleplayer as well, it can hurt you more if you rj if you are playing the level seriously. Sure in speedruns people use it, but in speedruns they also go right past the monsters, avoiding much of the gameplay of the level. One cannot reasonably design their map or mod for those who will actively avoid aspects of it. So in normal playing conditions, on a map with balanced health and ammo, a rocketjump is quite the sacrifice to make (aside from shortchanging yourself the map).

In Beyond Belief map 6, Seal of Secrecy, which came out in only 1997, we see a Quake level that not only acknowledges rocketjumping, but does something about it. Shortly before the map gives you the rl, you pass by an area with a second floor, this second floor is a connection near the end of the map. If you backtrack and rocketjump up there, you will encounter bars blocking your progress, with a message jokingly chiding you for your attempt. No such blockade is encountered if you progress through the map in a normal fashion. A more radical but also more natural feeling response to a rocketjump, is a trigger which exists only in the trajectory of common rocketjumping paths, and ceases to exist if you reach the area it would have taken you to, naturally. This trigger, obscures or kills, some of the health or ammo or armor pick ups on the level - if the player wishes to use shortcuts, then the game can feel free to play hardball.

Regarding TeamFortress, these are still map problems primarily, solved by careful planning. Team specific doors, particularly when done in staggerings, can really thwart the griefer's plans and are fully within the purview of the mapper. There is the simple aspect that if you want to prevent exploits in regards to rocket/grenade jumping and team only areas, and don't want to delve into the code, you have to be imaginative. Just look at 2fort32, a map which if the exploiter is creative... ...like I was... ...is horribly unbalanced. The red team in it's trim (as each base has the same flow, but is thematically different) near the flag room, has a wonderful sentry spot. Theres actually room for two up there, and its a short grenade jump away. The only way to hit it in its position, is to stand on the ramp (which is steep enough that you slowly slide) in a certain spot, hitting its bounding box, without sliding down into the view of the sentry. The mapper simply did not anticipate this, but the solution is simple, make that part of the wall flush, or draw the geometry into a slant towards the ceiling.

My point being, the solution to rocketjumping is much like its origins, organic, clever, and simple. If you are not making new maps, or modifying existing ones for your mod, my suggestion would be to develop a non-explosive but good impact weapon, or make the rocket launcher just not bounce as much, so it comes at a much higher cost to the rocketjumper, as they may need to do it multiple times.

In short, I do not believe that bunnyhopping and rocketjumping fall into the same category of exploit, in many aspects, and the solution to the latter is far more natural than that of the former.

But this is all opinion, I just avoid playing with people who bunnyhop, or who insist on removing ALL potential variables from their experience, or who only play a very select few maps. I enjoy Quake for the shake up it can provide.

Quote:
The point isn't whether you are pro or anti bunnyhopping for tandard quake, the point is that modders should have the OPTION to not include bunnyhopping in their mods.

Is that really disputable?

Its not disputable at all.
_________________
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Back to top
View user's profile Send private message AIM Address
MeTcHsteekle



Joined: 15 May 2008
Posts: 397
Location: its a secret

PostPosted: Wed Dec 10, 2008 3:59 am    Post subject: Reply with quote

Quote:
rocketjumping is an obvious mechanic, so is not imho cheating in any way. id were fully aware of it, and e3m6 I think requires a grenadejump to get to a secret, or something.


i think spike is right :



the idea here is to grab the health, then the key, then the pentagram, then you are supposed to fire a grenade into the square indent on the ground, stand over it, and then jump, and it shoots you to the teleport and then to a secret. so it seems that by the time they had made episode 4, they had found that explosions will shoot you higher than normal. but the point im tying to get i guess is that they(id soft.) could have removed it themselves, but kept it in as a "feature".

(but im sure you already knew that Wink)
_________________
bah
Back to top
View user's profile Send private message AIM Address
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Wed Dec 10, 2008 5:04 am    Post subject: Reply with quote

r00k:

Yep, pretty much.

In teamplay class games like TF, it may also be appropriate to prevent ally rocket jumps. Or not. When I first saw allies helping each other rocket jump into the enemy base in 2fort I was very impressed. It was good teamplay, and cleverly got them up into the second floor where the snipers were having a heyday. Then they marched right into the flag room, while the defenders were camping the lower floor.

It's easy enough to make it so that your allies and you cannot get pushed by each other's damage. It's a small addition to the if statement: && !(teamplay && targ.team != attacker.team). However, unless rocket jumps are becoming a huge problem, it's probably good to leave team RJs in place. I think promoting that kind of teamwork is a very good thing.

scar3crow:

True, many rocket jump exploits can be fixed with the architecture and layout of the map. Sometimes though, in order to get the effects you want you have to stop rocket jumps from happening altogether. Having every inaccessible ledge that is vulnerable to rocket jumps covered in bars may not be optimal for theme. Sometimes it's cool to just have a ledge maddeningly outside of the player's reach, forcing him to find the key to the stairs to get over there.

So sometimes it's better to disable rocket jumps in a map than it is to modify the entire design to prevent them. Other times, simple modifications are all that's needed.
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Wed Dec 10, 2008 5:33 am    Post subject: Reply with quote

Or design a map without explosives, at least not at that point. Unless you wanna do Ogre grenadejumps, but at that point... bah, let em.
_________________
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Back to top
View user's profile Send private message AIM Address
Urre



Joined: 05 Nov 2004
Posts: 1073
Location: Sweden

PostPosted: Wed Dec 10, 2008 10:48 am    Post subject: Reply with quote

scar3: interesting idea there about the wall damage and all. But you all seem to be overlooking the fact that bunnyhopping, first of all, isn't an on/off switch. It takes ages to learn how to control. Sure, everyone can release the jump button and then quickly hold it down again in order to recieve an instant jump after landing, but that's far from all there's to it. It takes delicate control of turning, timing and anticipation to actually benefit from it. The amount of control you lose by being airborn makes it a huge risk to bunnyhop at all. Then there's also the jump sound, obviously, but it annoys me to great lengths that it seems to be the only downside most opposers recognize. A lot of times, when bunnying around, you'd wish you didn't, when you see a rocket heading for the same spot your body is flying at 600qu/s, and there's not much you can do about it at that moment. So it's a big risk to be doing it at all, even though you might be accustomed to it.

Then, to anyone who keeps on thinking it's hard/impossible to disable in qc, it's not. Just make it check for a flag right after jumping, and don't clear it until atleast two frames after landing. Why two frames you ask? Because one frame means you could still gain the same benefit as normal bunnying if you manage to accurately time pressing your jump button at the same instant as you land. Admittedly, this is incredibly hard, atleast in singleplayer, but it might not be as hard in multiplayer where the server might run at 20fps, meaning you have 1/20th of a second to press your jump key. If you on the other hand keep it an extra frame, the momentum you've gained from a jump will die off almost completely, making it even worthless to try. Combine this with the fact that it's even harder to time jumps slightly after landing, than precisely when landing. So there's no need to mess around with people's velocities, that's just plain evil.
_________________
Look out for Twigboy
Back to top
View user's profile Send private message Visit poster's website
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Wed Dec 10, 2008 5:23 pm    Post subject: Reply with quote

Quote:

So there's no need to mess around with people's velocities, that's just plain evil.


Razz

And my next trick, we're gonna average the PING of all player connected and add latency so it's even ground! Twisted Evil

Just kidding...

This is the actual code I use in my ctf mod
Code:

      if ((self.flags & FL_ONGROUND) && self.button2)
      {
         if (vlen(self.velocity) >= 576)
         {
            self.velocity = (self.velocity * (576 / (vlen(self.velocity))));
         }
      }


This asks the server if the player is touching the ground while holding jump and moving faster than 576 then slow them down.
This was because in the early days of CTF everyone played at ticrate 0.1. And hooking and bunnyhopping, the speed on the hop was ~576. This ^code^ will standardize the bounce velocity to mimic the ticrate of 0.1 for servers running at ticrate 0.025. Keeping those oldskool players from 1998 happy Razz

I'm not sure which "flag" you mean, FL_WOAHNELLY, but then the engine sees that flag and what, maybe apply more friction during those 2 frames? Very Happy
Back to top
View user's profile Send private message
Electro



Joined: 29 Dec 2004
Posts: 241
Location: Brisbane, Australia

PostPosted: Wed Dec 10, 2008 7:34 pm    Post subject: Reply with quote

Is there a way to flag threads so it doesn't tell me there has been posts in it?
_________________
Unit reporting!
http://www.bendarling.net/
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Wed Dec 10, 2008 9:28 pm    Post subject: Reply with quote

We could just ask all of us who have participated to stop the banter on this subject, and leave the thread only up for sharing of code snippets regarding adjusting game behavior from stock Quake to emphasize the design of your mod.

Then whenever its bumped, its less likely to piss someone off?
_________________
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Back to top
View user's profile Send private message AIM Address
frag.machine



Joined: 25 Nov 2006
Posts: 728

PostPosted: Wed Dec 10, 2008 11:50 pm    Post subject: Reply with quote

MauveBib wrote:
This thread has descended into pro vs anti, and I can't really see why.

The point isn't whether you are pro or anti bunnyhopping for tandard quake, the point is that modders should have the OPTION to not include bunnyhopping in their mods.

Is that really disputable?


I second that. Don't matter if it's fun or not, it should be OPTIONAL.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/
Back to top
View user's profile Send private message Visit poster's website
Urre



Joined: 05 Nov 2004
Posts: 1073
Location: Sweden

PostPosted: Fri Dec 12, 2008 4:34 pm    Post subject: Reply with quote

r00k wrote:
I'm not sure which "flag" you mean, FL_WOAHNELLY, but then the engine sees that flag and what, maybe apply more friction during those 2 frames? Very Happy


You can make a new flag for this purpose, but I suppose it's simplest to just keep FL_JUMPRELEASED for two extra frames after landing. You could create a new field for the client which keeps track of a local framecount, and compare that to the already existing global framecount, for example.
_________________
Look out for Twigboy
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion All times are GMT
Goto page Previous  1, 2, 3
Page 3 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group