looking at CUBOT
I spent a little time poking at CUBOT. I guess the name is a reference to the Sonic the Hedgehog character Cubot rather than the Android phone brand Cubot. It could also be an acronym for China University of Boring Ore Technology... or something like that. The author is given in the configuration file as Tommy Tang, and the name Zhentao Tang appears in the binary; they are likely the same person (choosing a Western name in a Western context is a Chinese custom, just as foreigners in China are expected to choose a Chinese name). I think this is the author:Zhentao Tang of the familiar Chinese Academy of Sciences, the institution that brought us CasiaBot among others. Yuanheng Zhu, author of the cannon bot Juno, is listed as a co-author on a few academic papers. I do not know what connection may exist between CAS and the China University of Mining and Technology that the author claims to be a student of at SSCAIT, but I get the impression that CAS is an umbrella organization so I’m not surprised if there is one (or he could have moved to CAS later). It’s hilarious that ResearchGate labels Zhentao Tang a Doctor of Theology, despite all his skills being in AI—it reminds me of the old joke where people create a series of ever more powerful computers and ask each the question “is there a god?” The last computer answers “Now there is.”
CUBOT is a Steamhammer fork, though there seem to be widespread changes. Or possibly it is a UAlbertaBot fork with extensive borrowings from Steamhammer. I can see from the configuration file and from text messages in the binary that a lot of Steamhammer 2.something code is included. Since the DLL is 3.5MB instead of Steamhammer’s 2MB, I looked inside. I see SparCraft (dropped from Steamhammer long before 2.0, one of the hints that it might actually be a UAlbertaBot fork), both BWTA and BWEM, Boost, and indications of machine learning code. Items that look like machine learning feature names suggest that the strategy boss has been swapped out for a learned version, something we’ve seen before in CAS Starcraft projects.
At the moment, CUBOT is ranked #42 with elo 1999, well below Steamhammer and UAlbertaBot by Dave Churchill. CUBOT’s play is... not very rich, strategically. If my interpretation of the binary is right, then the learned strategy boss does not learn diverse strategies. CUBOT does know 9 openings defined in the configuration file. It claims to choose among them by UCB like UAlbertaBot rather than with Steamhammer’s complex opponent model, and when I ran test games (and looked at the learned data), the claim looked correct (another hint). I think that is what the description means by “Adaptive weights toward different opponents.”
CUBOT is strangely sloppy in some ways. Some of the debug options, still included in the configuration file, do not work (including the basic game info inherited from UAlbertaBot). The openings like to collect 400 gas, no matter whether the opening needs 200 gas or 900. There are bugs both subtle and obvious. A subtle bug is that CUBOT will send a drone that is carrying minerals to mine gas, losing its 8 minerals; UAlbertaBot does that (a third hint), but Steamhammer carefully avoids it. An obvious bug is that it sometimes has trouble finding the last building on the map, even when it has already seen the building; neither Steamhammer nor UAlbertaBot has that bug.
I think I detect a family resemblance among the Chinese Starcraft projects that we have seen. They tend to have some machine learning feature, perhaps because of the national AI push. I get the idea that each project has a specific narrow goal, and aspects unrelated to the goal can be given short shrift. I see it in the way that the projects tend to display impressive amounts of hard work and ingenuity in some parts, and generous corner-cutting in others. It also seems that carrying on the project over time is not a goal. But this is all, of course, just my impression.
Comments
Joseph Huang on :
Jay Scott on :
Joseph Huang on :
Jay Scott on :
Aha, I see it. In the AIIDE 2018 KillAll source, the author in the configuration file is given as Zhentao Tang. The claim looks true on the face of it. The SSCAIT 2018 version (updated just before the tournament) does not have a separate config file; that’s all I looked at on the first try.
McRave on :
I've emailed Certicky about this. I don't think it's worth messing with the results of 2018/2019, but worth adding some rules or require entry information for 2019/2020.
Joseph Huang on :
krasi0 on :
Suggestions like rerunning the tournament are unrealistic to put it mildly. At the very least many bots have seen updates within the last couple of months.
I don't think that it's such a big deal that (*allegedly*) the same author has submitted two different low tier bots probably without prior to that getting themselves familiar with the rules. Especially since no proof of collusion has been found.
We should probably be more clear about the no multiple bots by the same author rule for SSCAIT 2019/2020 is all.
Joseph Huang on :
krasi0 on :
Michal Certicky on :
We did indeed DQ multiple bots before the tournament because their author had multiple entries active. The important part there is "before the tournament". Of course it's possible to miss one or two, but that's not a sufficient reason to mess with the ongoing (or even finished) tournament.
If you have some ideas on how to make this screening process more thorough, please email me.
Joseph Huang on :
Paul Goodman on :
Joseph Huang on :
Tully Elliston on :
MicroDK on :