How do games like blade league and blade ball have little to not noticeable delays when hitting the ball and when the ball is just moving on its own, I know about NetworkOwnership of course and when the player who has control of it is the network owner it’s relatively smooth as long as your using like some sort of BodyMover or Contstraint to adjust the position rather then having the roblox physics completely do all the work… would using SetNetworkOwnershipAuto() be the way to go in this case?
But any ideas how they achieve it like every single time I’ve hopped into a Blade League match the ball hasn’t once hiccuped or had any visual jumping
You got the right idea. Setting the network owner will make the target experience less delay, however it also lets them move the position of the ball with scripts. You’d need to make a system that can check if someone might be cheating.
Yeah currently the system I have in place is I think as good as ill be able to get it, but basically I have a ball which has a BodyPosition inside of it and then on the server I have literally just a basic gravity simulation running in a Heartbeat loop, and then I have the ball NetworkOwner set to nil, in my game when the ball lands into a player square thats when they have the Network Ownership transfer to them… it honestly works pretty well but there is a tiny bit of noticeable jumping and I’m pretty sure if the client is laggy and they are the network owner the ball will be visually laggy for other players
If the physics is handled on the client no it won’t go anywhere.
Maybe you could try handling the physics completely on the server instead of on different clients. When the ball gets to a player, assume that they hit it and apply the physics as such. If you then get a remote event call from the player saying they didn’t actually hit the ball you could deal with that appropriately.
Maybe you could try visualizing the ball for everyone individually. That way the smoothness of the ball is based on your performance regardless of who has network ownership
Yeah before getting to this networkownership method and BodyPosition, I actually tried have a server authoratative setup where both the client and server would have simulations running and then the clients would predict but that wouldnt stay in sync as i wanted and I had to limit the updates which made the client ball look laggy cause it was receiving the position and velocity from the server and yes I was lerping the ball on the client between updates and that didnt really help
Unfortunately if you do all physics through the server there will ALWAYS be latency to the clients. In my opinion your best best is → Whoever is the target of the ball is given ownership and they will run the simulation → check for impossible simulation calculations on the server(detecting cheaters) → Position of the ball will be sent to all players and visualized for them (except for the target, they visualize from their own calculations) → change target once ball hits the player or they parry it
It’s likely that the visual part (everything you see) is done solely on the client. The server only does sanity checks, so there’s no need to replicate physics. That’s how I would go about doing it, anyway.
Wait im not complaining about the latency I understand that I was just talking about the visual hiccupping/jumping when the network ownership is changed and if I could mitigate that to the point where its pretty much unnoticeable
Then how would the clients know to stay in sync if the server isnt telling them the true position of the ball?
I’m telling you i’ve tried almost everything in the book and that would have clients be not in sync because different hardwares and of course having clients be able to handle their own physics would cause cheating
The client would give the server a Position and the server can check if that position is possible from the previous position (probably with a magnitude check)
It is physically impossible for all clients to be in sync
Okay but not completely in sync but close enough to where all the players have a good idea of where the ball truly is, and again I was just asking about the noticable warp when you switch networkownership
Honestly I’m gonna try out Auto and see if that helps at all