ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.32k stars 2.28k forks source link

`TotalScore` in client database is incorrect #20299

Closed peppy closed 1 year ago

peppy commented 2 years ago

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 process TotalScore locally (and it's generally not used for ordering as we have ScoreManager.OrderByTotalScore).

Maybe it's not even required to store this in the local database to keep things using a single flow, in that case?

smoogipoo commented 2 years ago

Dropping this out of P1 since it's not displayed anywhere.

Syndace commented 1 year ago

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.

bdach commented 1 year ago

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.

Zyfarok commented 1 year ago

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.

bdach commented 1 year ago

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).