Add accessibility mods to ranked play#38209
Conversation
bdach
left a comment
There was a problem hiding this comment.
Structural pass on the scoring parts.
| public long TotalScore { get; set; } | ||
|
|
||
| [JsonProperty("total_score_without_mods")] | ||
| public long TotalScoreWithoutMods { get; set; } |
There was a problem hiding this comment.
Be aware that due to intersecting concerns there may be a friction point with ppy/osu-web#13101 here.
Declaring this as non-nullable long may not fly because if the above PR goes in, then lazer scores without mods will have this set to zero. This matters for the read side, as this structure appears to be used both for reading from API as well as writing to it.
There was a problem hiding this comment.
Blocker: As previously discussed, sorting in this leaderboard provider still occurs using TotalScore uniformly.
osu/osu.Game/Screens/Play/Leaderboards/MultiplayerLeaderboardProvider.cs
Lines 190 to 193 in 42d27dc
Thus I am reasonably confident without testing that this will result in invalid sorting of the leaderboard if users in the room have selected mods that result in different multipliers.
In the way I envisioned this working, the sort would be adjusted to sort by GetDisplayScore(). That probably still works here, although it'd weird and non-obvious because GetDisplayScore() is adjusted in the implementation to change behaviour depending on UseTotalScoreWithoutMods from the score processor, but you're also passing in useTotalScoreWithoutMods to the provider directly (which I never really wanted to do).
|
Maybe change it to appear before a map on the map metadata screen so that the mods can be toggle on a per-map basis. The community seems to dislike the locked mod decision a lot because they expect "accessibility" options to provide full player agency instead of being locked in blindly before a match not knowing what maps they are playing on. This feel like a intentional handicap on a "accessibility option" to them and is against the common consensus on "free mods" since it has always been per map instead of per match both in tournaments and multiplayer lobbies. This change will be a tradeoff between player agency and strategical depth so both are fine imo, I am just here to share some immediate community feedbacks. I personally disagree with those opinions but it never hurts to share it regardless. |
|
Also, you should consider the interaction of this kind of change with DMR, since HD does affect some maps' difficulty by a lot even for HD mains, there is real potential of this skewing the DMR accuracy. |
See also: ppy/osu-server-spectator#522
Adds accessibility mods (HD, TC, CO, FI) to ranked play. Still called "free mods" to not introduce some new (possibly confusing) naming scheme.
The mods are selected once by the player prior to queueing up, and last for the entire duration of the match. I feel like this is more appropriate to put players on an even playing field, rather than having players effectively cheese their way out of certain mechanics.
To facilitate this,
IMultiplayerClient.MatchmakingJoinQueue()has been changed to a method that supports a complex params object that now includes the selected mods.Queue selection screen:

In the room: