Shove Idea from Shrubmod (Year 2002)

Lately I have looking up how players react to certain situations playing in tremulous, one of this are players from any team blocking teammates path. This idea was used back in game in 2002 to fix the problem with idle or afk teammates blocking doorways or pathways, avoiding teamkilling.

Here is a resume of the idea:

SHOVING

Cvars:
g_shove default: 1 turn shoving on/off
g_shoveAmount default: 80 amount of shove to apply
g_shoveNoZ default: 1 turn z-axis shoving on/off (1 means off)

Commands (client-side):
+salute

When g_shove is on (1), players can shove each other using +salute. For example,
players may “/bind mouse2 +salute” in the console. Shoving will push the player
they are pointing at an amount proportional to g_shoveAmount. Players can
crouch and look up to give some lift to their shove force, but only if
g_shoveNoZ is off (0). This feature is useful for use against players who are
blocking doorways or other key areas.

So, is this a good idea for trem?

  • Yes, I hate losing score for idle teammates blocking the armory/medi/booster
  • No, let’s stick to the past.

0 voters

1 Like

The wording of your poll is a bit biased :wink: .

I do like the idea, some trem mods did make use of something like shoving, but in the implementations I have seen, it occurred automatically by just walking into a teammate, which could yield undesirable results. I think it might be a good idea to have the features of +salute built into taunt.

Sorry about that :frowning: Can’t edit polls to fix it.

They were actually bound to the action bind (“F” key); so opening doors and shoving worked with the same bind.
By the way, I’m against that automatic shoving mod.

This sounds quite abusable, can it only be used on AFK players?

That’s why g_shoveAmount is there, to avoid abuse, the shove amount needs to be considered, is not like a 300 yards shove. But if you mean like, a player standing right next to a ledge and push him off, yeah that can happen but should be considered as malicious playing. :grinning:

it could, I did implement code for the voting algorithm on test7341 that detects if a player has been active (that is pressed movement keys, or used a primary attack) in the previous length of a vote (currently 30 seconds, but that could change with a change in the vote length), so something similar could be done with shoving. However, what if a player is maliciously blocking?

/callvote kick

Are there any ideas on how a server might be able to detect malicious blocking? Such detection could be helpful as part of a karma system.

Perhaps it could detect the total duration of direct contact with other players and once a certain threshold is reached they are putteamed.

I imagine it would be difficult to reliability implement though, and innocent players would be subject to it. Dretchs could be excluded by inclusion of the dretch punt 1 cvar.

I have another idea to avoid kicking that worked in the past to prevent malicious playing, I’ll be posting that idea soon in a new thread, since is a totally different idea from this one.

2 Likes

duration of contact alone may be not enough (there is a lot of contact in base). i would count pushing by other players in some small amount of time, bleeding by other players in the same time. but when ppl reverse engineer the algorithm it will be easy to abuse: let’s together start pushing someone, no matter where he is or what he does

or maybe simply amount of space around player can be detected. other attempt may be to try graph algorithms to detect an obstacles in a map (if presence of a players significantly changes distance between any two nearby points/vertexes)

and if everything else fails you can always try to train neural network :smiley: using, as an input, movements and interactions with environment (players and walls) in close range. but then you will probably need more cpu in your server

1 Like