Game Logs

The league attempts to create log files of all official matches during each RoboCup. They contain the timestamped ProtoBuf messages of ssl-vision and ssl-game-controller (formally ssl-refbox).

Software

The league provides several tools to deal with log files of SSL games. There is currently a C++ toolset and a Go toolset that can both record and play log files, among other actions.

File Format

Each log file starts with the following header:

1: String – File type (“SSL_LOG_FILE”) 
2: Int32 – Log file format version 

Format version 1 encodes the protobuf messages in the following format:

1: Int64 – Receiver timestamp in ns 
2: Int32 – Message type 
3: Int32 – Size of binary protobuf message 
4: String – Binary protobuf message 

The message types are:

MESSAGE_BLANK = 0 (ignore message)
MESSAGE_UNKNOWN = 1 (try to guess message type by parsing the data)
MESSAGE_SSL_VISION_2010 = 2
MESSAGE_SSL_REFBOX_2013 = 3
MESSAGE_SSL_VISION_2014 = 4
MESSAGE_SSL_VISION_TRACKER_2020 = 5
MESSAGE_SSL_INDEX_2021 = 6

Files can optionally contain an index at the end of the file for random access to messages (for fast seeking for example). An indexed log file has a message of type MESSAGE_SSL_INDEX_2021 as the last message. The value of the timestamp is irrelevant. The message is not in protobuf format, but in simple binary format for easy relative access from the end of the file:

1: []Int64 – Array with byte-aligned offsets, starting at the beginning of the file
2: Int64 – Offset from the end of the file to the beginning of the index message
3: String – Index marker (“INDEXED”) to quickly check if a file is indexed

Storage locations

Following servers are known to host official SSL game logs:

You are welcome to add your teams server as a mirror here as well.