CIG 2018 - not only Overkill was broken
I’ve been watching CIG replays. There are way too many and I watched few, but I soon noticed that Overkill was not the only bot in the tournament with broken build orders due to some unknown incompatibility. Steamhammer is also affected in every game I checked, with symptoms similar to Overkill’s though apparently less severe. Strangely, UAlbertaBot (parent of both Overkill and Steamhammer) does not seem to be affected (though I did see one game where it opened 11-11 gate instead of 9-9 gate). Tyr also had build order problems in every game I checked, and it is unrelated code.
I checked a few other bots and did not see consistent problems as with Overkill, Steamhammer, and Tyr. For example, McRave fell into an early production freeze in one game, but it played normally in other games so that was likely a garden variety bug.
It explains some mysteries about Steamhammer’s performance, though it opens others.
It seems difficult to inventory all the participants and see which were affected by similar problems. For the weaker bots, we may have to read the source to tell whether build orders are working as intended.
Can anybody diagnose it? So far we only have speculation about the cause.
Comments
Joseph Huang on :
Jay Scott on :
MicroDK on :
Jay Scott on :
Dan on :
Quatari on :
ZZZKBot writes a boolean to its output file to record whether latency compensation is on or off from ZZZKBot's perspective (Broodwar->isLatComEnabled()). I checked all the output files for ZZZKBot and in all games, it is "1" (on). Of course, this is only evidence for ZZZKBot's perspective, not for the perspective of other bots. I don't think the organizers changed any of the logic relating to latency compensation, because they used StarcraftAITournamentManager, and if they changed it, they would have needed to change and recompile the TournamentModule.dll. I can't think of any reason why they would want to do that. The TournamentModule.dll in StarcraftAITournamentManager (for all BWAPI versions it supports, i.e. 4.2.0, 4.1.2, 4.1.0 Beta, 3.7.4) forces latency compensation to be on for DLL bots (i.e. DLL bots can't turn it off). I don't think it should, but it does. ZZZKBot is a DLL. However, TournamentManager.dll doesn't seem to enforce permissions like this for EXE/proxy/client bots, because I have noticed in the past that EXE/proxy/client bots are able to do things that the TournamentModule.dll should prevent them from doing, e.g. setLocalSpeed(42). I haven't debugged it to investigate, but I might - not sure when though.
FYI: Jay mentioned that Overkill, Steamhammer, McRave, Tyr might have had problems. Overkill, Steamhammer, McRave are DLLs. Tyr is a proxy bot.
Bruce on :