From 17b135926d43d376cb8649dc37e33d3a840c5141 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sat, 27 Mar 2010 14:43:23 +1300 Subject: [PATCH] net tick interval is now 120ms; local tick is still 40ms --- OpenRA.Game/Chrome.cs | 5 +++-- OpenRA.Game/Game.cs | 12 ++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/OpenRA.Game/Chrome.cs b/OpenRA.Game/Chrome.cs index aca75a176b..a822cd71ed 100644 --- a/OpenRA.Game/Chrome.cs +++ b/OpenRA.Game/Chrome.cs @@ -176,11 +176,12 @@ namespace OpenRA renderer.Device.DisableScissor(); if (Game.Settings.PerfText) - renderer.RegularFont.DrawText( rgbaRenderer, "RenderFrame {0} ({2:F1} ms)\nTick {1} ({3:F1} ms)\n".F( + renderer.RegularFont.DrawText( rgbaRenderer, "RenderFrame {0} ({2:F1} ms)\nTick {4}/ Net{1} ({3:F1} ms)\n".F( Game.RenderFrame, Game.orderManager.FrameNumber, PerfHistory.items["render"].LastValue, - PerfHistory.items["tick_time"].LastValue), + PerfHistory.items["tick_time"].LastValue, + Game.LocalTick), new int2(140, 15), Color.White); if (Game.Settings.PerfGraph) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 67674cca98..bb388ba877 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -180,6 +180,9 @@ namespace OpenRA internal static Chat chat = new Chat(); + public static int LocalTick = 0; + const int NetTickScale = 3; // 120ms net tick for 40ms local tick + public static void Tick() { if (changePending && PackageDownloader.IsIdle()) @@ -199,9 +202,14 @@ namespace OpenRA orderManager.TickImmediate( world ); - if (orderManager.IsReadyForNextFrame) + var isNetTick = LocalTick % NetTickScale == 0; + + if (!isNetTick || orderManager.IsReadyForNextFrame) { - orderManager.Tick(world); + ++LocalTick; + + if (isNetTick) orderManager.Tick(world); + controller.orderGenerator.Tick(world); controller.selection.Tick(world);