Steamhammer 3.0 game record format
Steamhammer 3.0 is nearly ready, but I’m immoderately busy and don’t know how long it will take for the last adjustments. I can at least slip in short posts to show off some of what’s coming.
Steamhammer 3.0 changes the format of game records in the learning files of the opponent model. The original version 1.4 game record format has been in use since early 2018. The learning file for an opponent is simply a list of game records. Here is the new 3.0 game record format.
meaning | item |
---|---|
game record version | 3.0 |
matchup | ZvP |
map | (3)Longinus_200.scx |
base ID of Steamhammer's start | 5 |
base ID of enemy start, 0 if unknown at end of game | 12 |
opening | Over10Hatch2SunkHard |
predicted enemy plan | Heavy rush |
recognized enemy plan | Unknown |
0 for loss, 1 for win | 0 |
frame of our first combat unit | 4382 |
frame we first gathered gas | 6814 |
frame the enemy scouted our base | 3134 |
frame the enemy got a combat unit | 3838 |
frame the enemy first used gas | 5162 |
frame the enemy got an air unit | 5182 |
frame the enemy got static anti-air (0 means never) | 0 |
frame the enemy got mobile anti-air | 5182 |
frame the enemy got a cloaked unit | 5182 |
frame the enemy got static detection | 0 |
frame the enemy got mobile detection | 18686 |
frame the game ended | 28553 |
skill kit data (2 skills) | gas steal: 0 0 0 unit timings: 60 6161 61 9565 64 2435 65 3815 66 13383 84 18696 154 3240 156 3240 157 3217 160 3263 163 5172 164 3194 165 6575 167 5195 |
end of the record | END GAME |
As before, the frame number of an event is the frame when Steamhammer first noticed it, not when it happened. They are sometimes very different.
The game record version number can be “1.4” for old records or “3.0” for new records. Steamhammer can read them both and use the data; changing the format doesn’t mean I need to clear out existing learning files. Of course fresh records are written in 3.0 format.
Including the base IDs of the starting positions of the 2 sides means that Steamhammer can pay attention to starting positions. You have to know the map to interpret what the ID numbers mean. The information about enemy gas usage is new and helps with gas steal decisions. The gas steal items from version 1.4 records are moved into the gas steal skill.
There was no gas steal in the example game, so the gas steal recorded 0 0 0 for its data. The skill kit can record data for any number of skills; it is extensible. Each skill’s data is [name of skill]: [data for skill]
on one line (the line can be arbitrarily long). The skill needs to know how to write one line of its own data and how to read it back, and that’s all; the central skill kit code takes care of everything else, including rewriting old records without change.