Autopilot mod spins spinner erratically in replay
Type
Game behaviour
Bug description
In replays with the Autopilot mod (auto cursor), the cursor in the replay does not exactly spin in a circle (sometimes going into the center) and spins at >477 spins per minute. This behavior was not observed during gameplay.
(Difficulty adjust mod: OD 10.0)
(Replay)
Screenshots or videos
jacksonchen666 playing GYZE - HONESTY (emu1337) [HEART OF SORROW].osr.zip
Version
2022.1208.0-lazer
Logs
database.log input.log network.log performance-audio.log performance-draw.log performance-input.log performance-update.log performance.log runtime.log
been a while, still a thing in 2023.123.0-lazer
~~minor thing i noticed, accuracy isn't the same as before.~~ i just realized something again, the difficulty adjust mod is not present?
I attempted to bisect this issue but found that 2022.723.0 (way before the play) still has the issue. Somehow.
What this appears to be is an erratic intersection between the logic of autopilot and the logic of replay recording.
Autopilot currently works by taking an autoplay replay and basically applying inputs as it's told by the replay. The issue is that both the autopilot replay and the replay recorder use different frame pacing and different logic on when to record a replay, so it is possible for both
- the autopilot replay may contain frames that are played back but never recorded to the replay because the frame pacing was such that the minimal interval between recorded frames was not cleared on the recorder side, or
- the replay may contain frames that the autopilot did not generate because of user inputs (releases etc.) but also, after https://github.com/ppy/osu/pull/33148, because of judgements occurring
Screenshot below is somewhat of a corroboration of this:
I'm not sure whether I want to expend any effort into fixing this given that this is plastered on the mod implementation:
https://github.com/ppy/osu/blob/6f1d7a546b3aeb9296b2e631694d7a28a733663c/osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs#L50-L59
Maybe the direction is to just tear everything there out and start anew. Not sure. Opinions welcome.
Slightly related, there's a PR opened recently to fix other issues with autopilot: https://github.com/ppy/osu/pull/33483
I'm not sure if autopilot generating replay frames is the correct path; it was chosen as the easiest method available at the time.