A nom parser for the Starcraft 2 Protocol Replay format.
The rust code for the protocols versions available were generated using:
```bash mkdir src/versions/protocol89720/ RUSTLOGSPANEVENTS=full RUSTLOG=debug cargo watch -i src/versions/protocol89720/mod.rs -x 'run -- --source ../s2protocol/json/protocol89720.json generate --output src/versions/protocol89720/mod.rs'
```
For the current parsed versions, it seems they are compatible enough and so for now a symlink is created for version specific to version 87702. Even tho the structs are called the same, the bit/byte sizes may be different.
In order for this to work, the repo from Blizzard must be cloned at ../s2protocol
.
The goal is to learn how to parse binary files format with nom
and to learn
how the Starcraft 2 Replay file is so incredibly small for the amount of
information it packs.
From the available data, generative art can be created, for example by using - rerun - nannou (PoC missing) - bevyengine/bevy can be used to see: - An Enhanced Replay Minimap - Additional statistics.
See the repo sebosp/swarmy for an example on how this can look like.
Tho the status below is something to add, the focus is going to be on using the Game and Tracker events to generate visualization. From time to time as versions come out I will try to generate the files.
replay.gamemetadata.json
replay.details
replay.initData
replay.message.events
replay.attributes.events