Possibility to exceed sv_maxspeed by various techniques

Discuss anything not covered by any of the other categories.
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

Supa wrote:If anyone wishes to remove it from their game there is *nothing* stopping them from rewriting the movement code. In fact, certain engines make it quite easy to do such - look up DP_SV_PLAYERPHYSICS sometime.
I can't stand mods that use DP_SV_PLAYERPHYSICS.
Both DP and FTE, which are the only two that I know that actually support it, have clientside prediction.
If you use DP_SV_PLAYERPHYSICS you royally screw over that prediction and it just feels terrible to play.
Single player mods perhaps, but really... please don't do it in anything that allows coop or deathmatch. Or I will hate you forever.

Pressing jump, seeing your screen move... and then finding yourself still on the ground is just one minor annoyance of it.



In ZQuake/FTE you'll find a cvar named pm_bunnyspeedcap. Set this to 1 and instead of accelerating, your speed will be capped to the maxspeed. You can still bunnyhop, but it won't be predicted. You can still accelerate past maxspeed using rocket jumps or ramp jumps, but if you try changing your direction, your speed will be reduced back down to the maxspeed.
And it'll work with prediction. Players will still try bunnying of course... And they won't get anywhere with it, but it won't feel broken, they just won't accelerate.
Spirit
Posts: 1067
Joined: Sat Nov 20, 2004 9:00 pm
Contact:

Post by Spirit »

Baker wrote:Mouselook has always been part of Quake. With that comment you are just being silly.
Well, bunnyhopping too?
Baker wrote:My point is that if you are willing to break the EULA, it is easy to get new players.
Is it? So how is your http://freequake.quakeone.com/ doing?


Oh, well. Back to the point (for real this time).

I don't see it as an important bug. If you create a new TC and not fix it, then players will be able to use this feature. If you create a new TC and fix it, then it plays differently. Each TC has a different goal and idea, clearly you cannot assume that everyone considers bunnyhopping a bad thing. Actually some games implement "getting faster by jumping" on purpose.
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
Orion
Posts: 476
Joined: Fri Jan 12, 2007 6:32 pm
Location: Brazil

Post by Orion »

Spike wrote:In ZQuake/FTE you'll find a cvar named pm_bunnyspeedcap. Set this to 1 and instead of accelerating, your speed will be capped to the maxspeed. You can still bunnyhop, but it won't be predicted. You can still accelerate past maxspeed using rocket jumps or ramp jumps, but if you try changing your direction, your speed will be reduced back down to the maxspeed.
And it'll work with prediction. Players will still try bunnying of course... And they won't get anywhere with it, but it won't feel broken, they just won't accelerate.
This is what happened on CustomTF servers I played. Great mod, much better than regular TF IMO. If I want speed, I just buy Cheetah legs but they're expensive and I will be rather weak in weapons/health/armor.

Too bad the prozac server is down, and the other server I play is empty almost all time.

Bunnyhopping? Only on deathmatch! =P
Because on deathmatch you really need to be fast and take control of the RL/RA/powerup areas.

But on most teamplay mods bunnyhopping breaks gameplay as many people said here.
Urre
Posts: 1109
Joined: Fri Nov 05, 2004 2:36 am
Location: Moon
Contact:

Post by Urre »

Spirit said it, really. It all comes down to the game/mod/TC and the developer of said software. Seeing as id never fixed these "issues", and even let them exist in at least two of their future games, makes it most definitely a feature in Quake.

Let that sink in for a moment...



Now, if you want to remove it for your game, just do it, if you think it works better for your game. Just don't come claiming it doesn't have a place in games overall.

When it comes to existing games/mods/TC's having bunnyhopping where it "doesn't fit", I'd just say it's sad that the developers didn't do anything about it, seeing as it's not very hard. Perhaps they simply didn't think about it, and the technique wasn't developed at the time, and once they stopped working on the game, the technique was discovered and thus it would exist in the game for all eternity.

This was in fact the case of many a Quake gameplay quirk/feature/bug. Take the rocketjump for example. id used to consider it a bug, and even removed the ability, making testers furious, and thus they put it back in, and simply reconsidered their game. Dynamic game design in the works.

Now, to some this might seem harmless and perhaps even fate, while to others it might seem disasterous. Although, believe me, there are so many worse examples. Let's have a look at Starcraft. Playing SC online used to mean diverse matches on all kinds of maps. Soon, favorites were found, and it became harder to find other maps to play. Later, hackers (one might say modders, but SC modders have much more in common with hackers. I've done SC hacking, in case anyone wonders) figured out ways to exploit and get around the limits forced by the game. Maps which allowed mineral fields being placed with 0 distance from the start location and on top of eachother started popping up, allowing insane mineral income, essentially ruining the way the game used to play. Last time I tried playing a public SC game on Battle.net, I couldn't find any other maps but these. It's been like this for atleast five years. Talk about messing up a game. There are obviously other channels to go through to find "proper" SC matches, but that wasn't my point. I've got other good examples, but I'll leave them out.

