Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rating system should be primarily used to rate players with the goal of achieving better balanced teams resulting in higher quality matches.
The only thing that should matter is the final outcome of the match, it should not be used as a way to punish undesired behaviour such as early resigning. Bad strategies such as early resigning should naturally lead to worse team performance reducing the possibility of victory,
Currently losses always result in rating reduction, however you only get increased rating if you were present for at least 90% of the match (check
Teiserver.Battle.MatchLib.calculate_exit_status
for details).This also makes it possible for some players and smurfs to intentionally keep their ratings low by resigning early.
This PR changes the rating logic to always rate players regardless of when they leave the match.
Players leaving early can often reduce the quality of the match for one or all of the teams involved (for example, low rated player leaving and getting taken by high rated player or high rated player resigning early), however frequent leavers and early resigners should be dealt with in others ways (for example most games use some form of matchmaking cooldown).