Probots finals

The KotN: Probots finals were played last Friday! The finals were between 5minBot and HjaxAI. If you are a subscriber to eschamp, you can watch the games here. These bots played some awesome macro games. Let’s go through them now.

Game 1

The game starts with both bots macroing up. 5minBot tries to do some harass with his reaper, but HjaxAI chases it out of his base with some lings. HjaxAI tries to block 5minBot by burrowing lings at base locations. 5minBot manages to scan and kill the zerglings without much trouble, which impressed me quite a bit. 5minBot tries to do a push with a small bio force with some medivacs and a tank, but HjaxAI is ready with a flood of zerglings and cleans the push up nicely.

5minBotVHjaxG1.png

At this point HjaxAI adds on some mutalisks and goes on the offensive. The bio army quickly gets overwhelmed by the mass of zerglings. The marines and marauders try to split, but this only allows the zerglings more surface area to attack. A pair of vikings manages to hold the mutas at bay, but the zerglings push into the main with ease. They take out what little defenses remain for 5minBot and HjaxAI takes game 1.

Game 2

The early move out with bio from 5minBot does a bit better this time. It takes out a queen and quite a number of zerglings, but it eventually does get cleaned up. A second push takes out another two queens, but it decides to retreat again. HjaxAI adds on mutalisks to the zergling army and pushes out. Once again the bio stands little chance to the mass of zerglings. Only the third base for 5minBot puts up some resistance. This base is a planetary fortress and it has a single turret to fend of the mutalisks. The mutas seem to be reluctant to attack into the turret, but instead of retreating properly they dart in and out of range taking hits needlessly.

5minBotVHjaxG2.png

The zerglings try to take down the planetery fortress, but with some scv repair the zerglings don’t get anywhere. The main and natural for 5minBot do not do so well. He simply has no answer to the constant flood of zerglings and ultimately even the planetary fortress falls. Game 2 goes to HjaxAI.

Game 3

This game is on Redshift. 5minBot goes for a planetary fortress at the natural. When HjaxAI comes in with a flood of lings they once again destroy themselves on the planetery fortress. They manage to get it down to a sliver of health, but the repairing SCVs barely manage to save it.

5minBotVHjaxG2.png

The mutas come in at the pocket expand of 5minBot. The marines do a decent job of holding them off. 5minBot seems somewhat confused about the attacks that come in from both sides. A large part of his army sits in his main base, not quite sure which attack it should defend against. In true zerg swarm fasion, HjaxAI keeps throwing wave after wave of zerglings into 5minBot. For a while this doesn’t seem to do too much, but gradually 5minBot gets worn out. The SCV numbers drop and the army of 5minBot, although it looks large enough that it should be able to handle the attacks, simply does not know what to do. With the resources running out, HjaxAI manages to overrun the defenses and take the third game, winning the tournament.

 

The ladder has restarted

After a long break, the ladder is back! It is once again running bot matches and now there is also a twitch channel where random replays from the ladder are played 24/7. My bot is also playing and so far it has won all of its 26 matches! This includes matches against such bots as 5minBot and HjaxAI!

Speaking of 5minBot and HjaxAI, they will be playing in the Probots tournament final this Friday on eschamp, so do tune in there for some awesome games!

Probots semi-finals

The semi-finals for the KotN: Probots tournament were played yesterday. Let’s look at the games that were played! If you are a subscriber to the ESChamp twitch channel you can watch the cast here. Otherwise you will have to wait a bit until the games are uploaded to the youtube channel.

AviloBot vs 5minBot

This matchup was the first to give us some nice macro games. AviloBot uses a mech strategy with lots of tanks and some hellions/hellbats. 5minBot plays mostly bio with tanks and medivacs for support.

Game one, both bots go up to three bases fairly quickly. 5minBot tries to do an attack at the third, but despite very little defense from AviloBot, he pulls back before doing any real damage. Next, 5minBot tries to do some drops, but the medivacs get cleaned up easily and 5minBot loses quite a few units in the process. A couple of hellbats sneak into one of the bases of 5minBot and take out a good chunk of SCVs. The army for 5minBot returns home to defend. 5minBot is rather indecisive about attacking, although whenever the armies do meet, it always seems on top. AviloBot never manages to build up a large force. Eventually 5minBot makes a decisive push and destroys the remaining bases of AviloBot.

