Add support for recording and replaying matches #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch adds support for recording matches (
start --capture
) and replaying recorded matches (replay replays/last-match.yml
). Matches are recorded as bot-independent YAML files, so that you can share replays without necessarily sharing the bots that participated.Caveats
The current match is always saved in
replays/last-match.yml
, use the command line to rename files that you don't want overwritten. If someone wants to improve this, it should be relatively simple.The replay files get a little large (1.5Mb, 2 bots, 3000 ticks) because I'm using YAML instead of a binary format. If someone wants to swap the format to improve file sizes, it should be relatively simple.
The configuration file is not included in the recording because it was a bit too much work to monkey-patch over a different configuration, so matches should only be replayed on installations sharing the same configuration. In practice, this means bundling a recorded match along with its configuration.rb file.