Now, where does one draw the line? In practice, you usually can't do anything about it, unless you're the developer. In extreme cases you can't do anything as a developer either, unless you hire moderators. As a player you're forced to only playing with your friends, or finding/starting purist communities. These sort of things generally work out well.

Don't force your opinion down other peoples throats, it usually doesn't work. Now, in the individual case of TF, sure, I can agree on bunnyhopping making the game worse there, so if there are servers which have removed this ability out there, I'd choose those. On the other hand, I want my bunny in vanilla and CTF. And this is just my opinion.
I was once a Quake modder
Supa
Posts: 164
Joined: Tue Oct 26, 2004 8:10 am

Post by Supa »

Urre wrote:... figured out ways to exploit and get around the limits forced by the game. ...
This is exactly the point that I'm trying to get across. Bunnyhopping is a mechanic that requires no outside intervention to accomplish. It is a method of using the mechanics defined by the game physics to their fullest - and only those mechanics.

I want to note that I consider calling bunnyhopping a cheat to be rather naive. Learning how to move quickly and properly takes a non-trivial amount of effort. Comparing it to wallhacks, spiked models and aimbots is misleading if not outright insulting.
Electro
Posts: 312
Joined: Wed Dec 29, 2004 11:25 pm
Location: Brisbane, Australia
Contact:

Post by Electro »

This thread has turned into something that could have been helpful, into now something that is not.

I don't care what anyone thinks (haha then why am I on a forum you ask? - because I like seeing peoples work).

If people feel so negative about quake bunnyhopping, play single player. It's part of the multiplayer, fin. Baker has given people an option to add ways to stop it engine side for servers for those who wish, personally I wouldn't play on a server with it disabled unless maybe it was TF or some kind of other class based (speed varying per class kind of thing) gameplay.

Start a religion about it if it means that much to you. I just sure as hell won't be a follower.

Also, I don't like how things have gotten so negatively out of control and there's this kind of tension with Baker. He's doing good creating some activity on the forums with his new tutorials. Who knows, might spark some more engine programmers and what not. If things continue to degrade into utter shit then I might need to find a different forum to hang out on.

In short. SHUT THE F*CK UP.
Benjamin Darling
http://www.bendarling.net/

Reflex - In development competitive arena fps combining modern tech with the speed, precision and freedom of 90's shooters.
http://www.reflexfps.net/
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Post by Baker »

I knew when starting thread that there would be some strong feelings about this even though I tried to underscore the non-Quake nature of starting the thread.

My interest about this isn't "Quake", per se. I mean should Kurok or other total conversion mods have bunnyhopping? What about a new total conversion. Maybe the author doesn't want it, maybe it isn't appropriate for a new mod.

However, I recognize that if such a gameplay modification would end up being used in Quake, even if it were not the intended purpose.

This is just my opinion, but I feel that strong feelings about issues should be explored and discussed, not avoided.

Although I know it is uncomfortable at times -- I probably would have posted this thread a month ago had the topic not been somewhat controversial -- I personally think a successful forum is unavoidably going to at times have controversial discussions.

But yeah, I would have preferred tangent issues not arise. But I'm guilty of doing that as well in this thread too (although I shouldn't have).

Just my 2 cents. For what it is worth.
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Electro: It's the bunnyhopping worshipers that started a religion, not us. :)



In regards to the whole discussion/flame war, I still think my original point stands: Bunnyhopping is a bug. It is a beloved bug by much of the Quake community and shouldn't be unanimously taken from them, but it is also a huge problem for some mods. TF, for example, but also some of the mods I've done. In one, the player is meant to be slow and have to use his weapons to push demons back as he moves toward the goal. The second I learned bunnyhopping was short-circuting the gameplay and that my fix wasn't actually working, the mod became useless. This sort of thing is only really reliably done in the engine, and I got sick of trying to fix the damn thing in QC.

The solution is to add a simple cvar to popular engines so that the server and/or (preferably) the mod can determine whether bunnyhopping is appropriate. In some servers and mods bunnyhopping is appropriate, or even (according to the players) blasphemy to remove. In other servers and mods, it is absolutely not appropriate and destroys gameplay, and the modder needs the right to turn it off easily and effectively without a lot of client-side prediction crunching.

So what's so obscene about adding a cvar?
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.
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Post by Baker »

