"Pro" (mis) Features

Non-technical talk about multiplayer and singleplayer gameplay and game design.
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Post by goldenboy »

First mod I made immediately after playing through Doom 3 the first time:

- raise walking speed + running speed
- make pistol deal more damage
- make grenades and chainsaw toggle-able

This is rather conservative, but it makes the game a lot more playable. I love strafe jumping. I'm no pro, I just love using these warped physics and just move around.

I like the flashlight mechanic, btw, I'm not going to change that. I also like reloading, because it adds some unpredictability to the game and forces you to think on your feet when you run out.

Q4 is dead because it's simply not such a good game. It feels sluggish compared to Q3A and UT2k4, and the weapons are a bit weird.
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

jim wrote:Ya, I know, burning out is nasty.. I'm constantly on fire and burning out, then I might have periods of time, like months that I don't feel like doing anything at all.
Yea, me too. It cycles endlessly, and most of my projects die during the lulls because I can't work up the interest to pick them back up when I'm in the mood to mod again.
Oh and thank you for these long replies LordHavoc and Wazat ;)
I'll see if I can offer suggestions to help you out too:

2) Inducing a 1-2 second delay before they can jump again is one solution, as LH said. Another solution is to delay them for a much shorter time right when they land, and add more friction/slowdown when they're on the ground. In fact, I've seen some games where landing from a jump slows the player down by 50% and caps his speed at that amount for half a second or so (Battlefield 1942 comes to mind, though there were many things I didn't like about that game).

Another option is to cap their horizontal speed to normal speed when they jump up (in the player jump code), instead of on landing. Capping them to normal speed on the way up may be less jostling than slowing them down below normal speed on landing. I don't know which works best. I just know that bunnyhopping is hard to fix completely without jumping becoming cumbersome.

3) The simple QC solution is to reduce velocity from damage (in T_Damage). Another solution is to reduce, or eliminate, velocity caused by self-inflicted damage. That's the one I see in most mods that address this issue. Clever and well-practiced teams in TF can still rocket jump or grenade jump off of each others' explosions though. It takes a lot of teamwork but they manage (I thought it was cool when people vaulted the wall in this way on 2fort).

Another solution is to cap the speed of the rocket jump after velocity is applied. The rocket should not let the player move faster than one of these (whichever is higher):
a) maximum intended player run speed
b) MAYBE*: speed the player was already moving

*The reason for B is because I'm wary of completely slowing down the player when he's legitimately moving fast, such as when he's damaged by a rocket (maybe his own) while flying out of a wind tunnel, or running down a slope. However, that may be exactly the tactic you want.
Worse, B may produce a vulnerability where a player can maintain a high speed by blasting nearby walls or the floor as he's moving, flying for as long as he has the health to keep going. He could even reverse negative velocity to become positive. It's less of a vulnerability, but still potentially a threat. Maybe don't include B because of that. Or make sure you don't let his Z velocity flip from negative to positive, or I don't know what else.... Test it thoroughly. ;)

Anyway...

Steps:
1) Pick which cap is higher
2) Apply velocity from damage
3) Test whether the player's new speed is faster than the cap. If not, do nothing.
4) If it is higher, normalize the player's velocity and then multiply it by the cap.

Untested example code:

Code: Select all

plSpd = vlen(targ.velocity);

// apply velocity damage
....

if (targ.classname == "player") {
  cap = PLAYER_MAX_RUN_SPD;
  if (plSpd > cap)
    cap = plSpd;

  if (vlen(player.velocity) > cap) {
    player.velocity = normalize(player.velocity)*cap;
  }
}
I *think* that's the right way to do it. There may be additional tweaks and adjustments you can do to make it work better. I forget which mod it was that I did this in... but it seemed to work quite well. It might even work for bunnyhopping if you cap it in this way on jumping up... but test it carefully first. :)


4) Thankfully Quake does not have this issue. I can imagine the code that would produce it, and Quake's doesn't work that way. In fact, it's the opposite -- your firing of nailguns/supernailguns/lightning can be slightly delayed by interruptions like walking over ammo.


5) There are a couple of strategies you can use to handle this, either alone or together. The first option is to slightly randomize the respawn times of items, adding a random amount of 0-30% (or 0-50%) to their normal delay.
self.nextthink = time + 30 + 30*.3*random(); // add random 30%

The second option is to allow powerups to randomly respawn in different locations. Dissolution of Eternity may have had something like this... I forget. Basically any powerup can respawn at any of the powerup respawn points, and may even be able to switch places with another powerup that's there and not yet taken.

