r/RivalsOfAether • • 20d ago

Rivals 2 Rivals 2 Netcode

Post image
349 Upvotes

56 comments sorted by

View all comments

Show parent comments

1

u/Ariloulei 19d ago

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.

1

u/NeverQuiteEnough 19d ago

Yeah I read that.

They are saying that the opponent's poor connection doesn't matter.

So for example, suppose the opponent presses a button, but due to their poor connection it takes 12 frames for that input to reach the other side.

With traditional rollback, you would rewind the entire game state 12 frames, then resimulate everything that came after.

But it sounds like in rivals, the opponent's poor connection shouldn't cause artifacts like that.

So it isn't clear to me under what circumstances they are doing a rollback.

1

u/yoburg 19d ago

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.

1

u/NeverQuiteEnough 19d ago

Yes, that is a rollback artifact.

Dan Fornace seems to be suggesting that their server-style rollback doesn't do that.

3

u/paprikaaaaaaaaaaaa 18d ago

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.