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

Seeking in a replay causes a miss on a 0 miss score #13352

Open
Sinamer opened this issue Jun 6, 2021 · 10 comments
Open

Seeking in a replay causes a miss on a 0 miss score #13352

Sinamer opened this issue Jun 6, 2021 · 10 comments
Labels
area:replay priority:2 Moderately important. Relied on by some users or impeding the usability of the game

Comments

@Sinamer
Copy link

Sinamer commented Jun 6, 2021

Describe the bug: Watching a replay of a score I set on osu!lazer, there will always be a miss on the same slider, if you seek through the replay.

The score was set on this beatmap: https://osu.ppy.sh/beatmapsets/471285#osu/1007403

And this is the exported replay file (in zip format for github upload):
Sinamer playing Lindsey Stirling - Master of Tides (LunaSaika) [Violin Dance].zip

Screenshots or videos showing encountered issue:

Clip.21.mp4

osu!lazer version: 2021.602.0

Logs:
runtime.log
performance.log

@bdach
Copy link
Collaborator

bdach commented Jun 6, 2021

I'm pretty sure this isn't a new issue and has been around for a while, but I can't actually find an open issue tracking this.

@ekrctb
Copy link
Collaborator

ekrctb commented Jun 7, 2021

I'm unable to reproduce.
I noticed the video is not showing classic mod while replay has one, and the score is different.
Can you make sure you linked the correct beatmap and replay?

@Sinamer
Copy link
Author

Sinamer commented Jun 7, 2021

This replay was done in osu!lazer, so it shouldn't have a classic mod applied. I am sure the linked beatmap and replay file is correct

@ekrctb
Copy link
Collaborator

ekrctb commented Jun 7, 2021

It seems like current osu!lazer is always adding classic mod even for plays done in lazer. Sorry for confusion.

I could reproduce the issue by commenting out OsuModClassic code.

@minasminas
Copy link

minasminas commented Jun 8, 2021

This problem also persists if you don't seek in the replay. For example in this Beatmap (https://osu.ppy.sh/beatmapsets/1115124#osu/2580606 [The 4* Version]) if you Watch the Top Replay from the User "Rizer" in the Global Leaderboard, there will be at least one Miss, even though there shouldn't be any, because the Score is an SS.

@peppy peppy added the priority:1 Very important. Feels bad without fix. Affects the majority of users. label Jun 9, 2021
@ekrctb
Copy link
Collaborator

ekrctb commented Jun 9, 2021

@minasminas That is a separate issue. To keep the scope of this issue minimal, please open another issue for issues of replay done in osu!stable.

@ekrctb
Copy link
Collaborator

ekrctb commented Jun 9, 2021

So, the miss is in a slider head.
Without the classic mod, the slider head position is moved to follow the slider ball:

Position = Slider.CurvePositionAt(completionProgress);

A hit circle uses the IsHovered property to check the hit when a button is pressed:

if (IsHovered && (Hit?.Invoke() ?? false))

The issue is this IsHovered is only updated in InputManager's update, using the Position from the previous frame.
The issue occurs on fast forward due to the different frame rate. In theory, the same issue can happen by using different fps limiter settings.
Related (?): #4288.

@smoogipoo smoogipoo added priority:2 Moderately important. Relied on by some users or impeding the usability of the game and removed priority:1 Very important. Feels bad without fix. Affects the majority of users. labels Sep 13, 2021
@integerrr
Copy link
Contributor

Had a look at this again and got this on video, does this still line up with the theory ekrctb had?

Screen.Recording.2022-02-09.at.21.11.11.mp4

Also see: #16833 (reply in thread)

@bdach
Copy link
Collaborator

bdach commented Feb 9, 2022

no, that looks like a separate different issue. note the hit error meter, the timing of the stream at ~1:08 completely changes after rewinds. also note that the previous comments were talking about sliders not hitcircles.

@ekrctb
Copy link
Collaborator

ekrctb commented Jan 30, 2023

Only way I come up with to solve this issue is always recording previous frame as well as the current frame when an action is pressed. I think this is useful for increasing robustness against many frame rate-dependent situations.
(Only replays after that update are fixed).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:replay priority:2 Moderately important. Relied on by some users or impeding the usability of the game
Projects
None yet
Development

No branches or pull requests

7 participants