archive by month
Skip to content

new bot Locutus

I like the new protoss bot Locutus by Bruce Nielsen. It is a Steamhammer fork which uses BWEB for building placement. That means it includes BWEM, which BWEB depends on, though I don’t notice any use of BWEM for pathfinding. (If it used BWEM for pathfinding, probes would not have gotten stuck behind a mineral block in this game against Bereaver.) It also has some good extensions to Steamhammer.

Locutus has a favorite build order that it uses against all races, a forge expand build that was originally designed for use against zerg. It uses BWEB to place a reasonably good wall with forge, cannons, and gateway in front of the natural, not a wall that is optimized for the terrain but one that is about as good as the walls of other protoss bots. As a new bot, it has little ability to adapt its unit mix to the situation, so it follows up with universal units, dragoons. Like Steamhammer, it eventually adds reavers and observers and a few dark templar. The dragoon micro inherited from UAlbertaBot is one of Steamhammer’s best skills, so that’s another reason dragoons are a good choice.

a wall on Destination

Locutus does know other build orders, and uses certain ones against specific opponents. [Update: I misread the configuration! It does not actually play enemy-specific build orders; the feature is turned off.] It does not use Steamhammer’s opponent model.

The forge expand build was designed for zerg opponents, but in bot world it works well against other races too. Locutus has wins over strong opponents like Bereaver and TyrProtoss. Building cannons willy-nilly has an advantage: The cannons stop most early rushes, common bot strategies. For example, PurpleSpirit tried its SCV-marine rush and failed hard.

Also visible in the PurpleSpirit game is Locutus’s changed probe micro. Probes come to defend the wall when necessary, a critical skill that Steamhammer does not have. Unfortunately, they also come to defend when it is not necessary, and Locutus tends to send too many probes and delay mining too much. Sometimes Locutus pulls probes into the middle of the map and loses them for no apparent reason.

Locutus appears to still be using BOSS for production, because it adds more gateways than it can keep busy, a typical BOSS misbehavior. But Locutus has good macro, so if so, it is using BOSS more carefully than Steamhammer (I’m going to dump BOSS so I don’t care about using BOSS carefully). Locutus can almost keep up with BananaBrain in macro, which points to good skill.

Using BWEB for building placement means that buildings are laid our more nicely than in Steamhammer. Locutus’s base is more pleasant to look at and fits more buildings. It is still possible for dragoons to get trapped between buildings, though. It may be a bug in BWEB, or in Locutus’s use of it. The 2 dragoons on the left in the picture cannot get out.

2 dragoons are trapped

Locutus retains Steamhammer’s recon squad that performs reconnaissance in force. It’s usually good at finding and knocking down undefended expansions. Locutus also retains Steamhammer’s inability to defend its own expansions, leaving it vulnerable to an opponent that also scouts and destroys bases.

Looking into the configuration file, I see 2 nice extensions to Steamhammer’s configuration syntax. The build order is given in the usual concrete Steamhammer way, but a new location allows it to place buildings in its wall. I may adopt the same syntax for Steamhammer itself, when I get to walls.

"pylon @ wall"

There is also new “then” syntax that lets you chain actions together. I take it to mean “then with the same probe, do this next action.” Otherwise the code will assign a new probe, causing inefficient probe movement. You can chain as many actions as you like (or at least, I see an example where Locutus chains 3 actions). I can only assume that it is smart enough to assign a new probe if the first one is lost in the middle of the chain. This is a cool idea that I didn’t think of. It only seems useful for protoss, though.

"pylon @ wall then go scout location"

or

"photon cannon @ wall then photon cannon @ wall"

Overall, Locutus is a promising new bot. It has good ideas and good execution, and it already plays well. The author’s note says that new builds are coming. As Locutus gains more skills, it could become fearsome.

Trackbacks

No Trackbacks

Comments

McRave on :

It appears he ran out of room on the left there, or he added custom BWEB blocks that disregard spacing.

Great bot though, hopefully some new BWEB updates will improve his walls.

Bruce on :

Yeah, it falls back to Steamhammer’s building placement when it runs out of powered BWEB blocks. So I just need to improve the pylon distribution between blocks a bit more, I think.

Dan on :

A great start, and great details you've uncovered. We need more Protoss, so a big welcome to Locutus!

Bruce on :

Hey, thanks for the writeup :)

I think you pretty much hit everything. My first goal was to get a rush-proof forge expand working vs. zerg, so the stuff like the “then” syntax is really just a hack to put worker logic into the build order. I would like to extend it so stuff like “protoss ground weapons then go aggressive” is possible, but for now it only works on building started.

The plan was then to do at least one build order per race before uploading, but when I finished the 5-gate goon build I realized it did really well against most bots, so decided to just go for it. Since there’s just one build order I haven’t enabled enemy-specific builds or the opponent model, but that will come eventually.

The building placement falls back to Steamhammer’s when it runs out of powered BWEB blocks, which happens when BOSS builds 20 gateways. I’ve patched it with a hard cap of 10 gates, which should get it by until I improve the pylon distribution or ditch BOSS. I also did a hack to slow down trying to place buildings when both methods fail, to avoid the timeouts that otherwise hit SH protoss.

I’ve also patched the probe defense so it turns off after going aggressive, which should at least prevent the mass suicides that you noticed, Otherwise the logic is all Steamhammer’s, I was just flipping the bool more aggressively :)

krasi0 on :

Your bot sounds like the bot foundation Antiga has been looking for :)

MicroDK on :

Yah, Antiga has long waited for others to fix the power / timeout problem of SH-Protoss. I have multiple times suggested to use BWEB, and it seems my suggestion was right. ;)

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.