Skip to content

Commit b6db47d

Browse files
authored
fix(core): don't smear network time adjustment on initial connection sync. (#313)
1 parent 2ab3759 commit b6db47d

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

MLAPI/Core/NetworkingManager.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public class NetworkingManager : MonoBehaviour
4141
public float NetworkTime => Time.unscaledTime + currentNetworkTimeOffset;
4242
private float networkTimeOffset;
4343
private float currentNetworkTimeOffset;
44-
private bool networkTimeInitialized;
4544
/// <summary>
4645
/// Gets or sets if the NetworkingManager should be marked as DontDestroyOnLoad
4746
/// </summary>
@@ -336,7 +335,6 @@ private void Init(bool server)
336335
LocalClientId = 0;
337336
networkTimeOffset = 0f;
338337
currentNetworkTimeOffset = 0f;
339-
networkTimeInitialized = false;
340338
lastEventTickTime = 0f;
341339
lastReceiveTickTime = 0f;
342340
eventOvershootCounter = 0f;
@@ -734,17 +732,14 @@ private void Update()
734732
}
735733
}
736734

737-
internal void UpdateNetworkTime(ulong clientId, float netTime, float receiveTime, bool onlyIfNotInitialized = false)
735+
internal void UpdateNetworkTime(ulong clientId, float netTime, float receiveTime, bool warp = false)
738736
{
739-
if (onlyIfNotInitialized && networkTimeInitialized)
740-
return;
741737
float rtt = NetworkConfig.NetworkTransport.GetCurrentRtt(clientId) / 1000f;
742738
networkTimeOffset = netTime - receiveTime + rtt / 2f;
743-
if (!networkTimeInitialized) {
739+
if (warp) {
744740
currentNetworkTimeOffset = networkTimeOffset;
745-
networkTimeInitialized = true;
746741
}
747-
if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo($"Received network time {netTime}, RTT to server is {rtt}, setting offset to {networkTimeOffset} (delta {networkTimeOffset - currentNetworkTimeOffset})");
742+
if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo($"Received network time {netTime}, RTT to server is {rtt}, {(warp ? "setting" : "smearing")} offset to {networkTimeOffset} (delta {networkTimeOffset - currentNetworkTimeOffset})");
748743
}
749744

750745
internal void SendConnectionRequest()

0 commit comments

Comments
 (0)