Open scheibo opened 5 years ago
I was considering a thing where unranked accounts are capped at a rating of 1200 or something.
Rating is also leaked through how much your opponent gains in rating (can be put into the Elo formula to solve for opponent's rating). I'm not sure if that's something we should worry about.
We could just make all their ratings 1000 for the purpose of rating updates, but that would be bad for the players who got matched with them.
We could just make all their ratings 1000 for the purpose of rating updates, but that would be bad for the players who got matched with them.
No need to tinker with the rating values. Just forcing a low K-factor (volatility) for unrated vs rated battles should do the job. We also have the ladder logs as a countermeasure anyway, right? That would handle intentional forfeits, which are the issue at hand. Do expect more forfeits from unrated players, though, but in the end that factors into their actual rating.
Rating is also leaked through how much your opponent gains in rating (can be put into the Elo formula to solve for opponent's rating). I'm not sure if that's something we should worry about.
It should be possible to hide the identity of the (rated) opponents of an unrated player client-side. (Moderators could still handle issues by joining the battle and checking their name themselves.)
reporting ratings in the logs
Hiding the ratings client-side should be enough. It's not like this is a critical feature or anything to go out of our way for a complex (|split|
) server-side implementation.
Also, the way to go for this would be to mimick this, right?
having separate usernames for the ranked and unranked modes.
We could have a user ID namespace unrated_${userid}
in the ladder tables.
(I was considering having separate ladder tables to support fast periodic resets of unrated accounts, but looking at the code it seems that doing so would require a rewrite of rating updates, to fetch & edit data from multiple tables at once.)
@scheibo in https://github.com/Zarel/Pokemon-Showdown/issues/5646#issuecomment-515593278
And is #5648 approved?
I might as well answer here: There are a lot of complexities in implementation which have yet to be hashed out, but I support the idea of unranked laddering being possible in any format, and for unranked and ranked users to be matched with each other.
OK, lets hash them out?
What concerns do you have if we:
1) use a separate ID namespace 2) hide ratings for the unrated player clientside 3) potentially cap unrated rating to avoid boosting?
What else is necessary to make this work?
Separate ID namespace
sgtm
Hide ratings for unrated player
So spectators and the opponent would see the rating update? I'm not a huge fan of this, it defeats the reason why I want to ladder unrated (not having to worry about my own rating because no one knows it).
potentially cap unrated rating to avoid boosting?
sgtm
Are the battles considered rated or unrated if one player is rated and one is unrated? How should its rating be reported in the battle list (currently it's "lower of the two ratings")?
Oh, Slayer95 said some more words about hiding the rated player's identity from the unrated player. I would probably prefer the other way around?
Oh, i missed the hiding the identity bit. But why would you want the other way around? Then the unrated player would be able to detect their approx rating based on who they get matched with?
So spectators and the opponent would see the rating update? I'm not a huge fan of this, it defeats the reason why I want to ladder unrated (not having to worry about my own rating because no one knows it).
Whats the alternative? As you say yourself "but [displaying a misleading ratings update] would be bad for the players who got matched with them."
Are the battles considered rated or unrated if one player is rated and one is unrated? How should its rating be reported in the battle list (currently it's "lower of the two ratings")?
I think if any is unrated the battle needs to be considered unrated (not showing ratings in watch a battle, no identities?). Though this seems soboptimal for the rated player and specs? @Slayer95 , thoughts here?
Oh, Slayer95 said some more words about hiding the rated player's identity from the unrated player. I would probably prefer the other way around?
So, what about double-blinding instead? Note also that starting from the moment in which a rated player gets matched with an unrated player, they can estimate their opponent's rating as their own, though limiting the knowledge to an "estimate" as opposed to the "actual" value might be what you look for.
So spectators and the opponent would see the rating update?
We can hide rating updates from spectators and opponents in every battle altogether. I don't think we would lose anything with that -assuming that replays still show a global MMR for the battle.
I think if any is unrated the battle needs to be considered unrated (not showing ratings in watch a battle, no identities?). Though this seems soboptimal for the rated player and specs?
That's sound, although extreme. There are some bullet points I have to add:
From these, and based on the principle of "partial knowledge" aforementioned, I'd argue it would be viable to use a different approach to "hidden" ratings, regarding 2nd/3rd parties. So, while the unrated player would still be oblivious to their rating value, their opponent and spectators would be shown a very rough estimate, by rounding to the nearest multiple of 100 or 200. That's also what would be fed to the battle MMR calculator and shown in the "Watch battle" list.
So, to summarize:
I feel like we have very different use-cases for unrated battles. For me, it's because I don't want to worry about other people knowing my rating. Showing it to spectators would kind of ruin the purpose.
It seems like maybe the best way to preserve this is to have the unrated players stay at rating 1000? Or just get matched randomly?
I don't consider what the spectators get to know as a critical component of this. That's why I list letting them know [identities and MMR estimate] as part of my proposals
However, if it is critical to you, it's fine by me to fully hide anything required. "Watch battle" would be an issue, though. Would we then just filter unrated battles out?
Yes. We might actually also design it so unrated battles are only matched with rated battles as a last resort, so it comes up rarely enough that people don't mind?
Sure. If that results in high wait times, however, matchmakingOK()
could simply have a p
chance to return false
in Rated vs Unrated.
Regarding matchmaking with random opponents, as well as capping MMR.
If the unrated player keeps track of their winrate with whatever means, that would allow them to estimate their GXE or WCAO as their WR, which would no longer gravitate towards 50%. Not fond of those ideas.
I would also match any two unrated players with each other, regardless of rating, over matching an unrated player with a rated player.
Originally posted by @Slayer95 in https://github.com/Zarel/Pokemon-Showdown/pull/5623#issuecomment-512648118
In the UI this can be implemented with a checkbox, and on the server this seems like it would basically just the be the same as generating an
'(unranked) Foo'
shadow alt for userFoo
.Some concerns: 1) Unranked account could be used for ladder boosting (unranked users more likely to be willing to forfeit to benefit ranked players with less penalty) 2) How does this work with the rating tooltip and reporting ratings in the logs? (https://github.com/Zarel/Pokemon-Showdown-Client/issues/1330). Additionally, rating is 'leaked' through 'Watch a Battle'
Forum Suggestion: https://www.smogon.com/forums/threads/find-unrated-battles.3652400/