Smooth Sync: Sync your Transforms Smoothly across the network

@

Hi there. I’ve been using your smoothsync plugin for a little bit, and it’s very nice, but I’ve encountered a problem I’m hoping you can shed some light on.

I have a character that needs to both walk and fly. For walking I’m using the default character movement component, but for flying I’m disabling that and moving the character through physics forces. Running two windows of local multiplayer everything always works great, smoothsync does a perfect job. However when I run the project on two separate computers the smoothsync on the client has serious trouble sending its position and rotations to the server in some situations, namely when the client is a slower computer or in a heavy rendering scene. This is on LAN btw, so latency is not an issue.

If I run both machines using the very lightweight default third person map everything works perfectly all the time. If I have a complex map it works smoothly for about 10 to 30 seconds on the client, and after that the server only sees very jerky updates from the client. They will freeze in place for up to 2 or 3 seconds and only update position on the server after they stop moving entirely. Other RPCs are getting through immediately though, such as animation state changes and object interactions, from the client to server, just none of the movement data provided by smoothsync.

I tested this with a few friends over greater distances last night and everything was fine until one client had their framerate drop just a little from 60. Smoothsync immediately stopped sending their updates for a minute, though it eventually did recover once their fps was back up to normal. The server (not me in the test) also dropped their position data entirely from time to time, resulting in their character just stopping in space, though that also recovered eventually.

I tried removing smoothsync and just going back to the default character movement component for some further tests, and that movement always replicates to the server correctly, no matter how bad the framerate might get. When using smoothsync I have the movement replication of the character movement component disabled as per your instructions.

Do you have any suggestions on how I might get this working better? It seems like Unreal is just putting smoothsync on hold entirely when it gets too busy doing its own stuff.

Thanks very much!