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

Playban improvements #5239

Open
6 of 8 tasks
thomas-daniels opened this issue Jun 30, 2019 · 3 comments
Open
6 of 8 tasks

Playban improvements #5239

thomas-daniels opened this issue Jun 30, 2019 · 3 comments

Comments

@thomas-daniels
Copy link
Member

thomas-daniels commented Jun 30, 2019

General:

Measures against stallers:

Measures against aborters:

  • After X abortions, you can't abort anymore - the abort button gets disabled and if you don't play, you lose rating (as in an Arena).
ornicar added a commit that referenced this issue Jun 30, 2019
Double playban length for new users (fix #4702, partial #5239)
ornicar added a commit that referenced this issue Jun 30, 2019
* master: (37 commits)
  Remove accidentally introduced empty line
  Don't void Fu[Option[Fu]]
  No new accountCreationDate field on UserRecord
  Most recent comms messages first
  Split  in two queries, sorted separately
  Replace Thread.participants 'deleted by users'
  Remove unnecessary imports
  Double playban times: don't add field to Player
  Comms: avoid expensive db call, add new indexed field
  Double playban length for new users (fix #4702, partial #5239)
  support StringFrag in translation arguments (fixes #5237)
  Comms: don't hide what you deleted
  Use syncache for TrophyKind
  fix JS storage bug from prev commit
  ES6 in util.js
  Rewrite trophy code: don't hardcode kinds
  Reland crypto sri generation
  Remove unused version check fun
  also remove version check on server
  Revert "HACKFIX try to work around broken locales"
  ...
thomas-daniels added a commit that referenced this issue Jul 3, 2019
Up to 4 playbans, the ragequit and disconnect timeouts stay the same. The timeout value goes down steeply from there on, to ~10% of the original value at 30 playbans. Here's a plot of the disconnect timeout (seconds) in function of the number of playbans you acquired:

https://i.imgur.com/wbAl4Xh.png

Partial #5239
thomas-daniels added a commit that referenced this issue Aug 25, 2019
RoepStoep pushed a commit to RoepStoep/lidraughts that referenced this issue May 23, 2020
@than3-bits
Copy link

than3-bits commented Jan 31, 2021

The people involved with this should rethink how this technically-enforced policy is being implemented, especially with regard to the point on if it should even be implemented using technology to begin with. Any game industry programmer (and quite a number of others) are aware of the existence of cursed problems, and this is one of them.

For starters, currently the code is unfairly impacting people who legitimately refuse to play new accounts which then get dinged/timed out for no other reason than to legitimately not want to play people that have no reputation and are in large probability likely cheating.

20 seconds at the beginning to open the profile page of your opponent to check the account creation date and then abort is causing flagging from your code and isn't much to ask in terms of general sportsmanship compared to punishing someone stalling for 7+ minutes in a hopeless checkmate. There is no good feedback mechanism to report/review these issues effectively at scale given the publicly available information on lichess.

The code is also trivial to workaround once you know how the system works, and you can bet people after being hit by it will work out how to avoid it. It took me only 30 minutes to find a way after I got bored enough and this hit me the first time after I aborted in the first 30s for not wanting to play an account, that was 2 days old with 300+ games on a username that looked looked like just another iteration. I was able to find this while multitasking between recompiling my linux kernel on another computer, running some ML research, and drawing; so its not hard and the cost/resources curves for doing this using technical measures doesn't make economical sense from a fiduciary perspective.

The class of problem you are trying to solve also makes enforcing it in a fair way, impossible.

At best any positive impact from this implementation will revert for the service as the adaptation curve progresses, and the trend of legitimate players leaving when they run into the timeout issue will remain constant. Its easy to say all those people leaving are contributing to the problem without any way to back it up with metrics at scale, its something you won't have visibility on and its not like feedback surveys are being dripped to accounts that haven't logged in X number of time.

Its also generally harder to remove changes after they stop being effective when there are no effective feedback mechanisms to determine efficacy, and eventually the codebase suffers in a number of ways. You look at Xorg, and eventually over years it just needed to be redone, and this often slows down development in terms of technical debt, manageability(complexity), and/or forward design.

For all of the above reasons, if you value the platform, this should be reconsidered and brought back to the design phase, for now.

@thomas-daniels
Copy link
Member Author

especially with regard to the point on if it should even be implemented using technology to begin with

It should. Every day, the total amount of time handed out in playbans is over 4 years. There is no way we can burden our moderators with that.

For starters, currently the code is unfairly impacting people who legitimately refuse to play new accounts

We've never considered this to be legitimate. If these new accounts cheat, they will get banned. But that's still a small minority of them. (And it's not only the new accounts that cheat anyway.) People have often requested a lobby filter against new accounts, we've always denied this.

The code is also trivial to workaround once you know how the system works

People can still get reported and our moderators can still look at it. We can still decide to take action if our automatic playban system failed.

I was able to find this while multitasking between recompiling my linux kernel on another computer, running some ML research, and drawing

"I am very smart"

and the trend of legitimate players leaving when they run into the timeout issue will remain constant

Legitimate players can always contact us if they run into the playban, and we can see what happened. So far, the only actually legitimate reason we've seen, is a bad network connection. So we try to keep this into account, and it's a difficult balance to find.

@than3-bits
Copy link

than3-bits commented Feb 2, 2021

@thomas-daniels @ornicar

Thomas, your reasoning is circuitous and flawed but I won't need to comment any further on this as it seems like I'm not welcome here, and I've suddenly lost any interest in helping make lichess better based on how I've now been treated by the organization.

You may or may not be aware that my account was closed sometime after I made my previous post, I haven't logged in or played since that time so I can't be certain as to when it was actually done but of this I am certain, no notice or notification was given, and I will be disputing the account closure vigorously.

Initially I was unable to find the contact information because it was buried several levels deep in folds but I've now found it and thus this edit.

I'll be reaching out by email to contact@lichess.org. Professionally, Nathan

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

No branches or pull requests

2 participants