ppy / osu

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

Unstable Rate shouldn't be converted in osu!mania #30828

Open peppy opened 18 hours ago

peppy commented 18 hours ago

Bumping to issue since it seems like something which needs resolution.

Discussed in https://github.com/ppy/osu/discussions/30698

Originally posted by **KapiWilq** November 17, 2024 A year ago, [there was introduced a change in the way that the Unstable Rate is calculated](https://github.com/ppy/osu/pull/25415). It made the Unstable Rate account for the gameplay rate, which made the Unstable Rate not require conversion when playing with rate-changing mods. [There was raised a fair concern about osu!mania](https://github.com/ppy/osu/pull/25415#issuecomment-1807452912), but according to [these](https://github.com/ppy/osu/pull/25415#issuecomment-1811435714) [replies](https://github.com/ppy/osu/pull/25415#issuecomment-1815833239) the Unstable Rate value for osu!mania should be correct. It's not correct. ## Why? osu!mania scales hit windows to account for the rate change[^1][^2]. This makes the Unstable Rate not require conversion when playing with rate-changing mods since hit windows are being resized to make them "effectively" the same size as if you are playing without rate-changing mods. Therefore, by converting the Unstable Rate in osu!mania, it's value is incorrect. This also makes the Unstable Rate value shown in osu!(stable) correct. | osu!(stable) | osu!(lazer) | | - | - | | ![screenshot352](https://github.com/user-attachments/assets/219f5f29-a917-4d23-b1d0-f26e2b77aca2) | ![osu_2024-11-16_18-15-38](https://github.com/user-attachments/assets/7be2de05-2a13-40b3-b30c-b3ad9d8b6eb7) | This is the score that I used for the comparison in these screenshots: https://osu.ppy.sh/scores/mania/301846710 [^1]: https://github.com/ppy/osu/blob/master/osu.Game.Rulesets.Mania/Mods/IManiaRateAdjustmentMod.cs#L28 [^2]: https://github.com/ppy/osu/blob/master/osu.Game.Rulesets.Mania/Scoring/ManiaHitWindows.cs#L39-L45