The features this adds to Spring have been requested quite often already for use in replay/league/ladder sites, so you can be sure it will be useful.
If you are interested, post your intention to implement this (to prevent double work) and questions/ideas here.
The goal is to make the replay file format better designed and defined, in a way smooth transitions are possible if the format changes, and in a way which separates raw demo data (network stream) from clearly defined chunks of (meta)data for use by third party applications.
This includes, but is not limited to:
- A proper DemoFileHeader with a version, offsets to other chunks of data and an easy way to add new chunks of data without having to modify any application reading the format. (look at the map format for an example)
- The header should contain a synced 128 bit GUID (generated by the server and sent over the network to all players), so there is an easy and accurate way to identify demo files of the same game.
- Other stuff which would be useful in the header: demo file format version (in case the modular structure ever needs a redesign), Spring version, Unix timestamp, etc.
- A chunk with player stats (MC/m, KP/m etc.).
- A chunk with team stats (metal/energy used/spent, damage dealt etc.)
- A chunk with the network stream (the stream itself can and should be undefined format as it is now, as I don't want to limit our freedom to change it however we want).
- A chunk with the startscript, if it is a game with gameSetup. (as it sits now at the start of the demo file)
- Maybe a chunk with the gameSetup (startscript) data available in binary format (so a replay-reader does not need a TDF parser to parse the startscript).