0ad/source/simulation2/system
wraitii 5ebf2020b0 Netcode: allow observers to lag behind the live game.
Observers no longer lag the game for players. There is still some time
to serialise the game when sending it to a joining observer, and
depending on the chosen 'max lag' the game may stop while observers
sufficiently catch up, but this impact too is reduced.

- Make the NetServerTurnManager ignore players marked as 'observers' for
the purpose of ending a turn, effectively making it possible for
observers to lag without it affecting the players in any way.
- Add a config option (network.observermaxlag) that specifies how many
turns behind the live game observers are allowed to be. Default to 10
turns, or 2 seconds, to keep them 'largely live'.
- The controller is not treated as an observer.
- Implement a simple UI to show this delay & allow the game to speed up
automatically to try and catch up. This can be deactivated via
network.autocatchup.
- Move network options to the renamed 'Network / Lobby' options page.
- Do not debug_warn/crash when receiving commands from the past -
instead warn and carry on, to avoid DOS and "coop play" issues.

Refs #5903, Refs #4210

Differential Revision: https://code.wildfiregames.com/D3737
This was SVN commit r25156.
2021-03-29 07:53:06 +00:00
..
CmpPtr.cpp # Rewrite of the game's simulation system 2010-01-09 19:20:14 +00:00
CmpPtr.h Replace use of safe bool by explicit bool operator. 2015-01-25 03:11:24 +00:00
Component.h Pass ScriptInterface as a const ref where possible. 2017-08-24 00:32:42 +00:00
ComponentManager.cpp Implement a Motion Manager around UnitMotion. 2021-03-17 17:04:51 +00:00
ComponentManager.h Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
ComponentManagerSerialization.cpp Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Components.h # Rewrite of the game's simulation system 2010-01-09 19:20:14 +00:00
ComponentTest.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
DynamicSubscription.cpp Convert debug_printf to take UTF-8 strings instead of wchar_t. 2015-02-14 01:45:13 +00:00
DynamicSubscription.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Entity.h Replace deprecated jsval with JS::Value. 2017-08-28 10:27:36 +00:00
EntityMap.h Use templates to replace explicit serialization helpers. 2020-12-19 09:10:37 +00:00
IComponent.cpp Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
IComponent.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
Interface.h Pass ScriptInterface as a const ref where possible. 2017-08-24 00:32:42 +00:00
InterfaceScripted.h Pass ScriptInterface as a const ref where possible. 2017-08-24 00:32:42 +00:00
LocalTurnManager.cpp Increase MP Command delay to 4 turns, decrease MP turns to 200ms. 2021-03-03 21:02:57 +00:00
LocalTurnManager.h Add an interface for Reinforcement Learning. 2020-08-01 10:52:59 +00:00
Message.h Remove DefPersistentRooted and unneeded includes. 2020-11-12 08:24:30 +00:00
ParamNode.cpp Fix most of the new vs2017 induced warnings. 2020-11-26 22:28:50 +00:00
ParamNode.h Removes unused containers included in headers. 2021-03-03 23:01:08 +00:00
ReplayTurnManager.cpp Revert cf6aaf37a4, causing false OOS in visual replays. 2021-01-22 17:13:12 +00:00
ReplayTurnManager.h Revert cf6aaf37a4, causing false OOS in visual replays. 2021-01-22 17:13:12 +00:00
SimContext.cpp Simulation context cleanup, refs #3991, #3168. 2016-05-19 19:42:07 +00:00
SimContext.h Simulation context cleanup, refs #3991, #3168. 2016-05-19 19:42:07 +00:00
TurnManager.cpp Netcode: allow observers to lag behind the live game. 2021-03-29 07:53:06 +00:00
TurnManager.h Netcode: allow observers to lag behind the live game. 2021-03-29 07:53:06 +00:00