Skip to content

Conversation

@bdach
Copy link
Collaborator

@bdach bdach commented Aug 14, 2025

Probably closes #34645.

Obviously this is only good if the score has managed to process online and slot into a leaderboard before the user requested a retry. I can't make miracles happen.

Notably this is not applied to quick retry, because it would make quick retry slower, and the presumption is that if the user is quick-retrying their last score is likely useless for global leaderboards anyway. (The one exception to that last part is possibly quick-retrying from results screen, which is a flow that we have, but maybe fine to ignore it...?)

bdach added 2 commits August 14, 2025 14:18
Probably closes ppy#34645.

Obviously this is only good if the score has managed to process online
and slot into a leaderboard before the user requested a retry. I can't
make miracles happen.

Notably this is not applied to quick retry, because it would make quick
retry slower, and the presumption is that if the user is quick-retrying
their last score is likely useless for global leaderboards anyway. (The
one exception to that last part is possibly quick-retrying from results
screen, which is a flow that we have, but maybe fine to ignore it...?)
@bdach bdach self-assigned this Aug 14, 2025
@bdach bdach added area:gameplay quick fix Tasks which were taken on because they take no time to fix labels Aug 14, 2025
@emneo-dev
Copy link

emneo-dev commented Aug 14, 2025

I use the quick retry from the result screen quite a lot personally ^^.
It's a bit easier than clicking on the retry button or just going back to the song select.

Edit: I think that having the quick retry be a bit slower when at the result screen isn't that bad, since you already waited for that screen to appear.

@frenzibyte frenzibyte self-requested a review August 14, 2025 14:22
// that said, only do this when the user is *not* quick-retrying.
// this avoids the quick retry becoming longer than it needs to (because an extra API request has to complete before gameplay can start),
// and if the user is quick-retrying, their last score is most likely not important for global leaderboards, or the user won't care.
refetchLeaderboard(force: !quickRestartRequested);
Copy link
Member

Choose a reason for hiding this comment

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

Is the extra time added due to the request getting queued in the single API queue? I'm wondering if we should be firing out-of-ban to avoid this 🤔

Copy link
Collaborator Author

@bdach bdach Aug 15, 2025

Choose a reason for hiding this comment

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

That is the reasoning yes.

Firing out-of-band is probably going to be ugly code because you're going to need to tell the game-global component to do that conditionally.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, it's a bit like that. Hopefully we can improve in the future.

Let's go with this for now since it's a step in the right direction.

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

Labels

area:gameplay quick fix Tasks which were taken on because they take no time to fix size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

New leaderboard didn't show last PB in friends leaderboard

3 participants