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

Late hits on short sliders can cause incorrect combo breaks #25651

Closed
Natelytle opened this issue Dec 2, 2023 · 6 comments · Fixed by #25776
Closed

Late hits on short sliders can cause incorrect combo breaks #25651

Natelytle opened this issue Dec 2, 2023 · 6 comments · Fixed by #25776

Comments

@Natelytle
Copy link
Contributor

Natelytle commented Dec 2, 2023

Type

Game behaviour

Bug description

This issue can happen with buzz sliders or with slider streams, the latter being much more apparent.

In this replay, there is a sliderbreak at 1348 combo on a buzz slider which was clicked after the first repeat. In this other replay, there is a sliderstream at 1826 combo where most of the sliders broke combo, despite being an FC in stable.

This issue is caused by 5503407.

Screenshots or videos

2023-12-02.18-24-02.mp4
2023-12-06.20-12-55.mp4

Version

2023.1130.0-lazer

Logs

database.log
input.log
legacy-ipc.log
network.log
performance.log
runtime.log

@Natelytle Natelytle changed the title Incorrect sliderbreak on slider repeats Late hits on short sliders can cause incorrect combo breaks Dec 7, 2023
@bdach
Copy link
Collaborator

bdach commented Dec 7, 2023

I'm putting this on the project because it keeps coming up and looks generally important.

That said I don't know how we fix it. Reverting the commit mentioned in the OP helps, but that was supposed to fix scoring in the first place, which is broken by this because depending on judgement ordering it may cause 1M score to no longer be achievable anymore (see #24966 (comment), #25200). We could paper that over by going "let's just do exactly what stable did" and having slider parts not give combo bonus but I dunno.

@ppy/team-client any brilliant ideas welcome.

@smoogipoo
Copy link
Contributor

Resolving this is going to be loosely related to #25594, as well as the ongoing discussion in #25129

@peppy
Copy link
Member

peppy commented Dec 15, 2023

@smoogipoo tentatively assigning this one to you. not sure this needs to be in the project if it only affects legacy replay playback, but definitely worth looking into to see what exactly is going on stable's end, and you are the deepest in slider knowledge right now.

@smoogipoo
Copy link
Contributor

This issue would also be resolved by the recent changes in #25776

@peppy
Copy link
Member

peppy commented Dec 18, 2023

For reference, can you explain how that PR fixes a stable compatibility issue?

@smoogipoo
Copy link
Contributor

smoogipoo commented Dec 18, 2023

The miss here is a case we've discussed recently - a key is being held from a previous object while cursor enters the next slider. The next slider is a buzz slider, so the repeat gets judged before the head is pressed with the key the player intends to use for this slider.

This condition kicks in, which forces a miss on the head:

if (Tracking && !DrawableSlider.HeadCircle.Judged)
DrawableSlider.HeadCircle.MissForcefully();

The PR above doesn't allow the repeat to get judged until the head is judged.

Stable allows out-of-order judgements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

4 participants