6) Usually it's the mapper's responsibility to place clip brushes where geometry could be abused, but you can't always catch everything a player will find. And players WILL find it. :)

LordHavoc's idea of giving the player velocity toward his center (away from the corners that are over solid ground) when his center is not over solid ground should work fine. The player could be placed in some uncomfortable positions though on maps that require him to scale thin edges like that though... so be wary. Some secret areas and even some legitimate parts of the core progression through the map may require this feature to work.


I hope that helps!
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.
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

Excellent post Wazat.
Wazat wrote:I mean seriously... maybe these players could use some variety. If all they ever play are games and mods exactly like Quake with nothing ever excluded, then their opinions are way too narrow for me to rely upon.
I had a similar experience with ProQuake players, and with texture replacement projects, my opinion was that purists are hard to please with new textures that are 'faithful', more importantly they will just go back to the original textures as soon as they find fault in the texture pack, meanwhile the people who want something genuinely new will be disappointed as well.

And new textures is not even a matter of gameplay, some people want new graphics and the same gameplay, some people want new gameplay and the same textures, some want new graphics and new gameplay...

As for the topic of bunnyhopping in particular, it is the major separation between the netquake community and the quakeworld community, and has been since about 1998 - netquake doesn't "have" bunnyhopping (it does if you increase the server framerate enough), so people who prefer bunnyhopping play quakeworld and people who don't play netquake.

I fall firmly on the netquake side of the bunnyhopping matter, but I do not attempt to force my opinion on anyone else (debating which gameplay is more rewarding is certainly reasonable though).

In other words, TF in netquake is more class-based than it is in QW, solely because of the bunnyhopping difference, both games appeal to different audiences.
Supa
Posts: 164
Joined: Tue Oct 26, 2004 8:10 am

Post by Supa »

Good grief.

This is not about bunnyhopping, this is not about lightning, textures or anything of that sort.
Removing or otherwise attempting to sabotage these fundamentals *will* result in a poor base for your game. And no matter what additional features you add, so long as you have a bland fundamental base there will be very little room for a player to improve in - and thus there will be very little incentive to keep playing.
Again, good grief.

Go ahead and sabotage your game if you want. Do everything you possibly can to make the skill ceiling as low as possible. But please understand that once you've simplified everything and removed all room to improve in, there will be little reason to keep playing once a player hits that skill ceiling. There is a reason we don't play Tic-Tac-Toe once we've left primary school. There is a reason Quake-likes are still played today and are still very popular, while other games have fallen by the wayside.
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

jim wrote:What kind of that kind of stuff you can do with Darkplaces in netgames? Or are the cvars that make it look something like that disabled in netgames?
Everything in darkplaces works in netgames.

Even ambient, fullbright, wireframe, textureless modes, all forms of content replacement...

However I was careful to make none of them particularly useful as a wallhack (wireframe perhaps being the closest, and even that needs another setting to enable the visually confusing behavior that can act as a wallhack, if you can get your head around what you're seeing - I sure can't).

Furthermore there is a server-side cvar sv_cullentities_trace that can be turned on which blocks wallhacks very well at the network level (literally not sending players behind walls), Nexuiz uses this, and even without that there is a clientside cvar that has to be turned off before a wallhack (whether in engine or in GL driver) can function.

The only possible cheats are lighting (not a big advantage, I find fullbright confusing actually - the lighting is what gives a lot of the navigational cues - however this can be a massive advantage in completely unlit areas), content replacement (not a big advantage unless the game relies on unlit areas, or careful timing of powerups with modified sounds), and aimbots (which I can't directly do anything about).

Since I don't consider the first two remaining cheats particularly dangerous, my concern is only on the last, which is more of an exploitable game design issue (too easy to tell apart friend and foe, and too easy to shoot at them) than a technology issue (the technological solution is something like Punkbuster, which still fails if the cheat is done at the hardware level - I'm not aware of anyone implementing such a cheat at that level however).

So aimbots are the one real plague haunting DarkPlaces, other than that I consider the netcode to be "cheat resistant".
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Supa wrote:Good grief.

This is not about bunnyhopping, this is not about lightning, textures or anything of that sort.
Removing or otherwise attempting to sabotage these fundamentals *will* result in a poor base for your game. And no matter what additional features you add, so long as you have a bland fundamental base there will be very little room for a player to improve in - and thus there will be very little incentive to keep playing.
Again, good grief.

