Add global time to monitor protocol
There is no unique state identifier in the monitor protocol rather than the order in which the messages are received. While this is rather less of a problem when running and monitoring games in real-time, it has a couple of drawbacks in the post processing of logs, e.g.:
- When playing a log file, there is no simple and straight forward way to determine the state frequency. In case the game time didn't proceed at all, there is no automatic way of determining the state frequency in which to replay the log file.
- Associating states of the monitor protocol to agent perceptions / actions is also more complicated than it needs to be.
In 2D simulation, the simulator provides the simulation_step and log_step as environment parameters, with which unique times for each state can be reconstructed. We could either add similar parameters to the environment parameter section in the SimSpark monitor protocol, or simply include and log the global game time, too.
Pro:
- Simplification of monitor implementations.
- Simple association of world states (received via the monitor protocol) and agent perceptions / actions / states.
Contra:
- Increase in bandwidth usage of monitor protocol