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

Slider input does not match osu!stable #7521

Closed
thewildtree opened this issue Jan 13, 2020 · 13 comments · Fixed by #11683
Closed

Slider input does not match osu!stable #7521

thewildtree opened this issue Jan 13, 2020 · 13 comments · Fixed by #11683

Comments

@thewildtree
Copy link
Contributor

thewildtree commented Jan 13, 2020

There are some major differences that I've noticed when comparing lazer with stable:

  • Slider head moves together with the sliderball, while on stable it stays in place with sliderball moving independently. Indirectly mentioned in Distracting edge case of hitcircle/sliderball fade out #6088, almost certainly causes replay inconsistencies vs. stable, especially on sliders with high SV. This is best visible when sliderhead doesn't get hit at all (lazer left, stable right, full example here):

    image

    By the way, judgement sprites seem to be displayed 'behind' the sliders, stable has them on top (as seen above)

  • Slider circle range seems to be a bit different, same replay on lazer gives different results than stable. Video comparison here. Fixed.

Fixing these, especially the first one, should result in getting rid of major replay inconsistencies on maps with high SVs, like this one for example, since right now if a slider has very high SV and gets hit at least a bit late (even still in the 300 hitwindow), in lazer the head might move before getting hit, resulting in a miss.

@thewildtree thewildtree changed the title Slider behaviour inconsistencies compared to stable Slider gameplay inconsitencies when compared to stable Jan 13, 2020
@thewildtree thewildtree changed the title Slider gameplay inconsitencies when compared to stable Slider inconsitencies in gameplay when compared to stable Jan 13, 2020
@Wieku
Copy link
Contributor

Wieku commented Jan 13, 2020

About slider head look at this TODO:

//todo: we probably want to reconsider this before adding scoring, but it looks and feels nice.
if (!IsHit)
Position = slider.CurvePositionAt(completionProgress);

About slider follow circle, in stable sprite doesn't reflect actual allowable radius. If I remember stable follow circle radius is 2.4 the hit circle radius, not 2. And it's virtual size is changed instantly.

FollowCircle.ScaleTo(tracking ? 2f : 1, 300, Easing.OutQuint);
FollowCircle.FadeTo(tracking ? 1f : 0, 300, Easing.OutQuint);

@Wieku
Copy link
Contributor

Wieku commented Jan 13, 2020

And I think one more thing to reconsider with high SV maps is to bring back -36 ms offset on slider tail judgements, at least for replays coming from stable. They're visible in this video as white points, they denote if slider is fully completed or not: https://streamable.com/u0gbg

@thewildtree
Copy link
Contributor Author

thewildtree commented Jan 13, 2020

Yup, just noticed that TODO as well, thanks. Fixing this probably needs an accompanying change to slider snaking-out behavior though (EDIT: actually seems like it doesn't), I'll try to work on that.

I'm kinda surprised the slider tail offset hasn't been implemented yet, considering how many maps rely on it to make sliders possible to hit without dropping sliderends / combo.

@peppy
Copy link
Member

peppy commented Jan 13, 2020

The 36ms hack isn't added because it was a hack. It may be added for legacy replays but should not apply to new plays (for now).

@thewildtree
Copy link
Contributor Author

For clarity, from discussion in the PR above:

Sliders are moving hitobjects. Lazer adds accuracy. Part of this addition is that if you hit late, the hitbox changes. This is intended for now.

Due to this, imo we should implement the 36ms hack + static sliderheads only for legacy replays (for now) to at least preserve consistency for old scores.

@bdach
Copy link
Collaborator

bdach commented Jan 13, 2020

Note that replay inaccuracy is tracked at #5514.

@smoogipoo
Copy link
Contributor

Fwiw, the 36ms offset is actually implemented. Check how nested hitobjects are generated for Slider.

The biggest gameplay difference is the tracking region. Static slider heads can be implemented for legacy skins.

@smoogipoo smoogipoo added this to the February 2020 milestone Jan 14, 2020
@thewildtree
Copy link
Contributor Author

Static slider heads can be implemented for legacy skins.

You meant legacy maps, right? Otherwise we'd have skins making a difference in gameplay mechanics and that's a no-go

@peppy peppy changed the title Slider inconsitencies in gameplay when compared to stable Slider inconsistencies in gameplay when compared to stable Jan 14, 2020
@smoogipoo smoogipoo changed the title Slider inconsistencies in gameplay when compared to stable Slider input does not match osu!stable Jan 14, 2020
@smoogipoo
Copy link
Contributor

As mentioned in the closed PR, we aren't decided on that. The tracking region being 0.4 smaller than it should be is an actual bug, however.

@thewildtree
Copy link
Contributor Author

Sorry, I meant to ask about legacy replays*. My bad.

@smoogipoo
Copy link
Contributor

Potentially, but there's a lot more that we'll have to consider if we're to go down that path. So I'm not interested in doing that for now.

@peppy
Copy link
Member

peppy commented Feb 6, 2020

@smoogipoo propose moving this out of milestone for now as I don't think legacy replay compatibility is a priority we have for February/March at least.

@peppy
Copy link
Member

peppy commented Dec 29, 2020

Going to milestone this for now because I think we need to come to a conclusion on how to handle snaking. Likely by fixating the hit position until hit or otherwise, even when snaking out is enabled. I have no issues with doing this as long as it looks visually convincing (which it won't without special attention).

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