Doing rollback netcode on Roblox or something similar?

I’ve been doing a lot of research on how rollback and delay-based netcode works and found some really good resources I’m mostly focused on rollback netcode though. I wanna try implementing this system into my fighting game to maybe try reducing latency although I learned about a few things that might be a problem and so I wanted to know if there was anyone that knows if it’s possible to make a system like this or something similar?

So far my understanding is that rollback netcode is peer-to-peer it waits for the remote client to send inputs and stuff and it tries to predict what the inputs are going by basically saying “alright the remote client is moving forward they’re probably gonna continue moving forward so lets render them moving forward” and it does this until the prediction doesn’t match with what was actually sent in that case it has to rollback and resimulate what should happen. So if the client predicts them moving forward but the sent information actually says that the remote client jumped at some point the client has to go through previous data it has and correct it

So the first issue is Roblox is not peer-to-peer I can’t have one client send stuff to another it has to go to the server so does that make doing this useless?

Another issue is how would I even do this client-prediction stuff? Do I just log everything the client does (current position, state, action, and when an action is made do I track it by adding a tick() to it? etc) and send it to the server and then send it to the other client?

By the way I’m not asking for code I’m aware this is something I’m gonna have to learn and do myself I’m just confused on how I go about implementing a system like this on Roblox so hopefully, someone with more networking knowledge can explain this a bit better.

1 Like