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:
If the server is slow at applying velocities, how will you make it look smooth on the client?
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)
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.