Hey guys, So i’ve always had an issue with this topic.
Currently im testing this with NGO, but i’ve had same results in Photon PUN where the jump is “synced” with the fact that we’re syncing the transform and animations, but of course those are lerping and smoothing out so that doesn’t really translate well with Jumping because the Jumps are a bit Snappy and over network they end up looking a big sloppy and lerpy.
What’s the right way to sync jumps over network? Should i just fire RPC whenever they jump and try to do it locally?
Interesting problem, by “a big sloppy and lerpy” I’d like blame that
Jumping, or any other critical operations like attacking, cannot be predicted for real human participants.
Moreover, the solution depends heavily on how realtime you want in your game, as well as tons of other factors like whether or not you can use UDP and whether or not you have an authoritative backend.
What you see above is a recording via internet between a 4G user and a WiFi user, both Android phones. The sync of jumping doesn’t look quite abrupt right? Here’re what I did to solve this issue.
There’s an authoritative backend of my demo which relays ONLY USER INPUTS in both Websocket and UDP transports (in an older version, I had backend dynamics and would recover a reconnected player with cached render frame info); UDP is not necessary but much preferred because of this concern
Like many multiplayer action games, I have an “input delay” of 2 frames@60fps, i.e. 32ms, for any input from any real human participant – this is adjustable so you can make it zero but it wouldn’t give you best outcome