archive by month
Skip to content

AIIDE 2020 - what Ecgberht learned

I added parsing code for Ecgberht’s JSON format learning files. I had to refactor for generality, and it added complexity, but I can use the parser for more than one purpose. Today I summarize the contents of its history files.

Ecgberht I think is a complex and interesting bot. It played up to 5 different strategies in each matchup, though the selection of the 5 varied by matchup. Sometimes it played fewer. Against most opponents Ecgberht played its strategies at roughly equal rates—except for the strategies it didn’t play at all. Ecgberht uses UCB with a high exploration rate. The strategy manager in the source lists 15 strategies (plus one more played only on the map Plasma and named PlasmaWraithHell), so it did not play everything it knows. I made a quick scan through the source for opponent-specific preparation, and did find some, but for bots in the tournament only ZZZKBot is affected (it is flagged by a zergling rush check; some bots that always zealot rush are flagged for that). I didn’t dig deep enough to find out why Ecgberht ignores so many of its available strategies.

Ecgberht tries to recognize the opponent’s strategy, but often finds itself unsure. It recorded a high rate of Unknown enemy plans. The ones it does recognize are drawn from a small set that seems to me well-chosen.

Ecgberht recorded fewer than 150 games for 5 of its 11 opponents, although it completed all games with no crashes. In total, 7 games do not appear in the game records of the history files. Maybe it has a cleanup bug that bites occasionally?


#1 stardust

openinggameswinsfirstlast
14CC310%3147
FullMech280%0148
JoyORush270%2143
MechGreedyFE270%4146
ProxyEightRax366%1141
5 openings1491%
enemygameswins
Unknown1491%
1 opening1491%


A couple wins against the top player is not bad.


#2 purplewave

openinggameswinsfirstlast
14CC353%3148
FullMech290%0149
JoyORush280%2146
MechGreedyFE280%4147
ProxyEightRax300%1142
5 openings1501%
enemygameswins
ProtossFE70%
Unknown1431%
2 openings1501%

#3 bananabrain

openinggameswinsfirstlast
14CC310%3146
FullMech280%0144
JoyORush280%2147
MechGreedyFE280%4148
ProxyEightRax356%1149
5 openings1501%
enemygameswins
CannonRush20%
ProtossFE90%
Unknown1252%
ZealotRush140%
4 openings1501%

#4 dragon

openinggameswinsfirstlast
14CC280%3148
BioMechGreedyFE284%4144
FullMech250%0146
ProxyBBS4418%2149
ProxyEightRax250%1147
5 openings1506%
enemygameswins
Unknown1506%
1 opening1506%

#5 mcrave

openinggameswinsfirstlast
14CC287%7147
BioGreedyFE5129%0145
ProxyEightRax4726%21140
TwoPortWraith225%3146
4 openings14820%
enemygameswins
FastHatch6116%
NinePool1331%
Unknown7422%
3 openings14820%


Ecgberht put up its strongest fight against zerg.


#6 microwave

openinggameswinsfirstlast
14CC329%4145
BioGreedyFE210%0148
FullBioFE244%3146
ProxyEightRax5227%1147
TwoPortWraith200%2138
5 openings14912%
enemygameswins
FastHatch994%
NinePool540%
Unknown4527%
3 openings14912%

#7 steamhammer

openinggameswinsfirstlast
14CC3412%8147
BioGreedyFE3617%0142
ProxyEightRax3614%1141
TwoPortWraith4323%4148
4 openings14917%
enemygameswins
EarlyPool40%
FastHatch2232%
NinePool8114%
Unknown4217%
4 openings14917%

#8 daqin

openinggameswinsfirstlast
14CC320%8148
FullMech290%0149
JoyORush280%4144
MechGreedyFE280%43147
ProxyEightRax333%1141
5 openings1501%
enemygameswins
Unknown1501%
1 opening1501%

#9 zzzkbot

openinggameswinsfirstlast
FullBio15071%0149
1 opening15071%
enemygameswins
EarlyPool15071%
1 opening15071%


Ecgberht upset ZZZKBot, possibly aided by its hardcoded knowledge of how ZZZKBot plays.


#10 ualbertabot

openinggameswinsfirstlast
FullBio5843%0144
FullMech5238%2145
ProxyBBS4032%1149
3 openings15039%
enemygameswins
BioPush1191%
EarlyPool1250%
MechRush933%
Unknown10424%
ZealotRush14100%
5 openings15039%

#11 willyt

openinggameswinsfirstlast
14CC313%68148
FullMech349%0147
ProxyEightRax8541%2149
3 openings15026%
enemygameswins
BioPush3415%
Unknown11629%
2 openings15026%

#13 eggbot

openinggameswinsfirstlast
FullMech14894%0147
1 opening14894%
enemygameswins
CannonRush9495%
Unknown5493%
2 openings14894%

Trackbacks

No Trackbacks

Comments

Ecgberht on :

Hey Jay, thanks for analyzing my bot's learning data, so useful!

I think there is probably a bug and It causes Ecg not to explore between all of the available per-race strategies as It should have tried a lot more against some bots.

The enabled strategies per-race are coded here:
https://github.com/Jabbo16/Ecgberht/blob/master/src/ecgberht/StrategyManager.java#L48

I know enemy strategy detection is limited, but its hand-picked versus some fast or cheese strategies that my bot struggles to defend against if It doesn't react accordingly (like building a bunker vs early pool or 9-9 gateways). My bot also does recognize if a bot likes to only 4-5 pool and will try to counterplay with 8 rax into bunker in advance (harcoding zzzkbot only really helps vs the first games until this logic starts working).

Thanks again Jay for your work!

MicroDK on :

Microwave played mostly 2HatchHydra vs Ecgberth. That is a 2Hatch with the hatch at 12. I find it a bit funny to call that FastHatch. FastHatch would be like hatch at 9 or 10. :)

Ecgberht on :

FastHatch is just Hatchery first (before pool).

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.