AIIDE 2018 - how CherryPi played
Overall, the play of the AIIDE 2018 CherryPi version looks similar to last year’s CherryPi which is still playing on SSCAIT. It still has the devastating ling micro, and it still prefers to win games with a flood of low-level units. It still gets melee +1 attack even when +1 carapace seems better. (Do CherryPi’s micro skills make +1 attack better, and if so, how?) Mutalisk micro looks very similar to Tscmoo’s, with mutas individually cautious and clever and collectively lazy and uncoordinated. It can use lurkers, guardians, and ultralisks. I didn’t see defilers, even when they would have been useful.
CherryPi scouts extremely aggressively with its first 2 overlords. They stick near the enemy base and try to poke into every corner, even if the enemy is terran and can shoot them down early. It gets a clear view, which must be useful for its build order switcher. The drawback is that the overlords often die young.
I think this CherryPi looks beatable. It doesn’t have SAIDA’s wide knowledge of action and reaction. It doesn’t have Steamhammer’s knowledge of how to react to LastOrder’s excessive static defense (but usually wins anyway with a zergling flood). It sometimes ignores undefended enemy bases, preferring to attack into the enemy’s strength—or even to wait idly. Game 31245 versus Iron shows it sticking with gas units and failing at macro; it forgot its love of zerglings. It doesn’t know whether it is ahead or behind, and it doesn’t realize that when it is maxed and owns the map, it ought to attack regardless of losses. It’s strong and tricky, but it also makes mistakes. I think next year’s version had better be improved if they don’t want to be overtaken.
Here are the names of the build orders that CherryPi recorded itself as playing in its opponent learning files. One of CherryPi’s major advertised features is a learned build order switcher that can switch to a new build order on the fly. It recorded 103 build order wins/losses for each opponent (except a couple with fewer), and 103 rounds were played, so these appear to be opening build orders only rather than all build orders tried throughout each game. Presumably the openings reflect CherryPi’s intentions when it started the game. It may not have followed the initial build order to its end.
- 10hatchling
- 2hatchmuta
- 3basepoollings
- 9poolspeedlingmuta
- hydracheese
- zve9poolspeed
- zvp10hatch
- zvp3hatchhydra
- zvp6hatchhydra
- zvpohydras
- zvpomutas
- zvt2baseguardian
- zvt2baseultra
- zvt3hatchlurker
- zvtmacro
- zvz12poolhydras
- zvz9gas10pool
- zvz9poolspeed
- zvzoverpool
CherryPi tried between 1 and 4 openings against each opponent. CherryPi sometimes switched away from its initial try even if it won all games (for example, against CDBot and Hellbot), so I’m not sure what the switching criterion is. But opponents that it tried 4 openings against are all ones that gave it a touch of trouble.
grep -c key *.json AILien.json:1 Aiur.json:1 Arrakhammer.json:1 BlueBlueSky.json:3 CDBot.json:2 CSE.json:4 CUNYBot.json:1 DaQin.json:1 Ecgberht.json:1 Hellbot.json:2 ISAMind.json:2 Iron.json:1 KillAll.json:2 LastOrder.json:3 LetaBot.json:4 Locutus.json:4 McRave.json:4 MetaBot.json:1 Microwave.json:3 SAIDA.json:4 Steamhammer.json:4 Tyr.json:1 UAlbertaBot.json:2 WillyT.json:1 Ximp.json:2 ZZZKBot.json:4
The other machine learning feature advertised for CherryPi is a building placer. It was trained against human building placements and apparently takes into account some of the bot’s intentions. I recommend against training on human play (or at least exclusively on human play), because machines play differently. Teaching a bot to blindly imitate human decisions that it doesn’t understand will lead to mistakes. It’s worse than teaching a human to imitate without understanding, because the bot won’t figure things out on its own. Nevertheless, CherryPi’s building placement does seem cleaner than other bots. To me the building placement looks simple and logical, but not sophisticated like a strong human player’s. Here’s an example from a ZvZ game, game 1755. The sunken colony does not interfere with gas mining, and it is somewhat protected from zergling surrounds by the geyser, the spawning pool, and the lair itself, while remaining open for drone drills on the drone side. The spire is curiously far away; I would have fit it into the gap next to the sunken. It looks OK but a little loose, not quite optimized. (By the way, game 14742 against the same opponent has the same building layout, except that the spire is placed close.)
CherryPi has gained new tactical tricks. I mentioned the burrow trick where it burrows zerglings at expansion locations. So far, I haven’t seen a game where the opponent was ready for the trick; I imagine it contributed to a lot of wins, even though CherryPi sometimes researches burrow and then never uses it. (And I’m disappointed. I thought of using this trick in Steamhammer, and didn’t because I expected that bots which knew how to clear spider mines would also know how to clear burrowed zerglings. I think I was wrong!) As far as I’ve seen, CherryPi doesn’t use burrow for any other purpose (though I wouldn’t be surprised, since there are so many). CherryPi also does zergling runbys; an example is game 1406 versus SAIDA where CherryPi played an unusual and not entirely efficient gas-first 3 hatch zergling build.
CherryPi doesn’t have as many complex skills as SAIDA, but it has a good number. I doubt I saw everything it can do.
Comments
Tully Elliston on :
CherryPi is the only bot that uses mass Zerglings with competency. Because no other bots really do, most of the other top bots also don't account for the power of well controlled Zerglings very well and are highly suspectible to surrounds. It also means that most bots have not unlocked one of the scariest attributes of Zerg, so there are big elo gain to be had.
Marian on :
One of the most famous bw player Mondragon used to always get early evo chamber +1 armor and abused zergling power to maximum. It is indeed a very powerful unit especially after adrenal glands upgrade.
Zerg bots (including mine) should really improve on ling and hydra usage.
Wei Guo on :
MarcoDBAA on :