Actually, I’m a newbie here. I come from Unity and start learning Network Synchronization using Unreal Engine.
I think what you need is client prediction and reconciliation.
To do that, you need to keep history for your golf ball. I probably only keep history of delta time.
I don’t think you need to fixed timestep.
When the hit happen, you send RPC to server with client timestamp.
Server update the golf and send correction back marking with client timestamp + simulation time on server.
When correction from server come in, you put it in history buffer and start re-simulate physic.
You will need following API: http://docs.nvidia.com/gameworks/con…2f3d2168c2aff5
Unfortunately, I don’t think this is available in Blueprint.
You can get PxScene through UWorld->GetPhysicsScene() → GetPhysicsScene(EPhysicsSceneType::PST_Sync)](https://api.unrealengine.com/INT/API/Runtime/Engine/Engine/EPhysicsSceneType/index.html)
Be careful about Physic event such as collision. When you simulate using PxScene, event will be put in FPhysScene. If you want to manually dispatch event you can call FPhysScene.DispatchPhysNotifications_AssumesLocked() . Otherwise this is fired in ETickingGroup::TG_EndPhysics.