Game two, AviloBot makes cloacked banshees. It gets quite a few SVCs, but 5minBot makes turrets at its mineral line. The banshees know to stay away form the turrets, however, they keep flying barely inside of range, and slowly get killed. When 5minBot adds vikings the banshees don’t stand a chance anymore. This game, AviloBot does manage to get up a sizable army of tanks. When it pushes out, it dominates the bio forces of 5minBot. It has very little anti-air though, so the vikings of 5minBot stay alive, but they don’t know to land and just fly around uselessly. AviloBot takes the second game and takes the score to 1-1.

Game three, 5minBot starts with an attack at the front and mixes it up with some medivac drops. It does a reasonable amount of damage. Eventually it commits better to its attack and takes out two of the bases for AviloBot. Like game one, AviloBot struggles to get an army up. Eventually the pressure from 5minBot is simply too much and AviloBot gets defeated. 5minBot wins the series 2-1.

HjaxAI vs CreepyBot

CreepyBot is a macro bot that likes to spread creep a lot. HjaxAI, normally also plays a macro style, but for these games he decided to use a different strategy to take CreepyBot off guard. It does a twelve pool, makes a couple of lings and then attacks, taking all its drones with the attack. CreepyBot is totally unprepared for this kind of cheese. The worker defense is weak and it doesn’t manage to get any spine crawlers up. Only game two is somewhat interesting. CreepyBot expands to a distant base and HjaxAI doesn’t manage to scout it. The game ends in a draw and another game has to be played. HjaxAI wins that game as easily as the first and takes the series 2-0.

Next week will be the finals with 5minBot vs HjaxAI. The final wil be a best of 5. I am very much looking forward to what we get to see from these bots. Both bots get a chance to make adjustments for their final match, so we will have to wait to see what they come up with!

Results Round of 8 Probots

The results are in for the round of 8 of the KotN: Probots tournament. I’ll review the matches and the results below:

AviloBot vs MicroMachine

Watch the VoD here. This was the first chance we had to see AviloBot play. It plays a mech style off of one base. MicroMachine plays a 4 rax opening, also staying on one base. AviloBot built a bunker on the top of his ramp, which shut down all aggression from MicroMachine. MicroMachine didn’t really understand it though, and kept suiciding marines up the ramp. AviloBot eaily won 2-0.

m1ndb0t vs 5minBot

Watch the VoD here. m1ndb0t is also a new bot. It builds a proxy pylon with a shield battery. Then it goes for stalkers, immortals and a few adept.

5minBot has had some modifications for the tournament, but it still uses mostly marines and marauders with medivac support. It does now go for an early attack if it determines that the enemy is not going to put on too much pressure.

In game one this happens and the early attack hits m1ndb0t before he has enough units to defend. The victory goes to 5minBot. In game 2 5minBot does not scout that m1ndb0t has built a gateway in his main. According to Archiatrus, the author of 5minBot, this led the bot to believe that m1ndb0t was going for some form of proxy. Because of this, he doesn’t go for the early attack and the game goes on for a little longer. The stalkers are no match for the bio force though. For some reason the immortals all stay in the main base and do not contribute to the fight. They are also killed when the army of 5minBot marches into the enemies base. 5minBot wins the series 2-0.

HjaxAI vs Tyr

The VoD for these matches has not yet been uploaded to youtube. If you are a subscriber of ESChamp you can watch it on their twitch channel, otherwise you will have to wait until they upload it. Here is the match with my bot I have been waiting for all this time.

HjaxAI uses a macro heavy strategy where he quickly goes up to three bases and then masses hydras. Finally it adds a fourth hatch for some extra macro potential. It also makes sure to build lings to defend against early aggression.

My own bot Tyr makes use of two different strategies. With the first strategy is a two base voidray all-in. My bot makes sure to build plenty of cannons at the natural to stay safe against early pressure. If my bot loses with this build it will move on to the next. For the next build it walls itself in on one base with a gateway and a forge. It then builds a ton of cannons and some shield batteries on top of the ramp to stay safe. After that it goes for a combination of DTs and voidrays.

The matches themselves were actually cast in reverse order of how they were played. This makes it somewhat confusing as my bot decides its strategy based on the result of the previous game. I will discuss the games in the order that they were actually played.

