ZeusWPI / MOZAIC

MOZAIC is the Massive Online Zeus Artificial Intelligence Competition platform
GNU Lesser General Public License v3.0
13 stars 6 forks source link

Client-side logging #224

Closed iasoon closed 6 years ago

iasoon commented 6 years ago

Currently, logs are produced by the game server and then shared with the clients. This is not the 'log everything, everywhere' we concluded in #124. This should be fixed.

Currently, it might be really useful to build a fully functional game log on the client-end of things (bot errors are produced locally, game server errors such as input validation should be sent back while the game runs). This allows us to get rid of the hassle of having to share logs in a networked context - just playing the game would be enough to build a log. The gameserver log can then be kept for debugging purposes, and later on, ranking.

One caveat is that this is a nice approach for games with total information, but for games with partial information the 'hidden' information should still be shared after the facts. Since planetwars has total information, I'd suggest drafting a plan for this afterwards, since we'd need the proposed functionality in any case (for example, for real-time viewing games with partial information).

wschella commented 6 years ago

@iasoon would you consider this solved (or at least needing a more specific issue)?

iasoon commented 6 years ago

Kind of, we are doing client-side logging now but it's not complete nor general.

One thing we definitely need is a way to match client logs with the server logs, which we cannot do now. To do this, we would need some kind of 'client id' that is decided by the server, and then used for identification in the client-side logs. Ideally, this would be a short integer that can be used as a tag for each log message in the client log. (This is the 'client identity' discussion we were having). Currently we tag client-side messages with player numbers that are decided in the client, but this does not allow for merging logs. I'd keep this issue open until we solved this issue, and achieved proper distributed logging.

iasoon commented 6 years ago

implemented on the REACTORS branch.