archive by month
Skip to content

SSCAIT semifinals and third place playoff, part 2

Today is the second and more interesting part of the SSCAIT 2016 round of 4. Krasi0 fought XIMP, with the winner to move on to the final. The loser went to a 3rd/4th place playoff match against Iron.

Krasi0 vs XIMP

Game 1 was on Empire of the Sun. XIMP is the carrier bot. Terran Krasi0 saw what was coming and chose to attack with tanks and early goliaths before the carriers had all their interceptors. The tanks were somewhat inefficient in sieging down the cannons (most bots are), but they were fast enough. XIMP was in trouble regardless, but losing too many probes sealed it.

Game 2 was on Heartbreak Ridge, a 2-player map. It has many cliffs which favor carriers, but it also has low-ground bases and a short ground distance between the mains, which favors mech attacks. Krasi0 attacked with the same timing as the previous game. Krasi0 again killed the natural, but terran reinforcements chose a path through the center which took them next to the protoss base, distracting XIMP into playing correctly against the reinforcements instead of the main terran force. Krasi0 could have sent fresh units the other way around the center of the map, where carriers could not have engaged them until they arrived. Then the mech army would have stayed compact.

But as it happened, the diversion toward reinforcements and Krasi0’s difficulty in attacking the protoss main through the very narrow entrance meant that the carriers were able to build up interceptor numbers. XIMP defeated the goliaths and started chasing the terrans away. Krasi0 sent goliaths piecemeal toward the front and lost them a few at a time.

While one carrier group fought terran units around the center, another group departed on XIMP’s trademark edge crawl to survey the bases around the map and attack from the rear, a slow but dangerous plan. Both players were in some trouble. XIMP had only its main left and no long future unless it could take and hold another base, while Krasi0 had 2 bases but not enough anti-air to stop the carriers. What would happen?

XIMP’s front carriers played poorly and lost numbers. They could have returned through the center to cover while XIMP retook its natural, or they could have joined the attack on the main where cluttered buildings made goliaths awkward, or they could have circled the terran natural and attacked it from above the cliff, but they insisted on attacking from the front without the advantage of a cliff. With that decision, Krasi0 had the lead. Terran should have sent its ground army, minus air defense, to the protoss base, which would either cause a base race or bring the carriers back home to defend. Instead Krasi0 left tanks and vultures idling around the center of the map. Krasi0 did not use its lead.

Neither side was making the most incisive moves, and the outcome was unforeseeable. Fun game!

Krasi0 got a third base up. XIMP had no money but destroyed the terran main, slowly. Krasi0 did not try to float its factories, but rebuilt from scratch instead. Finally Krasi0 built up enough stuff to start hitting carriers, and that was enough.

Both players fought like lions. After mistakes all around, the victory was narrow. Krasi0 won and went to the finals.

Lesson: You never know what little thing will make the difference. A small improvement by XIMP (try to attack from above cliffs, or destroy bases more efficiently) or a minor weakness in Krasi0 (build the 3rd too late, be unable to recover from losing all tech) could have given us a different result.

Iron vs XIMP

Iron is far more aggressive than Krasi0. Iron attacked with infantry and tanks, sieged down the cannons, held off carriers with marines and turrets, finally added valkyries almost as an insult, and won easily. The second game went about the same way. A group of carriers escaped and caused damage, but only until the undefended protoss base died.

It’s not easy to beat XIMP, or more bots would do it, but Iron made it look easy.

Trackbacks

No Trackbacks

Comments

krasi0 on :

The suboptimal routes toward the enemy base that my bot often chooses are the result of a speed vs accuracy trade-off when calculating ground distances and "shortest" paths. My bot used to suffer from hideous performance issues in the past due to too many calls to BWTA2's getGroundDistance() and getShortestPath() methods. At some point I decided that I have to sacrifice accuracy, hence the bot often makes tactical mistakes, but at least doesn't lose games due to long frames anymore.

"Terran should have sent its ground army, minus air defense, to the protoss base, which would either cause a base race or bring the carriers back home to defend. Instead Krasi0 left tanks and vultures idling around the center of the map." - yeah, but none of my units are tempted to go on a suicide mission (even for the greater good). The siege tanks and vultures would rather wait for the anti-air reinforcements instead of marching naked to their certain death. I agree with you of course, that strategically that decision almost cost me the whole game. :)

Iron's aggressive play is remarkable and I have a lot to learn from it. It's not my style of play (even as a human player) though, so I am uncertain whether I will be able to implement any successful "import" of aggression into my bot's behaviour. The status quo dictates that Iron >> krasi0. We'll see if that changes during 2017 :)

Jay Scott on :

Interesting analysis, thanks!

Igor Dimitrijevic on :

... but Iron is clearly not as solid as your bot and this is not something that is likely to change!
If you encounter performance issues with the calculation of ground distances and paths, try BWEM. You can use BWEM's paths and ground distances features only, while still relying on BWTA2 for regions and choke points. This way, the impact in your code would minimal. Migrating the whole library may not be trivial, since they don't represent regions the same way, so some user algorithms may differ quite a lot. And they don't compute the same set of regions, so the migration may bring some subtle side effects (either good or bad).

krasi0 on :

I have been considering it seriously and lately I've been recommending to everybody to use BWEM as opposed to BWTA*.
You seem to have done a great job.

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.