Game one my bot went with the two base voidray strategy. The voidrays moved out at about the same time as the hydras did. The meet in front of my base and the voidrays are killed. The hydras move on to the cannons. They are barely held of – sort of – as only one hydra remains, which my bot seems to ignore. When the reinforecements arrive for HjaxAI it is game over for my bot.

The second game my bot decided to switch up its strategy and go with the one base DT, voidray build. The DTs arrive at the third base of HjaxAI before any detection is done. They quickly kill a lot of drones. When the voidrays arrive there are only a couple of queens and hydras, with spores being added on. The defenses are too little to late and the game goes to Tyr.

In the final game my bot sticks with the same strategy. This time, however, HjaxAI builds a ton of overseers right before my DTs arrive. According to the author of the bot, the overseers were supposed to be built every single game, but somehow the bot failed to do so during game two. This time, with the overseers out, the DTs are killed in seconds. The voidrays make the mistake of trying to kill all the lings before anything else. They do not get very far when a couple of hydras come in and kill them. The rest of the game, Tyr keeps slowly trickling in units, and finally dies when HjaxAI move out with his hydras.

HjaxAI wins the series 2-1.

CreepyBot vs CannonLover

The VoD for these games are not on youtube yet either. If you are a subscriber, they come after the HjaxAI vs Tyr matches in the same video as above.

CreepyBot stays true to its name. It is a Zerg bot that likes to cover the map in creep, and it does so at an insane rate. Behind that it goes for a macro focussed roach heavy build. CannonLover also likes to stay true to its name. It uses a cannon rush, although it does not try to kill the enemy with the cannons, but rather puts them in the natural to delay the opponent. After that it goes for a zealot, stalker, collosus army.

Both games played out fairly similarly. CreepyBot takes an early natural. CannonLover builds a pylon next to it. The probe that is supposed to build the cannon gets attacked by a drone and eventually dies. Then CreepyBot kills the pylon with drones. By this point CreepyBot starts spreading its creep. CannonLover doesn’t want to give up on its cannon rush and tries once more. Since there is creep in the way it has to build the pylon a way out. CreepyBot is having none of it and promptly destroys the pylon. Eventually CreepyBot overruns CannonLover with large numbers of roaches. By this point the entire map is covered in creep. CreepyBot wins 2-0.

 

That’s it for the round of 8. Next week will be semi finals with AviloBot vs 5minBot and HjaxAI vs CreepyBot. I am a bit dissapointed that I didn’t make it to the next round, but we can definitely expect some interesting games. In the meantime, the ladder will soon start up again, so it will be fun to see the new and improved bots battling it out there!

Group stage complete

The first results for the KotN: Probots tournament are in. Unlike what I said in my previous post, 10 bots made it into the tournament, not 12. This is because two of the authors were unable to hand in a working bot on time. The random bot Ursadon won’t compete and the Terran bot ByunJR also didn’t make it. The remaining bots have battled it out in two groups of 5. In each group, the top 4 will advance to the next round. CryptBot got knocked out of the first group and Bad_Terran was eliminated from the second group. We do not get to see the replays for the matches, but we can infer some interesting facts from the results:

  • HjaxAI, which I had predicted would do well, actually only won 2 of its 4 matches. It lost against the terran AviloBot and against protoss m1ndb0t.
  • AviloBot made it to the first place in his group, only losing a single match to CreepyBot.
  • CannonLover got first place in the other group and only lost against Bad_Terran.
  • 5minBot lost against both CannonLover and my bot, although I had thought he would end quite high.

My own bot lost only a single match, against CannonLover. I even won the match against 5minBot, which I am very happy about. In the round of 8 I will be up against HjaxAI, which will be a tough matchup for me. I very much hope I will be able to move on, but we’ ll have to see how the games play out.

Start of the tournament

