This has been driving me mad, I can’t get an accurate way to do this working. I had a very smooth and nice network script working, but I found that it quickly became out of sync between the various clients.
- Client-side physics based movement (because my controls need to be very responsive, can’t wait for server to say “Yes that’s ok”)
- Replication of this movement to other clients via the server (Doesn’t need to be physics based but does need to be smooth)
What I tried originally:
- Method: Replication of setting physics values on the characters.
- Result: Very smooth movement on all clients, responsive, but quickly became out of sync
- Conclusion: Not a huge surprise, latency would mean the application of the physics values would be timed differently
What I tried to fix this with:
- Method: Local physics based movement.
Kinematic replication of character rotation and position on the server, replicated other clients.
- Result: Actors with “Simulate Physics” can’t have kinematic based property applied to them, so it didn’t work at all.
I then tried using an Authority switch to turn off Simulate Physics on the server side, but this didn’t help as I assume the remote clients still had it enabled so ignored the replicated movement they were asked to do.
I am thus at a loss. How on earth can I do this? I’m sure its possible, I’m just not seeing how!
I don’t have a useful BP to show at the moment as I broke my one badly trying to find a solution. The only working/useful part is the client side setting of Thrust and Angular Velocity based on input.