lichess-org / lila

♞ lichess.org: the forever free, adless and open source chess server ♞
https://lichess.org
GNU Affero General Public License v3.0
15.49k stars 2.26k forks source link

Playban improvements #5239

Open thomas-daniels opened 5 years ago

thomas-daniels commented 5 years ago

General:

Measures against stallers:

Measures against aborters:

than3-bits commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

@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