The registration deadline for the KotN: Probots tournament is past. A total of 12 bots have been registered. Seven of the authors have had a bot on the ladder before, although four of them have completely new bots or strategies (according to what they have said on discord).

  • Cryptious is sending in CryptBot 2.0, which, unlike it’s predecessor is a macro bot. However, he has said in chat that the bot is not complete and has many bugs.
  • NikEy is sending in AviloBot. The details for this bot are still somewhat unclear, although according to comments from the author it will definitely be interesting. One hint he gave was that in case of a loss, it will lift the Command Center, like NaughtyBot did, but it will also fly it off into a corner, with 20 vikings. Like CryptBot, however, the completely new bot was perhaps too much of a project in the short time he had as it sounds like it is not quite complete either.
  • Hjax has been working on his bot a lot. He has improved macro and added all sorts of defenses against cheese. He may also have had the most time to work on his bot of all the authors, as he didn’t have to work in the time since the tournament announcement. In testing he beat the ladder version of 5minBot 31-4.
  • Finally my own bot will be using some completely new strategies for the tournament. I won’t reveal too much about it, although, like Hjax I have tested against 5minBot and the result is 32-3 in my favor. We will have to see how well 5minBot does after the updates it has received for the tournament!

There is very little that can be said about the new bots, although we can guess what strategy CannonLover will use. I also find it interesting that there is an actual random bot called Ursadon. I am curious to see how it will play.

I consider HjaxAI, 5minBot and Tyr to be the top contenders for winning the tournament, but nothing is certain. The group stages will be played on tuesday and should be published by wednesday. Friday the Round of 8 will be streamed live on the Inside the Champ twitch channel.

Tournament announcement

The Starcraft 2 AI tournament hosted by Inside the Champ has been announced! You can register here.

The tournament will start with a group stage of best of one matches. The two winners per group will proceed to the elimination bracket. During the bracket best of three matches will be played. The finals will be best of five. The matches will be cast on the twitch channel of Inside the Champ.

There is even a prize pool! $100 for the winner and $50 for the runner up. Although that obviously doesn’t compare to the real prize: eternal fame for the winner!

I am very excited to join the tournament. I am somewhat worried about the group stage. I use some learning in my bot; if it loses a match against an opponent it will try something different next game. There is not much use for that when the matches are just best of one, though. I hope my bot will do well anyway. To anyone who joins, good luck and have fun!

End of the season

The season ended for the Starcraft 2 bot ladder. 5minBot, which has been on top for more or less the entire season has managed to keep its first place. NaughtyBot, from my previous blog post has finished in second place. My own bot ended in fifth place. For now, no more matches will be played. The next season will probably start around the end of June. This is around the same time as the upcoming tournament is planned. We’ll have to see which happens first.

In the meantime, Cryptious, who runs the ladder, is working on a new and updated site for the tournament, together with TheDoctor, who built most of the infrastructure for the new site. The new ladder should also allow python bots to play, so we will hopefully see some new bots!

I will be working on my bot as well and I hope to finish next season in a higher spot than I did this season!

New bot on the ladder

In an earlier post I predicted that for now, rush bots would dominate the SC2 ladder. Well, a new bot has arrived on the ladder and it seems I was right. The new bot is called NaughtyBot by NikEy and it has been stomping most other bots. So far it has only lost five games out of 25.

Also of note: NaughtyBot is a C# bot using my C# API. There were some problems with the API though, and I had to help NikEy out by sending him the compiled dlls for the API. I intend to fix the issues after the upcoming tournament.

NaughtyBot uses a proxy 4-rax strategy. It hits earlier and harder than the existing 4raxBot and MicroMachine, which also use a (non proxied) 4-rax build. It even brings SCVs to help in the attack! At the moment there are few bots on the ladder capable of stopping it. Its main opponent is MicroMachine, which holds off the proxy 4-rax with a defensive 4-rax of its own. It is now 1-3 against MicroMachine. Other than that it has only lost an odd game against the zerg version of CommandCenterBot and tscmoo. Even the top bot 5minBot has lost the three games it played against NaughtyBot.

I think it is quite likely that NaughtyBot will take first place on the ladder, unless other bots adept to his play.

Exploit in the SC2 API

I’ve been playing around with the pathing grid that the SC2 API provides you in the ResponseGameInfo. I have found that there is an exploit in there. Here is an image I generated from the information for the map Paladino Terminal:

Pathing

Note that the top left and top right bases have a circle in the middle. These are my own and my opponent’s resource centers. Note that Paladino Terminal is a four player map; you should not know which of the four start locations your opponent has spawned at, however by looking at the pathing data you can find out.

I posted about this exploit in Discord and one of the Blizzard employees working on the Starcraft API, Aphextwin, told me he would look into it. At the moment the exploit is not much of a problem. The ladder, which is the only place for competitive bot matches, currently only features two player maps. When maps are added for more players this could become a problem. Hopefully the exploit will be fixed before then.