Go ahead and sabotage your game if you want. Do everything you possibly can to make the skill ceiling as low as possible. But please understand that once you've simplified everything and removed all room to improve in, there will be little reason to keep playing once a player hits that skill ceiling. There is a reason we don't play Tic-Tac-Toe once we've left primary school. There is a reason Quake-likes are still played today and are still very popular, while other games have fallen by the wayside.
Good grief Supa, that's an awfully limited point of view. Are you saying the only important skills in Quake are the unintended ones? Bunnyhopping, rocket jumps, strafe running and such, eh? Remove those from the game and there's nothing left worth mastering? Nothing fun left?

Silly.

Quake is about skill in aiming, maneuvering, dodging, and jumping, in strategy, anticipating your enemy, sharpening your combat skills, and making split-second decisions. Even without bunnyhopping and such, there's a LOT of depth to Quake. If you don't think so, fine. But you're missing out.

And Quake isn't the only type of FPS game out there that's endured... seriously, do you believe that?
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.
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

Wazat wrote:2) Inducing a 1-2 second delay before they can jump again is one solution, as LH said. Another solution is to delay them for a much shorter time right when they land, and add more friction/slowdown when they're on the ground. In fact, I've seen some games where landing from a jump slows the player down by 50% and caps his speed at that amount for half a second or so (Battlefield 1942 comes to mind, though there were many things I didn't like about that game).
Timer on landing is not necessarily desirable because the ground can be pretty uneven in some maps, such that falling happens frequently when crossing a room, or going down stairs, this is exactly why I chose to describe a jump timer instead of a landing timer.

I've heard of the speed penalties on landing approach, I'm not sure where I stand on that.
Wazat wrote:Another option is to cap their horizontal speed to normal speed when they jump up (in the player jump code), instead of on landing. Capping them to normal speed on the way up may be less jostling than slowing them down below normal speed on landing. I don't know which works best. I just know that bunnyhopping is hard to fix completely without jumping becoming cumbersome.
I find this idea of capping on jump to be fascinating, it really does get to the heart of the matter.

Note that it's still possible to endlessly rjump in the right circumstances to avoid this jump penalty, but it takes even more skill.
Wazat wrote:3) The simple QC solution is to reduce velocity from damage (in T_Damage). Another solution is to reduce, or eliminate, velocity caused by self-inflicted damage. That's the one I see in most mods that address this issue. Clever and well-practiced teams in TF can still rocket jump or grenade jump off of each others' explosions though. It takes a lot of teamwork but they manage (I thought it was cool when people vaulted the wall in this way on 2fort).
In videos of Call of Duty 3 exploits I saw various ways to get to various odd sniping locations (including standing on top of a sky brush in some cases), almost all of these exploits involved one player crouching and acting as a ledge for another player to jump on to get to the next higher location... People are inventive, and I admire this tenacity to get to odd places in multiplayer.

Kind of similarly, in Deus Ex (which was singleplayer only), it was possible to stick laser trip mines to walls and then jump up them as steps.
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

Supa wrote:Go ahead and sabotage your game if you want. Do everything you possibly can to make the skill ceiling as low as possible. But please understand that once you've simplified everything and removed all room to improve in, there will be little reason to keep playing once a player hits that skill ceiling. There is a reason we don't play Tic-Tac-Toe once we've left primary school. There is a reason Quake-likes are still played today and are still very popular, while other games have fallen by the wayside.
I think this is a disagreement of what this thread is about - going back to the original post it was inviting feedback on additional things to prevent, not a debate about pro vs not-pro.

As long as a game is moddable, some modders will make "bugfix" mods that some players don't like, not everyone agrees on what a bug is, or what a "pro" player is.

But sticking to the subject that Supa is bringing to this thread, it seems that the term "pro player" has come to mean "user of every possible exploit to gain advantage in the game", I don't think this definition is fair or even realistic, having been a competitive clan player for a few years before the term "pro" was even coined, we considered ourselves pro but we strictly avoided content modifications to the game (the infamous "pak2" cheats), to say nothing of aimbots.

Now "pro" is an ironic term for an abusive player, "expert" may a better term for competitive gamers who strive to improve their skills.

In particular, bunnyhopping is fundamentally unrelated to texture replacement and other visual/aural exploits of a game that seem to define "pro", bunnyhopping is practiced by experts because it adds their own mastery to the game, it is not changing the rules of the game, simply using what is there.

As long as the game rules permit something, an expert will use it.

Now if you take offense to an expert playing your game a certain way and choose to act on it, then you are indeed taking away from the game's flexibility, and should replace the mechanic with one more favorable to your vision, to give people a new skill to master and make your game more unique rather than simply a lesser version of another, most importantly a game should be self-consistent.

