0ad/source/simulation2
wraitii 0ebc08b13c Thread the pathfinder computations using the task manager.
The pathfinder computations are run asynchronously (and potentially on
the main thread) in-between simulation turns, thus reducing
pathfinder-related lag considerably in common cases.

To make this most efficient, the number of paths computed during a turn
via MaxSameTurnMoves is reduced from 64 to 20.

This has a hard dependency on the obstruction manager (via the vertex
pathfinder) not being modified in-between simulation turn (or to put it
more generally on the simulation state not changing outside of turn
computation), otherwise results will be non-deterministic and go OOS.
This is currently entirely safe (as in, it indeed does not happen that
the simulation state changes in-between turn), but future work towards
improving simulation sandboxing would be good.

Thanks to Kuba386 for maintaining & improving the patch in 2020
Thanks to everyone who tested the various iterations of this patch.

Fixes #4324

Differential Revision: https://code.wildfiregames.com/D14
This was SVN commit r25657.
2021-06-03 16:21:28 +00:00
..
components Thread the pathfinder computations using the task manager. 2021-06-03 16:21:28 +00:00
docs Migrate DEFINE_INTERFACE_METHOD_* to the ScriptFunction wrappers. 2021-05-01 08:01:30 +00:00
helpers Thread the pathfinder computations using the task manager. 2021-06-03 16:21:28 +00:00
scripting Don't include ComponentManager.h in ScriptComponent 2021-05-16 15:12:39 +00:00
serialization Fixes broken PCH after wraitii commits (4f972bc623, 0f60bf3a97) and Itms (833c9f108c). 2021-05-15 14:50:24 +00:00
system Adds std namespace to shared_ptr usages in scriptinterface and simulation. 2021-05-22 19:30:18 +00:00
tests Adds std namespace to shared_ptr usages in scriptinterface and simulation. 2021-05-22 19:30:18 +00:00
MessageTypes.h Add a simple 'pushing' logic to unit motion to improve movement. 2021-04-02 16:30:59 +00:00
Simulation2.cpp Adds std namespace to shared_ptr usages in scriptinterface and simulation. 2021-05-22 19:30:18 +00:00
Simulation2.h Adds std namespace to shared_ptr usages in scriptinterface and simulation. 2021-05-22 19:30:18 +00:00
TypeList.h Add a simple 'pushing' logic to unit motion to improve movement. 2021-04-02 16:30:59 +00:00