ppy / osu

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

After clearing a song, It took approx. 25 seconds to see the results - It just hung there. #26725

Open Halbour opened 9 months ago

Halbour commented 9 months ago

Type

Game behaviour

Bug description

I played A map without any special configs, Keyboard and Mouse - When I finished it, it just stayed like this for a time. Very weird...

Screenshots or videos

https://github.com/ppy/osu/assets/86569310/8ecfb1db-2a4c-4a82-b317-a1ea6abb30ab

Version

2024.114.0-lazer

Logs

compressed-logs.zip

peppy commented 9 months ago

This is due to score submission, we're doing some server maintenance so it's a bit slow.

This should definitely be better communicated to the user, and not block gameplay results flow. Likely a duplicate but if so, should be bumped to p1 or p0.

bdach commented 6 months ago

and not block gameplay results flow

Submission has to complete for results to be shown though.

https://github.com/ppy/osu/blob/690525786944d33d99f0cee9f092ec0fcb506680/osu.Game/Screens/Play/SubmittingPlayer.cs#L292-L299

The above is important both for display (populating the user's placement on the leaderboard) and for database consistency (storing the online ID of the submitted score).

The furthest-reaching change I think I can do here without redoing major pieces of submission is changing things around such that Player can pass a Task to ResultsScreen and ResultsScreen will be the one waiting for it instead. Is that an acceptable solution as far as you're concerned? Do note that this is probably going to lead to ResultsScreen logic becoming much more complicated because I will have to try and handle a lot more async / ordering issues. Everything in ResultsScreen currently just assumes that there is either no score or the score is already there. It can't respond to changes of Score.

Or we could just put a spinner on the screen and call it a day? But that feels like a cop-out?