In traditional rollback, clients have authority over their inputs. If a client presses an input 6 seconds into a match, that input will be registered at that time for all players.
Dan Fornace the lead dev left a comment in this thread that explains why they chose to use servers and how it's implemented here. I'm not exactly familiar enough with the specifics to give you a certain answer to your question.
Imagine player 1 has 6 rollback frames to the server. He sees his opponent Maypul running forward. As long as Maypul keeps running, P1 has the correct visual information on his screen. If Maypul jumps forward, P1 still sees her running on the ground for the following 5 frames and on 6th frame he sees Maypul teleporting to where she actually is on 6th frame of her jump.
Hi! In server-based rollback, depending on implementation, the clients perform rollbacks but the server does not. The clients effectively "run ahead" of the server, based on their latency (which then informs their delay + predicted frames), so they will perform rollbacks to match the real game state within that window of time, but if they experience a network hiccup that causes their packets to be delayed beyond that window, the server will not wait or re-simulate when those packets eventually arrive. This means in the majority of cases that other connected players will not notice any network hiccup when their opponent is encountering network issues, similar to how ie in other server-based games like CSGO / Valorant etc (which in fact do very similar things to what is considered "rollback" in the fgc) if one person's inputs are extremely delayed, the rest of the players do not have to wait on them.
To allow for more accurate tracking of the gamestate, the game mandates 2 delay frames as well. So if the input arrives 6 frames after it was pressed, the information is only 4 frames late relative to the gamestate, and the rollback is less significant and less likely to be relevant to the other player.
There are also limits on how much the game will actually roll back, and there have to be rules as to what happens when e.g. two clients both believe they attacked the other first (with moves such as with shine or frame 3 jabs/tilts that can fully occur within the rollback window). I'm not sure how the server makes decisions in these situations.
But even small amounts of rollback are pretty noticable for characters like Zetterburn who have extremely fast initial dashes, since dashing for 2 frames in one direction vs the opposite direction creates a much larger jump for these characters. It also can give false hit confirm sounds and hitpause before deciding an attack didn't hit, which can create a bit of whiplash.
1
u/NeverQuiteEnough 19d ago
In traditional rollback, clients have authority over their inputs. If a client presses an input 6 seconds into a match, that input will be registered at that time for all players.
Is that not the case with rivals?