s2protocol-rs

A nom parser for the Starcraft 2 Protocol Replay format.

Generating code:

The rust code for the protocol87702 was generated by running:

bash RUST_LOG_SPAN_EVENTS=full RUST_LOG=debug cargo run -- --source ../s2protocol/json/protocol87702.json generate --output src/s2protocol/protocol87702/mod.rs

In order for this to work, the repo from Blizzard must be cloned at ../s2protocol.

Sources

Blizzard/s2protocol repo

Motivation

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 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.

Status