Spike wrote:In ZQuake/FTE you'll find a cvar named pm_bunnyspeedcap. Set this to 1 and instead of accelerating, your speed will be capped to the maxspeed. You can still bunnyhop, but it won't be predicted. You can still accelerate past maxspeed using rocket jumps or ramp jumps.
Ah yeah, for some reason when running up a ramp in Quake you can get higher acceleration.

I'd like to examine that one too for the sake of consistency, although no one cares about ramp jumps. It would be more consistent, unless there is something insurmountable about that.

And although rocket jumping is considered standard fare in Quake, I want to explore that as well because it might not be desireable behavior in all mods.

I can imagine non-Quakey mods not wanting players to bypass map structures but still wanting a rocket launcher type weapon that has "impact".
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Baker:
I imagine the rocket jump solution is mostly a QC fix, since it's the QC that applies the velocity (whereas bunnyhopping comes from engine movement code exclusively). However, there may be some engine features that could be used... for example rapidly decelerate the player when he exceeds sv_maxspeed. You run the risk of breaking wind tunnels, jump pads, etc that way, though.

A QC rocket jump fix might involve reducing damage knockback force to almost nothing. If you don't care about players using teamwork to rocket jump each other, you could cause a player's damage to never push himself.

Or you might cap the knockback at a certain level so that it cannot increase the player's speed beyond sv_maxspeed (or the player's .speed in cases where that is available in the engine). Damage velocity that would increase their speed beyond that is just shaved off.

That could make a handy QC tutorial.
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.
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

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.

ramp jumping, just jump down the ramp on e1m1 and you'll be going nice and fast... do it once and you'll think 'WHOA'. again its pretty obvious that it can be done, at least after the first time you did it.

indefinitly accelerating by adjusting your angles and moving perpendicular to motion and stuff... GAH!
not obvious at all.
However, it takes practise. And skill, same as aiming does, same as compensating for lag (yours or your enemies) same as learning the maps, same as learning routes through the maps to get all the items before your oponant can.
this is something which was originally unintended, but due to the fact that it takes skill and practise to move around the maps at such speeds, the fact that you cannot normally accelerate instantly, the fact that you need to turn at different speeds to compensate for the speed you're actually moving at. It adds more to the game than it removes.
Its not like an aimbot. It really does take time and patience to learn how to bunnyhop around maps without loosing your speed. And every map has different passageways.

Much to my annoyance, even framerate changes how easy it is to bunnyhop.


However, I do agree that bunnyhopping in any of its forms can ruin games with sniper rifles, or team objectives that involve getting from one place to another (ie: ctf), or infact any mod where weapons/abilities are balanced against speed of the player.
This of course means it would suck big time in counterstrike.


Small note about bunnyhopping in quakeworld:
The qwsv 2.4 release from id software has a 'bug' in the prediction code. this bug makes you randomly fail to bunnyhop (velocity is sometimes not cleared when you re-jump, meaning -270+270 = 0 = no jump).
This was 'fixed' in zquake first, as far as I know, and thus found its way into the derivatives, including mvdsv. Its a serverside thing. And I call it a bug because it wasn't present in clients, causing prediction glitches.
Its the custom quakeworld servers that actually enabled proper reliable bunnyhopping in quakeworld.

Mods/admins are free to set that cvar if they choose to do so. But for deathmatch mods, it just adds to the gameplay.

Heck, quakedonequick depends upon such bunnyhopping features.
r00k
Posts: 1111
Joined: Sat Nov 13, 2004 10:39 pm

Post by r00k »

Let the modder decide??

in PlayerPreThink

Code: Select all

		if (self.flags & FL_ONGROUND)
		{
			if (vlen(self.velocity) >= 320)
			{
				self.velocity = (self.velocity * (320/ (vlen(self.velocity))));
			}
		}
I have an option in my CTF mod to CAP bunnyhops at lower ticrates to equal the speed of a bunnyhop at ticrate 0.1.
Last edited by r00k on Tue Dec 09, 2008 5:46 am, edited 2 times in total.
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Post by Baker »

r00k wrote:Let the modder decide??

Code: Select all

		if (self.flags & FL_ONGROUND)
		{
			if (vlen(self.velocity) >= 320)
			{
				self.velocity = (self.velocity * (320/ (vlen(self.velocity))));
			}
		}
*cough* sv_maxspeed */cough*

Interesting idea, I'll have to try that out.
Last edited by Baker on Tue Dec 09, 2008 5:48 am, edited 1 time in total.
r00k
Posts: 1111
Joined: Sat Nov 13, 2004 10:39 pm

Post by r00k »

heh ya sv_maxspeed could be supplied there instead of 320 ;)
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Does it work consistently? When I tried my own QC solution people were still able to gain a benefit by bunny hopping. It's also important that client-side prediction doesn't start messing up, but I don't think a solution like this will create much of a problem in that respect.

It's definitely worth a try.
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.
Post Reply