Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question and policy suggestion regarding multirace players/offrace matches #312

Open
jcd-bionicman-0451 opened this issue Oct 4, 2020 · 0 comments

Comments

@jcd-bionicman-0451
Copy link

jcd-bionicman-0451 commented Oct 4, 2020

As far as I understand the system, each player id is assigned three Glicko-like ratings: vT, vZ and vP, respectively and the objective is to approximate their strength in tournament matches for the given match-ups. I understand that the system also records which race a player is using but as far as I can see, players do not have different ratings for their own race choice, e.g. if player A has Terran as his main race, offraces as Zerg and plays against a player B who plays Protoss, then the scores are updated based on A's vP and B's vZ rating.
Realistically however, A's vP rating is problably mostly an TvP rating (if he mains T) and would probably overestimate his ZvP strength severely to the point of being close to meaningless for this offrace matchup. Consequently, the score updates from this offrace match for A would probably overestimate B's vZ rating and underestimate A's vP rating.

First of all, is my understanding of this matter accurate?

If I did not make a mistake in the query with the current DB dump then matches in which one player does not play his mainrace make up ~2% of the matches in 2020.

I would like to make a suggestion (conditional on the above being correct) to account for this issue by slightly adjusting how matches are recorded in the database: Record offrace matches under new player ids. I.e. there would be an unaffected player_id for A and his offrace match would be recorded on some new player_id A(Zerg).

Cons:

  • not very elegant solution
  • minor data duplication (like the tag and name column for the two rows that the player now has in public.player)
  • might clutter the leaderboard

Pros:

  • the website provides more information (we can now find out how strong player A's offrace Zerg is, which we could not do before )
  • the website provides (imho) more accurate rankings (we no longer underestimate A's strength as his main T based on some offrace games in his history)
  • as far as I can see this workaround requires no code changes and no database scheme changes which seems appropriate for something that only affects ~2% of the matches
  • I speculate that this approach would make it easy to expand some features to make them aware of offracing in the future while allowing other features to ignore the issue altogether. For example, there could be a nullable column in public.player that indicates the mainrace player id of the player and is NULL if the row already represents a players mainrace. This would probably make it easy to filter out these extra player ids for some views (e.g. if we want a ranking of unique players with their mainrace strength), or merge them for queries (e.g. by taking a union over left join on ... = player.id and join on ... = player.mainrace_id if we, for example, want all matches for a given player including offrace matches) and ignore the issue altogether where its appropriate, e.g. for rating calculations I believe it would produce the most accurate results to treat a person playing two different races as two different players with different strengths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant