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

Change S rank to require no miss #26630

Merged
merged 24 commits into from
Jan 24, 2024
Merged

Change S rank to require no miss #26630

merged 24 commits into from
Jan 24, 2024

Conversation

peppy
Copy link
Member

@peppy peppy commented Jan 19, 2024

As proposed in the original proposal. Got left out somewhere along the way.

  • Fix ranking screen display to handle this better
  • Migration considerations
  • More testing, probably

CleanShot.2024-01-22.at.12.39.15.mp4

@peppy
Copy link
Member Author

peppy commented Jan 22, 2024

This is in a pretty good state now, except migrations which will lean on @bdach's work with #26595.

@bdach
Copy link
Collaborator

bdach commented Jan 22, 2024

I've just pushed my migration changes, but also some fixes to the previous code.

Of particular note are: cb8ec48 (some extra API safety), 20ed7e1 (bug), fdd499a (bug).

Rest is migration code & general cleanup that was permitted by it. It has been lightly tested but not too much. I will do more testing of it tomorrow if I don't wake up to this being merged.

It does look pretty dumb to be checking if something is `null` *after
calling an instance method on it*...
@peppy
Copy link
Member Author

peppy commented Jan 23, 2024

20ed7e1 is weird because i could've sworn i fixed and force pushed this very early...

@juliand665
Copy link

I'm a little confused about this change, particularly this rationale:

Got left out somewhere along the way.

I just spent a while trying to find any place where people were formally polled about this, and I suppose the linked comment is basically that, however, the discussion did not end there. #4184 (comment) saw near-unanimous approval for what I interpreted as basing grades solely on accuracy (since FC is already represented in other ways). Precisely this seems to be what was ultimately moved forward with (#4184 (comment)), so I'm not sure where this reversal is coming from.

@peppy
Copy link
Member Author

peppy commented Jan 23, 2024

so I'm not sure where this reversal is coming from.

User acceptance is the issue. We're staying with what people are used to (from stable) so we can make forward progress. Thanks for understanding.

@juliand665
Copy link

juliand665 commented Jan 23, 2024

Thanks for clarifying! I wish I could see a formal vote on this or something like that, but I assume this kind of insight is just gleaned from the nebulous general consensus across different social media? That's unfortunate, but I understand that these things are rarely very clear.

@peppy
Copy link
Member Author

peppy commented Jan 23, 2024

Our goal right now is to get things live and start to get feedback from actually playing the game against existing leaderboards.

This change is easier than trying to figure some "FC" marker that people are happy with.

Grades can be recalculated at any point, so if there's enough community push we can change them down the road based on more well formed feedback.

@juliand665
Copy link

That makes sense, thank you for explaining! Can't wait to see lazer become the new face of osu :)

@bdach
Copy link
Collaborator

bdach commented Jan 23, 2024

Provisional osu! score spreadsheet with these changes: https://docs.google.com/spreadsheets/d/16FPqye6GWHZDZPAd0zPsRd3JTBxeNdjRF7LiP1EjgAI/edit#gid=364418891

I'm not sure why scores are getting nerfed to the ground. Will require an investigation (on top of fixing the failing tests).

peppy and others added 4 commits January 23, 2024 19:16
Co-authored-by: Walavouchey <36758269+Walavouchey@users.noreply.github.com>
This subtle detail was messing with server-side score import flows.
Server-side, legacy total score will *already* be in `LegacyTotalScore`
from the start, and `TotalScore` will be zero until recomputed via
`StandardisedScoreMigrationTools.UpdateFromLegacy()` - so in that
context, attempting to move it across is incorrect.
Non-legacy scores *are* subject to upgrades again - albeit it is *rank*
upgrades that they are subject to.
Chances are that because we've broken rank API, it would utterly fail
for all custom rulesets anyhow.
@bdach
Copy link
Collaborator

bdach commented Jan 23, 2024

The sheet breakage mentioned above is fixed by cb87d6c. Tested locally using the server-side verify command.

I think my migration portion is ready for light review at least, although some further testing is probably warranted. To that end I'll queue up a score calc run now and hopefully it passes given smoogipoo/diffcalc-sheet-generator#1 is now merged...

If it passes then I'll queue up the rest just to be sure. osu! should be matching as per above so I'll skip it.

!diffcalc
GENERATORS=score
RULESET=taiko
SCORE_PROCESSOR_A=https://github.com/bdach/osu-queue-score-statistics/tree/fix-compile-failure
SCORE_PROCESSOR_B=ppy/osu-queue-score-statistics#203

Copy link

github-actions bot commented Jan 23, 2024

@bdach
Copy link
Collaborator

bdach commented Jan 23, 2024

Empty is a good omen...

!diffcalc
GENERATORS=score
RULESET=catch
SCORE_PROCESSOR_A=https://github.com/bdach/osu-queue-score-statistics/tree/fix-compile-failure
SCORE_PROCESSOR_B=ppy/osu-queue-score-statistics#203

@bdach
Copy link
Collaborator

bdach commented Jan 23, 2024

!diffcalc
GENERATORS=score
RULESET=mania
SCORE_PROCESSOR_A=https://github.com/bdach/osu-queue-score-statistics/tree/fix-compile-failure
SCORE_PROCESSOR_B=ppy/osu-queue-score-statistics#203

Copy link

github-actions bot commented Jan 23, 2024

Copy link

github-actions bot commented Jan 23, 2024

@bdach
Copy link
Collaborator

bdach commented Jan 23, 2024

Sheets look good. Not sure there is much more testing I can do here.

.AsEnumerable()
// must be done after materialisation, as realm doesn't support
// filtering on nested property predicates or projection via `.Select()`
.Where(s => s.Ruleset.IsLegacyRuleset())
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, I removed this thinking it was checking legacy scores, but turns out this is important I guess.

@peppy peppy merged commit b272d34 into ppy:master Jan 24, 2024
15 of 17 checks passed
@peppy peppy deleted the s-rank-change branch January 25, 2024 12:45
@peppy
Copy link
Member Author

peppy commented Jan 30, 2024

not-s-rank.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants