Closed peppy closed 1 year ago
Dropping this out of P1 since it's not displayed anywhere.
I would like to have the TotalScore
field in a state where it can be used to sort scores. This would allow requesting sorted scores directly from realm, instead of the request -> detach -> manual sort
flow that is currently in use with ScoreManager.OrderByTotalScore
. It would also enable filtering of beatmaps based on the best local score in a realm query, which I believe is useful for (or even a requirement of) #4917 .
I'm aware of two ways in which the TotalScore
field is broken currently: the first is what this issue is about, and the second is that replays/scores imported from stable have the stable score in the TotalScore
field and not the standardized lazer score.
What do you think about this? Do you agree that the field is worth saving for the above reasons, or do you have other ideas for #4917 ?
I would like to work on these issues if we find agreement.
I would not be opposed to normalising all db entries to have standardised score in the TotalScore
field (with backwards migration). But I'm going to need backup from @ppy/team-client to confirm that there is agreement on this.
Regarding stable scores : Maybe this has already been considered but no matter what we still will want to make sure we keep the original TotalScore
field of stable scores saved somewhere, as this field will be needed for better estimation for future score formulas (mainly to estimate non-maximum combos) and it will be required for any change that requires redoing the estimations.
I agree however that TotalScore
should hold the correct value with multipliers applied to allow for efficient top 50/500 queries.
I want to say that this is actually as close to resolved as it'll ever get after our new standardised score migration efforts (https://github.com/ppy/osu/pull/23638, https://github.com/ppy/osu/pull/23892, https://github.com/ppy/osu/pull/24072).
While maximum statistics has since been populated, local
TotalScore
has not been updated in line with mod multiplier changes.In most cases this is not visible due to use of
ScoreManager
to processTotalScore
locally (and it's generally not used for ordering as we haveScoreManager.OrderByTotalScore
).Maybe it's not even required to store this in the local database to keep things using a single flow, in that case?