In an game mainly centered around obbies, should the client handle their animations or the server?

I’m making a game that will have up to 8 players per server, and each player will have their own obby loaded in. I’m thinking that would be pretty tough on the server to handle the tweens and calculations for up to 8 unique medium/long obbies. Would it be better to handle these on the client? My problem with handling those on the client is that this is a speedrun-oriented game so it would look pretty suspicious to other players, they would not be able to tell whether other players are exploiting or not. It would also be unfair because slower devices would be more inaccurate and make it more difficult for players. And in races, the player’s timing would be different so it would be more about luck. But this would be pretty laggy for the server to handle hundreds of tweens all at the same time.

Just a suggestion, but if you’re animating obbies using CFrame tweens it would be better to use BodyMover physics instead where possible.

As for if server or client is better, I would say client if you want better gameplay for the individual player, it’ll avoid network-lag issues where a part may suddenly make a drastic movement. Plus you could optimize it so only the obby the player is currently in has animations instead of all of them. But that of course means that you will get desyncs across different players which could cause disadvantages if multiple players are racing.

Ultimately the decision comes down to whatever you think is most important and if you’re willing to put in work to optimize it.

1 Like

I guess I could just make the client handle their own personal obbies, and when multiple players are racing the server would handle that. Then if someone if spectating a player in their own obby they could get the info directly from the other client with a remote event so the spectator would be synced and not see the other player walking through kill parts

If you really want everything to be sync’d another small optimization is to have it so the server will only animate obbies with players that are currently in them.

One more thought is you could animate only parts that have nearby players rather than an entire obby itself, and that could be done on the server. It would be a lot more work to implement though, that’s probably the best I got off the top of my head.