Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOCD detection #360

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

SOCD detection #360

wants to merge 3 commits into from

Conversation

b1az3
Copy link

@b1az3 b1az3 commented Aug 6, 2024

  1. Automatic warning if the server detects SOCD (can be enabled or disabled by the admin by modifying k_allow_socd_warning)
  2. Command to check f_movement, summarizing for each player if the server detected anything. (ex: cmd check f_movement)
  3. End-of-game stats to show if SOCD was in use.
    Minor update of original PR.

@VVD
Copy link

VVD commented Aug 6, 2024

Add, plz, statistics in output from f_movement.
Same as at match end.

@dsvensson
Copy link
Collaborator

fyi you don't need to close the PR over and over again, just forcepush to your branch to update it.

@tcsabina
Copy link
Collaborator

tcsabina commented Sep 1, 2024

Hi @b1az3,

Thanks for the contribution!
Could you add the following things to this:

1. I had a short discussion with the tournament admins, and I think we would need a bit more options for this feature. Like:

  • completely ignore SOCD detection (level 0)
  • detect SOCD, and show during endgame stat (level 1)
  • detect SOCD, and warn player during game (level 2)
  • detect SOCD, and kick player during game (level 3)

It will be up to the server admin to decide what level of SOCD detection to use.
Later we can decide if we want to add 'level 3' to a ruleset.

2. We need some documentation about this feature. Nothing fancy, just a small description of the new variable, its valid values, etc.

What do you think?

@dsvensson
Copy link
Collaborator

build breaks qvm target, q3lcc requires variables to be declared at start of block.

@ginzberg
Copy link

ginzberg commented Sep 1, 2024

The current implementation erroneously reports joystick based movement as movement assistance.
Demonstration (Youtube)
GMK Joystick
This also results in false end-game stats (not in captured video, but Kovaak had played with a different joystick the other day and had 18,000 perfect strafes in the endgame stats in one 10 minute duel)

@dusty-qw
Copy link
Contributor

dusty-qw commented Sep 1, 2024

At this point it may be appropriate to name this something other than "SOCD detection" or "movement assistance", as it appears the specificity has been broadened quite a bit from that original aim. Wooting rappy snappy will trip the detection but is not SOCD, though it could arguably be classified as "movement assistance". Joystick movement also trips the detection but is neither SOCD nor assisted moving. Perhaps "non-traditional keyboard movement" is a more accurate description of what this algorithm detects.

@b1az3
Copy link
Author

b1az3 commented Sep 2, 2024

build breaks qvm target, q3lcc requires variables to be declared at start of block.

fixed

The current implementation erroneously reports joystick based movement as movement assistance. Demonstration (Youtube) GMK Joystick This also results in false end-game stats (not in captured video, but Kovaak had played with a different joystick the other day and had 18,000 perfect strafes in the endgame stats in one 10 minute duel)

Thanks for reporting. Joystick stats should be fixed.

@tcsabina
Copy link
Collaborator

Hi @b1az3

1. I had a short discussion with the tournament admins, and I think we would need a bit more options for this feature. Like:

* completely ignore SOCD detection (level 0)

* detect SOCD, and show during endgame stat (level 1)

* detect SOCD, and warn player during game (level 2)

* detect SOCD, and kick player during game (level 3)

It will be up to the server admin to decide what level of SOCD detection to use. Later we can decide if we want to add 'level 3' to a ruleset.

2. We need some documentation about this feature. Nothing fancy, just a small description of the new variable, its valid values, etc.

Any update on these above?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants