Task to allow new rating system in the future (new players start at zero then converge to skill) #551
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.
Feature
This adds a task that can be run in the future (e.g. a new season) that will
Update everyone's rating to use this formula:
New players will start at 0 and then over 30 matches, will converge towards their skill. After 30 matches rating just equals skill. 30 is configurable by admin.
This will update people's ratings in the database and add logs. And will also change the ratings for any future matches.
You can also rollback the task to use the old rating system too.
To use the new rating system:
To rollback:
If you do not run this task at all, then it should just continue to use skill minus uncertainty for match rating.
Purpose
This new rating system makes it easier for noobs to setup lobbies as they could do something like maxrating 10 instead of maxrating 25. This would allow lobbies with new players and very bad players together. Similarly experienced players who don't want to play with new players or bad players can use something like min rating 10.
In addition, since there's no subtraction we won't have many people at negative or zero. You can see here we have many at zero: https://www.bar-stats.pro/playerskills
Testing
After running:
Check
teiserver_account_ratings
table for new ratings. New players should have ratings between 0 and their skill. Experienced players should have rating equal to skill.Also check
teiserver_game_rating_logs
for logsNext try to rollback. Run
And check the two tables again. It should be returned back to skill minus uncertainty.
Future enhancements
The balancer could be fed with skill and num_matches just in case they don't want to use this provisional rating system.