AIIDE 2018 - what McRave learned
McRave, like Microwave and no doubt most bots that follow more than one plan, plays different openings against different races. In each opponent’s learning file, it writes win/loss numbers for 15 strategies. Their names all start with “P” for protoss, but I have stripped out the P to make the table more readable. 4 of the strategies are unused: ZealotDrop, NZCore (sounds like no zealot core), Proxy99, and Proxy6. That leaves 11 active openings. The races they were used against seen in the table. ZZCore (2 zealots before core) was played only against random.
# | bot | total | 12Nexus | 1GateCorsair | 1GateRobo | 21Nexus | 2GateDragoon | 2GateExpand | 4Gate | DTExpand | FFE | ZCore | ZZCore |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1 | saida | 16-55 23% | 1-12 8% | - | - | 7-17 29% | 1-12 8% | - | - | 7-14 33% | - | - | - |
#2 | cherrypi | 15-88 15% | - | 6-25 19% | - | - | - | 6-25 19% | 2-20 9% | - | 1-18 5% | - | - |
#3 | cse | 27-75 26% | - | - | 7-19 27% | - | - | 5-17 23% | 2-15 12% | - | - | 13-24 35% | - |
#4 | bluebluesky | 29-74 28% | - | - | 1-14 7% | - | - | 2-15 12% | 7-18 28% | - | - | 19-27 41% | - |
#5 | locutus | 46-56 45% | - | - | 5-12 29% | - | - | 15-15 50% | 14-15 48% | - | - | 12-14 46% | - |
#6 | isamind | 54-49 52% | - | - | 7-11 39% | - | - | 4-10 29% | 15-14 52% | - | - | 28-14 67% | - |
#7 | daqin | 60-43 58% | - | - | 13-11 54% | - | - | 4-9 31% | 8-10 44% | - | - | 35-13 73% | - |
#9 | iron | 56-32 64% | 27-8 77% | - | - | 2-7 22% | 18-9 67% | - | - | 9-8 53% | - | - | - |
#10 | zzzkbot | 75-28 73% | - | 8-7 53% | - | - | - | 17-7 71% | 21-7 75% | - | 29-7 81% | - | - |
#11 | steamhammer | 64-38 63% | - | 9-9 50% | - | - | - | 27-10 73% | 15-10 60% | - | 13-9 59% | - | - |
#12 | microwave | 82-21 80% | - | 0-5 0% | - | - | - | 39-4 91% | 30-5 86% | - | 13-7 65% | - | - |
#13 | lastorder | 97-6 94% | - | 10-2 83% | - | - | - | 17-1 94% | 10-2 83% | - | 60-1 98% | - | - |
#14 | tyr | 91-10 90% | - | - | 23-3 88% | - | - | 7-5 58% | 31-1 97% | - | - | 30-1 97% | - |
#15 | metabot | 49-46 52% | - | - | 8-11 42% | - | - | 16-12 57% | 23-14 62% | - | - | 2-9 18% | - |
#16 | letabot | 77-15 84% | 12-5 71% | - | - | 5-5 50% | 20-4 83% | - | - | 40-1 98% | - | - | - |
#17 | arrakhammer | 102-1 99% | - | - | - | - | - | - | 94-1 99% | - | 8-0 100% | - | - |
#18 | ecgberht | 99-2 98% | 95-0 100% | - | - | - | 3-1 75% | - | - | 1-1 50% | - | - | - |
#19 | ualbertabot | 73-29 72% | - | - | - | - | - | 12-8 60% | 38-6 86% | - | 7-7 50% | - | 16-8 67% |
#20 | ximp | 41-59 41% | - | - | 8-14 36% | - | - | 15-17 47% | 18-18 50% | - | - | 0-10 0% | - |
#21 | cdbot | 103-0 100% | - | - | - | - | - | - | 103-0 100% | - | - | - | - |
#22 | aiur | 80-21 79% | - | - | 11-6 65% | - | - | 13-6 68% | 41-3 93% | - | - | 15-6 71% | - |
#23 | killall | 60-43 58% | - | 3-9 25% | - | - | - | 6-9 40% | 19-12 61% | - | 32-13 71% | - | - |
#24 | willyt | 77-17 82% | 37-2 95% | - | - | 3-6 33% | 23-4 85% | - | - | 14-5 74% | - | - | - |
#25 | ailien | 86-17 83% | - | 31-3 91% | - | - | - | 20-5 80% | 5-6 45% | - | 30-3 91% | - | - |
#26 | cunybot | 91-8 92% | - | 26-1 96% | - | - | - | 36-1 97% | 14-3 82% | - | 15-3 83% | - | - |
#27 | hellbot | 103-0 100% | - | - | - | - | - | - | - | - | - | 103-0 100% | - |
overall | - 68% | 172-27 86% | 93-61 60% | 83-101 45% | 17-35 33% | 65-30 68% | 261-176 60% | 510-180 74% | 71-29 71% | 208-68 75% | 257-118 69% | 16-8 67% |
Unlike other bots that scored comparatively well against SAIDA—meaning they weren’t always wiped summarily from the map—McRave did not rely solely on cloaked units. The DTExpand opening scored best, but 21Nexus was nearly as successful. (McRave scored inconsistently against lower-ranked bots, though, as its author has commented.)
Every strategy came out with some good scores. But here is another analysis: Suppose the goal of the learning algorithm is to find the single most successful strategy (which is not always true—you might want to find the best mix to confuse the opponent’s learning). Leaving aside CDBot and HellBot, which McRave scored 100% against, against how many opponents was each opening the best choice? I made this table by hand, so there might be mistakes. I counted equal best as also best. The “versus” column tells which races the opening was used against.
opening | best | versus |
---|---|---|
12Nexus | 3 | T |
1GateCorsair | 2 | Z |
1GateRobo | 0 | P |
21Nexus | 0 | T |
2GateDragoon | 0 | T |
2GateExpand | 6 | P, Z, R |
4Gate | 5 | P, Z, R |
DTExpand | 2 | T |
FFE | 5 | Z, R |
ZCore | 4 | P |
ZZCore | 0 | R |
The counts do not match up well with the overall winning rates. There were 4 never-best openings. This analysis does not say that they are bad openings that dragged down the score. Consider what would have happened if they had not been enabled: Their games would have been distributed among the other openings; there would have been some extra wins and some extra losses, and the ratio would depend on the distribution. 21Nexus was never best, but scored second best against SAIDA and contributed as many wins. On the other hand, the openings which were often best were definitely worth having; they were well-chosen for McRave versus this set of opponents. It could make sense to try those openings first, or more often. On the third hand, notice that the openings with the highest counts were played against the largest number of opponents. There were more bests to count! Openings versus terran scored 5 bests because there were 5 terran opponents.
Plenty of similar analyses could be done. For example, you could count how often or how widely an opening scored above/below the average for each opponent: Did it make a net contribution, or the opposite? It would be another way of seeing whether the openings were well chosen for the opponents they faced.
Next I want to start watching some replays. I think I will start with LastOrder, which did all its learning offline yet held its win rate steady against the onslaught of learning bots. I’m expecting it to be interesting and sophisticated in some way.
Comments
McRave on :
Jay Scott on :
McRave on :
MicroDK on :
MarcoDBAA on :
0-10 vs Ximp for example, even though another opening won 50% of all games, shouldn´t happen I think.
P.S: Watched a few Last Order games. It has an interesting defensive style, even in ZvZ. But it is also a bit passive. And late game units are missing, even though it would make, if you play like this.