KangarooBot, KasoBot, NuiBot, DTD Bot
I promised to write up the remaining newcomer bots. Despite my best efforts, I do occasionally keep my promises. Including Slater, which is the most succesful so far, we have 5 new bots that seem to be from 3 different sources. I’m surprised there are so many in such a short time. Did something happen out in the wide world?
Kangaroo Bot
Random KangarooBot from Australia—sorry, from Straya—has an attitude, and the attitude is “gosh darn it, no lazin’ around, the executive plan here calls for makin’ up more silly stuff, we have to put our backs into it.” Even in the code (github) I see variables like String currentBitch; (which can take on the value “Myself” among others) and String newDumbName = ““; (which can take on values like ShootyMcShootSiegeBot and McPurpleBraintus).
Kangaroo is developed from If Bot by the same author, which has a long history as a single .java file.
KangarooBot uses the ASS combat simulator and has a lot of tech skills. As a random player, it knows several terran builds, a few protoss builds, and one build per matchup as zerg. So far so good. The builds are all a little wonky, and the bot has a strong aversion to saturating its minerals with workers. So it often gets stomped (SSCAIT win rate 12%). But, you know, winning is not the main goal here.
KasoBot, NuiBot, DTD Bot
These are by fresh masters students at the Slovak University of Technology. They are newly created bots, so they’re simple for now. But as grad student projects, they aim to use cool tech, and if they succeed then in the future we may all learn lessons from them.
Terran KasoBot says “Currently using randomly selected strategy - automatically extracted from replay dataset (no manual build orders).” Downloading the binary from SSCAIT, I see a BO directory with JSON files of 12 build orders each for TvT, TvP, and TvZ. A build order looks like this:
{"items": [{"name": "Terran_Academy", "id": 112, "type": 2, "supply": 200, "frame": 10915}, {"name": "Terran_Armory", "id": 123, "type": 2, "supply": 200, "frame": 11431}, {"name": "Terran_Barracks", "id": 111, "type": 2, "supply": 22, "frame": 2161}, {"name": "Terran_Bunker", "id": 125, "type": 2, "supply": 200, "frame": 10529}, ...
... and so on for about 5K of text. The build order files are all roughly the same size in bytes. Presumably the randomly chosen build order file feeds to a build order interpreter that figures out how to execute the build order using some of the info in the file. In any case, since the BO items are not sorted by frame number, the files are hard to interpret by eye.
It’s a cool capability for brand-new code, though we don’t know where the replays came from, or how the data was extracted from them, or how the build order execution works. KasoBot’s play so far is weak; it is ranked last of all active bots on BASIL with a win rate of 5%. But it started off with something interesting, and I expect it will only grow more interesting as it progresses.
Zerg NuiBot’s description says nothing much. As far as I have seen, it plays a variety of pool-first builds from 5 pool to 12 pool and it attempts mass zergling attacks and techs to hydralisks. As a new bot, it often makes poor combat and macro decisions, and it has a bug that sometimes causes its drones to stop mining for no apparent reason. And that’s about all I know.
Protoss DTD Bot does not take any actions, even to send its probes mining, and wins only if the opponent plays a crash rush (that is to say, if the opponent crashes early). I hope the author is getting tech help! The description says the aim is to include a decision module using Long Short-Term Memory (LSTM).
Comments
Impie66 on :
MarcoDBAA on :