AIIDE 2021 - what bots wrote data?
I looked in each bot’s final write
directory to see what files it wrote, if any, and in its AI
directory to see if it had prepared data for any opponents. Be sure to note: A bot does not necessarily use the data it writes. Preparation for specific opponents is not necessarily in the form of data in the AI
directory, it might be in code.
# | bot | info |
---|---|---|
1 | Stardust | Unlike last year, this year Stardust wrote data. It’s in JSON format, and records the map by hash, win or loss, and the timings of up to 3 game events, named firstDarkTemplarCompleted , firstMutaliskCompleted , and pylonInOurMain . The times look like frame numbers, and the great majority are 2147483647 (-1 printed as unsigned), which must mean “didn’t happen”. There is prepared data for 7 opponents (including PurpleWave which did not compete), so I assume that Stardust uses the data. I’ll find out for sure when I look at the source. |
2 | BananaBrain | The learning files look unchanged from last year and the year before: One file for each opponent in the form of brief records of results. Each record consists of date+time, map, BananaBrain’s strategy (“PvZ_9/9proxygate”), the opponent’s recognized strategy (“Z_9pool”), a floating point number which we were told last year is the game duration in minutes, and the game result. Pre-learned data for DaQin and Dragon, the two stronger carryover bots. Last year there was pre-learned data for more opponents; maybe prep for opponents that might change turned out risky. |
3 | Dragon | Simple game records, one per line, with strategy and game result, like "siege expand" won . |
4 | Steamhammer | Steamhammer’s learning file format is documented here. |
5 | McRave | The files look to have the same information as last year, but the format is slightly different. Two files for each opponent, named like ZvU UAlbertaBot.txt and ZvU UAlbertaBot Info.txt . The first file is short and counts wins and losses overall and for each of McRave’s strategies. The info file has detailed game records with aspects of the opponent’s strategy (2Gate,Main,ZealotRush ), McRave’s strategy at 3 levels of abstraction (PoolHatch,Overpool,2HatchMuta ), timings, and unit counts. No prepared files. |
6 | WillyT | The files seem to have been corrected since last year. There is one file per opponent, one line per game, with lines that look like 20211005,Z,03,0 . The items look like date, opponent race, a number 01 02 or 03, and win/loss. No prepared files. |
7 | Microwave | Result and history files for each opponent. They look identical to last year’s, except that Microwave now lists a much larger number of strategies for itself. The result files count wins and losses for each Microwave strategy. The history files have a one-line record of data about each game. Also pre-learned history files for all opponents, each with over 100 game records. |
8 | DaQin | Carried over from last year. Learning files straight from its parent Locutus (very similar to the old format Steamhammer files). No prepared files (and they’d be out of date if they existed). |
9 | FreshMeat | Three files for each opponent, except 6 files for UAlbertaBot, presumably because it plays random. The contents of the files are opaque: Two are bare lists of numbers, one is a list of incomprehensible 14-character strings. I’ll have to read the code. No prepared files. |
10 | UAlbertaBot | Carried over from past years. For each opponent, a file listing strategies with win and loss counts for each. |
The only real surprise is Stardust’s minimalist and rather weird-seeming data. FreshMeat is new, of course, so anything it did would be unsurprising! It’s notable that every single participant wrote learning data, but that’s not a surprise either because this was an elite tournament. Except for Stardust, all the elite bots have used learning for years.
In unrelated news, I expected that CoG would post replays and learning files shortly after the AIIDE submission deadline. But no, they haven’t done it yet.
Comments
Bruce on :
In bot tournaments it is of course quite wasteful to protect against strategies an opponent never uses, so Stardust now records a few events that allow it to take some shortcuts in the early game.
So pylonInOurMain is used to adjust the anti-cannon-rush timing, so as not to waste mining time scouting our own main against an opponent that doesn’t cannon rush, and the earliest DT and muta completions are used to tune timing of cannons at the main choke and mineral lines respectively.
I don’t have concrete plans to add anything else right now, but if I do, it will probably be the same type of thing (data that helps the bot tune timings and reactions). I also plan on investigating whether the bot could analyze opponents’ combat skills and use this to tune its combat decisions, as I expect this could be very powerful.
Jay Scott on :
MicroDK on :
Jay Scott on :
MicroDK on :
Bytekeeper on :
Pedantic mode on: 2147483647 is not -1 :D
Jay Scott on :