archive by month
Skip to content

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.

#botinfo
1StardustUnlike 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.
2BananaBrainThe 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.
3DragonSimple game records, one per line, with strategy and game result, like "siege expand" won.
4SteamhammerSteamhammer’s learning file format is documented here.
5McRaveThe 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.
6WillyTThe 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.
7MicrowaveResult 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.
8DaQinCarried 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).
9FreshMeat 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.
10UAlbertaBotCarried 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.

Trackbacks

No Trackbacks

Comments

Bruce on :

Stardust generally plays a conservative opening, allowing itself to get a bit behind economically to ensure safety against various rushes and cheese. A good example is PvP games prior to the addition of learning data: Stardust would generally get an esrly cannon at its main choke in case the enemy was sending dark templar.

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 :

I’ll be looking into Stardust’s use of learning tomorrow. I’ve poked at the source.

MicroDK on :

I am not sure what you mean by "except that Microwave now lists a much larger number of strategies for itself". The learning files are identical to last year. The files also includes data for pre-learned data.

Jay Scott on :

I meant that the format looks the same, but the result file contents look different because many more strategies are listed.

MicroDK on :

It lists all the strategies it tried during the tournament and the training games. Nothing new here. ;)

Bytekeeper on :

I think we will reach a point where all bots will require learning data to maintain high win-rates. Unless a killer strategy is found, this is a very good sign.

Pedantic mode on: 2147483647 is not -1 :D

Jay Scott on :

You’re right, of course. 32-bit two’s-complement -1 printed as unsigned is 2147483648. 2147483647 is the maximum positive signed value.

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.