So now that I understand how to reliably make physics objects sync across the network in UE4, I'm trying to smooth out the jitters. I tried SmoothSync ( https://www.unrealengine.com/marketplace/en-US/product/smooth-sync) but the results are actually worse for me. It comes with source though so perhaps I can learn something
My specific requirements for what I have in mind might lend themselves to a custom route anyway. I want to apply *one* force and watch it play out, as smoothly and consistently as possible. The best route might be mostly local physics/motion but with 'light' corrective updates
So the most valuable thing SmoothSync might do for me is to learn how to replace UE4's own Replicate Movement with a custom approach, albeit one that's a bit different. It doesn't need to constantly correct for lag, just divergence because the 1 input force is discrete & known.
I'm thinking that a client will send its chosen force to the server, and the server will then NetMulticast that to all clients, who will each fire off their own sim. Affected objects will then receive timestamped updates from the server sim, which will be running a little ahead
Any divergence on the clients because of PhysX non-determinism should be small and can be lerped back into place based on time stamps (vs the initial force which will be time 0). Any lag / packet drops just mean delayed corrections, local motion should smooth out. I think. 😀
I've probably dived into this stuff way too early but I had an idea and I just kinda want to see if it's even feasible
You can follow @stevestreeting.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: