How do you make server authoritative physics look smooth on clients?

I’m making a soccer game, and It uses NetworkOwnership right now but so many people have told me to switch to a server authoritative ball and visualize the ball on every client instead.

However, there are so many questions about this I don’t understand:

  1. If the server is slow at applying velocities, how will you make it look smooth on the client?
  2. If you somehow manage to make server physics look smooth on every client, then by doing that won’t you just end up making the client ball off-sync with the server ball? (Which is what we wouldn’t want I assume)
2 Likes

I’m not 100% sure, since I have never really done this, so take all of this with a grain of salt.

Why not just simulate it on the server and the client, then periodically sanity-check their positions? The client of the ball can see where the server ball is and if the distance is beyond a threshold, then it’ll adjust its position.

This might look a bit strange if it’s happening often, but it generally shouldn’t matter as long as they share similar collision behaviors and the client isn’t exploiting, but Roblox will do Roblox things and probably mess it up sometimes, beware.

Or, you can do it on the server and then just tween a client model to its position. A lot of this requires trial and error, and I cannot give you a specific nor definitive solution, sorry.

1 Like

When simulating the ball on the client am I supposed to do stuff like check who hits the ball on each client etc or are you implying something else?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.