You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems that stopping the game from reporting bad results is not so easily done as it is caused by something in the engine and not the lua code. So we will probably need to work around this on the server side :(
My proposition is to try to figure out which player is sending the bad results and then simply throw out all results reported by that player. Maybe we could even throw out only results reported past a certain point in time if we can automatically identify that a user has left the game early and is reporting bogus defeat.
How can we determine that results are bad?
When a player leaves with Exit to windows, their game very rapidly sends defeat for all players in the game (except for themselves) and then sends GameState: Ended signalling that FA has terminated. If we track time stamps for when a result is reported we could presumably define a window around when GameState: Ended is reported during which game results will be ignored. Maybe 1-2 seconds would be a good amount of time.
Checklist
Track timestamps for game results
Track which player reported a result
Track timestamps for GameState: Ended or "disconnection" from the game
Throw out a player's reports if they happen too close to a disconnection (1-2 seconds) and the disconnect happens before GameEnded is reported.
Adjust tests to report game results at specific times.
It seems that stopping the game from reporting bad results is not so easily done as it is caused by something in the engine and not the lua code. So we will probably need to work around this on the server side :(
My proposition is to try to figure out which player is sending the bad results and then simply throw out all results reported by that player. Maybe we could even throw out only results reported past a certain point in time if we can automatically identify that a user has left the game early and is reporting bogus
defeat
.How can we determine that results are bad?
When a player leaves with
Exit to windows
, their game very rapidly sendsdefeat
for all players in the game (except for themselves) and then sendsGameState: Ended
signalling that FA has terminated. If we track time stamps for when a result is reported we could presumably define a window around whenGameState: Ended
is reported during which game results will be ignored. Maybe 1-2 seconds would be a good amount of time.Checklist
GameState: Ended
or "disconnection" from the gameGameEnded
is reported.Related
#580
FAForever/fa#3087
The text was updated successfully, but these errors were encountered: