Pruning out the "dead" / "inactive" snakes on the leaderboards #252
InterestingBrainPoops
started this conversation in
Feature Requests
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Problem / Bug
There are a lot of "dead" snakes on the leaderboard that don't respond to the
/move
POST request sent out from the engine, causing it to have a default move of "up" until it dies. This has created a massive pool at the bottom of the leaderboard that takes incoming snakes a few days to get through, and a variety of other problems.Solution
Step one would be defining what a "dead" snake is, and how the engine would know it is dead. My current thought is if a snake doesn't respond to any requests (
/start
,/move
,/end
) for 5 consecutive games in one round, then we can classify it as "dead". The next step gives us two options, one is to put it in a "timeout", and the other is to remove it from the leaderboard.Timeouts
Timing the snake out is the kinder option, in which the snake would keep its score (or have some kind of decay over time) for a few days, and the developer would have to manually re enter it. The developer would receive a notification when the snake is timed out, and how to resolve the situation.
Removal
After the snake gets classified as "dead", the developer would receive a notification that the snake got removed from the leaderboard, and will have to be manually re-entered, starting with 0 points. Removing the snake would reach the desired end goal a lot faster, but gives developers less room for error, because if a developer accidentally takes their server offline for 5 games then their rank gets reset.
Another thing to add onto this, we can change the timeline so that it gets removed the next round of games, but will continue to participate in the current one. Basically if in the games on 2/13/24 snake A became classified as "dead", the snake would continue to get put into games as usual for that day, but the developer would receive a UI notification and an email (?) to confirm that the snake isn't dead before the next round of matches starts. And if the snake's status isn't fixed by then, it will get removed and not get placed into any matches that day. This has the advantage of being kinder on the developers, but will require more overhead to implement.
Conclusion
"Dead" snakes at the bottom of the leaderboards are a pain for incoming snake wranglers and old ones, and can be fixed relatively easily. Some things that need further discussion are the number of games that determine whether a snake is "dead", and how to exactly remove them from the leaderboard. Somethings that i think we should keep in mind is that a lot of the snakes that will be impacted by this are made by newer developers who will have more unstable servers than experienced / long term devs.
Beta Was this translation helpful? Give feedback.
All reactions