Request for Feedback: Allow for a small amount of timeout retries per game #74
Replies: 1 comment 11 replies
-
for these constants N/M, do you have the numbers on hand for the average number of outlier latency events that might reasonably be attributed to network latency (as opposed to a server fault)? It's probably important that they're not arbitrary. What if the problem is avoidable? As in, maybe the problem lies with your hosting strategy and if you're using an unreliable provider instead of AWS EC2 (as a reliable counterpoint) then you might even argue the snake owner is responsible and should accept that risk? This might be a testable hypothesis, if you ran some controlled tests on different hosting platforms to determine whether one is more/less reliable than the other. |
Beta Was this translation helpful? Give feedback.
-
It's frustrating for any player when their Battlesnake times out for reasons beyond their control, especially if that results in them losing a game. Network hiccups happen -- that's a reality of web development, and we worry that the game engine is a bit too punishing in these cases that are clearly outside of player control.
So we'd like to propose adding some timeout leniency into the Battlesnake API.
One option is to allow up to N timeout retries per Battlesnake per game, with timeouts being immediately retried until N is reached (at which point the current move forward behavior kicks in). An example of this would be a "3-Strike" system.
Another option is to allow N timeout retries per M turns, ie: you get 1 retries every 100 turns, and it's wasted if not used. This is slightly more forgiving, and doesn't punish longer games like. A variation could be everyone has 1 timeout allowed, and once used, it recharges after N turns.
It may also make sense to increase the timeout on retries, in an effort to give servers that have gone idle a chance to wake up. If the game timeout is set to 500ms, maybe your first retry is 1s, and your second retry is 2s.
We're also open to other ideas here, and would love to hear what the community thinks.
Some identified concerns:
Beta Was this translation helpful? Give feedback.
All reactions