High granularity and accuracy Starcraft replay data extractor which outputs to a database
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitattributes
.gitignore
README
Useful Queries.sql
client-bridge-amd64.dll
client-bridge-x86.dll
closeJavaMsgBox.au3
closeJavaMsgBox.exe
closeReopenStarcraft.au3
closeReopenStarcraft.exe
closeStarcraft.au3
closeStarcraft.exe
closeStarcraftIfWaiting.au3
closeStarcraftIfWaiting.exe
delete-bad-reps.sql
extractorConfig.properties
keeprunning.sh
mapsBroken-getNames.sql
mapsChecker.py
starcraft-staticdata.sql
starcraft.sql

README

This is a Starcraft replay data extractor written by Glen Robertson.

It uses modified parts of Andras Belicza's Replay Parser to parse replay files, and it uses JNIBWAPI to interface with Starcraft.
By combining replay file parsing and attribute recording through BWAPI, this extractor is able to get a much more complete picture of the replay than others.

The dataset extracted using this software can be found at https://www.cs.auckland.ac.nz/research/gameai/projects.php
A mirror of the datasets is also available: https://drive.google.com/drive/folders/0BzdheFrwyAvsam1jUWRKWnRPeTA

To run:
0. Install Starcraft and BWAPI 3.7. Have a set of replay files to extract.
1. Set BWAPI's auto_menu feature to load the replay files.
2. Set up a MySQL database (version 5.5 was used in testing)
3. Import the SQL data in starcraft.sql and starcraft-staticdata.sql
4. Examine the settings in extractorconfig.properties and change as needed
5. Run ExtractActions - this will go through all the replays in the replay directory (specified in the properties) and extract all of the stored data to the database. If successful there should be no "SEVERE" log messages but there may be some "WARNING" messages about skipping control groups.
6. Run ChaosLauncher (from BWAPI) as administrator.
6. Run ExtractStates as administrator - this will connect to Starcraft and run through each replay file in turn, extracting in-game data that is not accessible from parsing replay files.
7. ExtractStates or Starcraft has crashed? Run keeprunning.sh as administrator - this will attempt to detect when things have crashed and restart them. Note that this requires cygwin.
8. After extracting data, check for bad replays with more than 1% "none" type units using a command from "Useful Queries.sql"