Replies: 3 comments 6 replies
-
Thinking of it as tolerating late inputs such that you roll back the game state to revert a miss to a hit, I believe is making the problem more complicated than it needs to be. If the sync option were to instead delay the launch of the widget itself by a certain amount of time, then no rollback would be necessary for the game to function as normal. The only thing you would have to compensate for in that case is making sure the game logic acts on the widget in the original position rather than the offset one. For example, imagine an invisible widget launching at time 0, and the real widget launching at 100 ms after that. In that case, once the invisible widget touches a piston, you know the player must press a button 100 ms later, even if the piston has disappeared in the time between. Granted, this principle would only work for making widgets launch later rather than earlier, but input lag does generally cause late inputs rather than early ones. Alternately, I don't think it would be too impossible to generate a playalong chart for any given map. Any "spawn pistons" instruction is really just a set of "instant spawn" instructions, acting on one column at a time and offset by a known interval. So, for any given map, it can be known ahead of time where the pistons and rods will be on any given beat, and thus possible to know the playalong chart, along with what will happen to the piston should the player be early or late. And from there the widget offset problem can be solved in both the positive and negative directions. |
Beta Was this translation helpful? Give feedback.
-
Since I have received two reports related to audio delay, a first step at a solution could be to move as much audio to be played back earlier, assuming the issue is that the audio is too late, and the display/visuals are synced well enough. The audio I could move back are music (as evident with the Music Offset setting) and most sound effects scheduled with events. I cannot move audio that is played as a result of inputs for obvious reasons (can't predict the future). I could, however, add options to mute those sounds entirely so that there's no audio feedback in case it is distracting. Display lag is a trickier problem because offsetting audio in the opposite direction just makes everything worse: the game world is still being simulated as the master point of reference (i.e. inputs are immediately translated into the game world), but now there would be lag with both the display and the audio. It gives the false impression that everything is synced, but you would still have to input earlier. I'm going to try my hand at doing music+SFX audio syncing today and see where that takes me. Display syncing will have to be more thought out first before I attempt it. |
Beta Was this translation helpful? Give feedback.
-
Um, what exactly are we offsetting here? Visuals? Audio? Input judgement window? |
Beta Was this translation helpful? Give feedback.
-
This is a discussion on the feature idea of input calibration. It is not guaranteed to be elevated to an Issue.
In Rhythm Heaven Remix Editor (RHRE), inputs can be offset to compensate for lag in some form. This is trivial because all inputs in Playalong Mode are already known ahead of time.
In Polyrhythm Mania, the inputs are not known ahead of time due to the extremely dynamic nature of the game. Additionally, there are physical penalties for earliness/lateness: the rod could be blocked by the early extension of a piston, and the rod could fall off the row and stop and explode if you are too late. Also, the inputs in other side modes like Dunk have to obey the same rules.
It is not as trivial as just offsetting the timings on inputs like in RHRE. That is only possible when the game has a kind of input chart (Playalong for RHRE, the note chart for Stepmania, etc). Therefore, for this feature to be seriously considered for implementation, the problems with (effectively) predicting the future and rolling back the past have to be solved.
Beta Was this translation helpful? Give feedback.
All reactions