net tick interval is now 120ms; local tick is still 40ms

This commit is contained in:
Chris Forbes
2010-03-27 14:43:23 +13:00
parent 9afdf5459e
commit 17b135926d
2 changed files with 13 additions and 4 deletions

View File

@@ -176,11 +176,12 @@ namespace OpenRA
renderer.Device.DisableScissor(); renderer.Device.DisableScissor();
if (Game.Settings.PerfText) 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.RenderFrame,
Game.orderManager.FrameNumber, Game.orderManager.FrameNumber,
PerfHistory.items["render"].LastValue, PerfHistory.items["render"].LastValue,
PerfHistory.items["tick_time"].LastValue), PerfHistory.items["tick_time"].LastValue,
Game.LocalTick),
new int2(140, 15), Color.White); new int2(140, 15), Color.White);
if (Game.Settings.PerfGraph) if (Game.Settings.PerfGraph)

View File

@@ -180,6 +180,9 @@ namespace OpenRA
internal static Chat chat = new Chat(); 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() public static void Tick()
{ {
if (changePending && PackageDownloader.IsIdle()) if (changePending && PackageDownloader.IsIdle())
@@ -199,9 +202,14 @@ namespace OpenRA
orderManager.TickImmediate( world ); 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.orderGenerator.Tick(world);
controller.selection.Tick(world); controller.selection.Tick(world);