-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Remove rounding of slider velocity multiplier on juice streams #28337
Remove rounding of slider velocity multiplier on juice streams #28337
Conversation
Test is an abridged / cropped version of https://osu.ppy.sh/beatmapsets/971028#fruits/2062131 to demonstrate the specific failure case (unfortunately can't use the whole beatmap due to other conversion failures).
Compare: ppy#26616 This came up elsewhere, namely in ppy#28277 (comment). As it turns out, at least one beatmap among those whose scores had unexpected changes in total score, namely https://osu.ppy.sh/beatmapsets/971028#fruits/2062131, was using slider velocity multipliers that were not a multiple of 0.01 (the specific value used was 0.225x). This meant that due to the rounding applied to `SliderVelocityMultiplierBindable` via `Precision`, the raw value was being incorrectly rounded, resulting in incorrect conversion. The "direct" change that revealed this is most likely ppy/osu-framework#6249, by the virtue of shuffling the `BindableNumber` rounding code around and accidentally changing midpoint rounding semantics in the process. But it was not at fault here, as rounding was just as wrong before that change as after in this specific context.
!diffcalc |
I've checked the sheets in several ways and I have seen nothing that would make me doubt that this is a correct change to make, so I will be undrafting this, but there are several considerations so cliff notes version first:
@ppy/team-client While reviewing please focus on the above points and the implications thereof. Before this is merged I would like a conclusive opinion as to whether we're doing any of the aforementioned things (and if yes, make sure that total score version is bumped in client). For the interested (is there anyone?), here's the breakdown:
|
For me, one other important consideration is that osu! specifically doesn't have a precision set, and I'm sure that is purposefully so because it did at one point in time. Therefore, even optically, this looks like a positive change. I think when SR/PP changes come we'll just reprocess all rulesets at this point anyway, just to get everything to a baseline that is off Also pinging @peppy to read/take note of the above & click the green button. |
Personally I wouldn't bother with this because it's unlikely to have affected more than a handful of scores (and whether the user notices this is even less likely). @smoogipoo thoughts on this one if you disagree? |
Agree - I don't think it needs to be bumped until it's noticed in practice. |
Compare: #26616
This came up elsewhere, namely in #28277 (comment).
As it turns out, at least one beatmap among those whose scores had unexpected changes in total score, namely https://osu.ppy.sh/beatmapsets/971028#fruits/2062131, was using slider velocity multipliers that were not a multiple of 0.01. See juice stream at 04:25:568 and the control point at the same time instant. The specific value used was 0.225x:
This meant that due to the rounding applied to
SliderVelocityMultiplierBindable
viaPrecision
, the raw value was being incorrectly rounded, resulting in incorrect conversion.The "direct" change that revealed this is most likely ppy/osu-framework#6249, by the virtue of shuffling the
BindableNumber
rounding code around and accidentally changing midpoint rounding semantics in the process. But it was not at fault here, as rounding was just as wrong before that change as after in this specific context.Test is an abridged / cropped version of https://osu.ppy.sh/beatmapsets/971028#fruits/2062131 to demonstrate the specific failure case (unfortunately can't use the whole beatmap due to other conversion failures).