Another possibly relevant example is that the game Bionic Commando came out at a time (many years ago) when platform gamers were so well known for jumping that they were called "jump and run" games, it rebelled against the mainstream by having no jump key, instead a grapple arm that allowed you to swing around, or reel yourself up to a ledge, this took away one thing and added another more complex and harder to master mechanic in its place, in doing so it attracted a whole different community than the mainstream, many of whom were familiar with jump and run games but saw this game as fundamentally more appealing to them.

But I'm probably just rambling at this point.

It is dangerous to try to define divisions in the community, expert vs pro vs normal vs whoever else offends someone this week, all distinctions in gameplay style should be respected, not mocked.

Writing a thread with a premise of "I want to get rid of features that are loved by this group OF LOSERS" is simply insulting, it relies on a supposed division in the community for the entire basis of discussion.
SusanMDK
Posts: 601
Joined: Fri Aug 05, 2005 2:35 pm
Location: In The Sun

Post by SusanMDK »

Well, my mod/game is not going to look or feel like or relate to Quake in any ways. It's only the engine. I don't want people use any abusive tactics in it (in both singleplayer & multiplayer). It's meant to be something different.
LordHavoc wrote: Timer on landing is not necessarily desirable because the ground can be pretty uneven in some maps, such that falling happens frequently when crossing a room, or going down stairs, this is exactly why I chose to describe a jump timer instead of a landing timer.
It could be made so that small falls, that happens in stairs or something don't count, they don't trigger the land timer. Or the timer is affected by the jump/fall distance.

So if you jump up 128 units, which gives +1 second and then fall that same amount down, then it gives another +1 second. Then people couldn't cheat the timer by jumping up to some platform on height 112 and then only fall 16 units... which would only give you 0.125 seconds delay to jumping instead of 1.125 seconds.
zbang!
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

LordHavoc wrote:It is dangerous to try to define divisions in the community, expert vs pro vs normal vs whoever else offends someone this week, all distinctions in gameplay style should be respected, not mocked.
Since the dawn of society human beings have sought to define a "THEM" to single out and hate, blame for all our problems, etc. I blame society... and lawn gnomes.

Gnooooomes... Conniving little bastards... Watch your back!

But yes, I do apologize for being antagonistic. It just irks me when people say "You're wrong and stupid for removing this! Pro players will boycot you and your mod will never be successful". Some features just don't work for all games, so we remove them and do something else instead. Plain and simple. :(
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.
SusanMDK
Posts: 601
Joined: Fri Aug 05, 2005 2:35 pm
Location: In The Sun

Post by SusanMDK »

Wazat wrote: Gnooooomes... Conniving little bastards... Watch your back!
Need to add one (or maybe more) for you in my mod :P
zbang!
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Post by frag.machine »

Supa wrote:Go ahead and sabotage your game if you want.
Actually, Jim stated his mod would not be Quake based, only would use the same engine. Thus, I think it won't hurt nobody if he cut off some well known "features" that may otherwise generate bad game play behavior in his project.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Supa
Posts: 164
Joined: Tue Oct 26, 2004 8:10 am

Post by Supa »

LordHavoc wrote:It is dangerous to try to define divisions in the community, expert vs pro vs normal vs whoever else offends someone this week, all distinctions in gameplay style should be respected, not mocked.

Writing a thread with a premise of "I want to get rid of features that are loved by this group OF LOSERS" is simply insulting, it relies on a supposed division in the community for the entire basis of discussion.
Thank you. My entire involvement in this thread revolves around:
To be honest, I'm very disappointed with how prevalent this anti-pro attitude is becoming in gamedev communities now.
And I have been trying to explain where I'm coming from since that post, so that others may see *why* my views are as valid as anyone else's in this thread. Maybe that's why I'm getting misinterpreted here and people are thinking my argument boils down to 'OMG BUNNYING IS SACRED SIEG HEIL'.

I really, really do not want to see such a caustic us versus them, amateurs vs pros attitude take hold in i3d. It has already ruined Nexuiz for me and I certainly do not want to see it ruin i3d as well. Should that happen I will no longer have a reason to participate in Quake development. I really hope it doesn't, because I happen to like this place.
Downsider
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Post by Downsider »

The mod he's making has nothing to do with Quake, only the engine. He's not trying to use the same community as Quake. He can fix any exploits he wants, it's -not- Quake.
MauveBib
Posts: 634
Joined: Thu Nov 04, 2004 1:22 am

Post by MauveBib »

Supa: For you to jump in and immediately label it as a bad idea to remove "pro tricks" when you don't know the detail of his game is pretty silly.

What if it's intended as a slow paced, realistic, WW2 shooter. Would it make sense to keep bunnyhopping then?

"Quake-based" doesn't mean Quake any more.
Apathy Now!
Post Reply