archive by month
Skip to content

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.

Trackbacks

No Trackbacks

Comments

Joseph Huang on :

According to Quatari on discord this guy is also author of KillAll in violation of SSCAIT rules of 1 bot per author.

Jay Scott on :

Both bots did compete in the tournament. Is there evidence for or against the claim? I don’t know any.

Joseph Huang on :

It's in DLL? https://imgur.com/bEjCe0X

Jay Scott on :

It’s in the CUBOT DLL. I don’t see any names in the KillAll DLL.

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 :

Disqualifying both bots was discussed on Discord too, but it would heavily affect the top 16. McRave would be tied for 16th with Arrak/Neo Edmund and PW/Iron would switch places. It's a messy situation.

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 :

The tournament should be rerun, if they aren't willing to DQ then why put it in the rules?

krasi0 on :

Yeah, and world poverty should be eliminated tomorrow!
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 :

Then change the rule to be disqualified only if we feel like it.

krasi0 on :

Now, you're actually trolling. Please stop :)

Michal Certicky on :

lol :)

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 :

Then please fix the rules so it says DQ only happen before the tournament instead of saying always DQ.

Paul Goodman on :

Couldn't you disqualify them without invalidating all of their results? In most competitions I'm familiar with in general the one doesn't necessarily imply the other.

Joseph Huang on :

DQ from round robin phase would change the bots in the elimination phase and reorder them, so this is not feasible.

Tully Elliston on :

I don't think its wrong to plan around expectations of author goodwill rather than enforcing rules, in a community like this.

MicroDK on :

from the latest Twitter and Facebook post, SSCAIT will require a Liquidpedia page with bot authors to compete in the tournament. This page which will be linked to from the SSCAIT bot page. This is a clever way of screening of bots. I think AIIDE and COG (previous CIG) should do the same.

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.