archive by month
Skip to content

new bot Stardust

New bot Stardust (here is its BASIL stats page) is a development of Locutus by another name, by the same author, Bruce Nielsen. I don’t know why the name was changed, especially since the DLL name is still Locutus.dll, the name configured in the config file is still “Locutus”, and the SSCAIT comment says “it will only play as Stardust on SSCAIT. If downloaded it will play as Locutus.” That seems like a confusing choice. It is entered as Stardust in CoG 2020, though. Locutus classic is disabled on SSCAIT.

The most immediate change is that Stardust is updated to BWAPI 4.4.0. The DLL became smaller, perhaps due to dropping libraries.

It is usually difficult to notice changes in a bot’s play by watching games; a change may be obvious if you know what to look for, but invisible if you aren’t ready to see it. Nevertheless, I watched some Locutus and Stardust games and saw an unmistakable difference: Army maneuvering has been improved from UAlbertabot-style moving back and forth along a line to tscmoo-style keeping a constant distance from the enemy front. Keeping a constant distance means that you automatically form up into a concave when possible; when combat starts, whether in attack or defense, units are able to open fire almost simultaneously, with no maneuvering into position, so you do more shooting and less moving and kill enemies faster. It’s a big change and I expect it must have been in gestation for a long time.

There are disadvantages to the tscmoo style, but overall, Stardust’s formed-up armies should outdo Locutus’s jumble of units by far. I expect Stardust to reach a higher elo.

With a big change like that, there are likely smaller changes too that I did not see. I didn’t archive a recent Locutus version to compare, so I can’t draw a final balance. Comparing with the CoG 2019 version from a year ago, I can see some of the features added in the past year: Center proxies, a dedicated squad to chase down the enemy scout, the choke (as opposed to the wall) as a building location. But I don’t think any of those are recent additions.

My forecast: We used to think Locutus was scary. Now we’ll learn better.

Trackbacks

No Trackbacks

Comments

Antiga / Iruian on :

It's a completely from scratch bot he's been working on it two years I think since we first heard about it? Lots of glimpses along the way. Completely new bot from the ground up / entirely new development environment that is amazing as well (some of which was covered on podcasts / twitch streams).

Jay Scott on :

It doesn’t look like it’s from scratch, it looks like what I called it, a development of Locutus. That is both in the binary that I downloaded from SSCAIT, which shows great similarities, and in its play as far as I’ve seen. Watching the few losing games shows that it retains some of Locutus’s long time weaknesses.

Antiga / Iruian on :

It was actually playing sneakily under Locutus's name on SSCAIT over a month ago... most people didn't notice.

Bruce on :

Antiga is correct, Stardust is a new bot developed from scratch that I've been working on (as time permitted) since shortly after AIIDE 2018. When I started in bot dev I chose to fork another bot to kind of test the waters and see what it would be like without investing an inordinate amount of time in it, but after that half year or so I was hooked, so it made sense for me to invest the time in making a bot that was completely my own. Of course as luck would have it I almost immediately afterwards had much less time to work on my bot, so what I expected to have ready for COG 2019 is coming now instead, but such is life. I've put some hours into keeping Locutus competitive for tournaments in the meantime, but otherwise most of my time has been put into Stardust.

The explanation for the DLL is that I wanted to publish the bot so people could see it play, but didn't want my competitors to be able to do offline training against it until after the AIIDE submission deadline. So the bot uploaded to SSCAIT is Locutus with the Stardust DLL included as an embedded (and encrypted) resource - if the decryption key is in the read directory (as it is on SSCAIT), the Stardust DLL is extracted and used, but otherwise it plays as Locutus. So if you've looked at games played locally, you are seeing Locutus, while games on BASIL (and SSCAIT, when it's online again) are Stardust.

You noticed one of the big changes, unit movement. Stardust is using boids for a lot of movement, which includes keeping moving or retreating armies together (flocking), holding chokes more intelligently, and providing the fan-out / keep distance goon micro. This seems to make the most difference when containing an enemy with static defense and siege tanks, as Stardust is already much better at this than Locutus despite not really understanding splash damage or bunkers yet.

Under the hood there is an entirely new production system that is not based on build orders. The strategy engine tells the producer what units it wants in what order and the producer figures out what to build and when to fulfill this. I suppose this is similar to BOSS, but it is using a different approach that is much faster so everything can be recomputed every frame. This allows the bot to shift gears very quickly in reaction to what the enemy is doing without floating resources, though often the build orders will be a bit suboptimal (e.g. not delaying a probe slightly to get the first zealot out earlier).

This version is still quite primitive in unit composition and strategies (similar to Locutus in this respect), and there are features from Locutus that haven't been ported yet (like forge expand walls), but the strong reactions instead of relying on learned counter-openings has I think already made it stronger than Locutus. It likely won't change much for AIIDE with the deadline only a month or so from now, but should soon be ready for some higher-tech units.

Jay Scott on :

Wah, subverting the information sharing rule by elaborate technical means! What does SSCAIT think about that? If I had that goal I would have restricted testing to environments that publish nothing of the bot.

Quatari on :

SSCAIT doesn't have an information sharing rule, as far as I can see from the Rules page. AIIDE and CoG require (non-obfuscated) source code, but SSCAIT doesn't, with the exception that they require the author to upload source code for the initial version of their bot. Also, SSCAIT explicitly allows the author to upload a read folder but that the "contents of the read/ and write/ folders are only accessible to you".

Jay Scott on :

Yes, this tricky dodge doesn’t seem to technically violate any explicit rule. It violates the expectation that others will be able to download your binary and run it, missing only any prepared data that may be in the read folder.

Bruce on :

Interesting, I hadn’t considered that this aspect would be controversial, so I’d be interested in hearing whether others have the same reaction.

My motive for uploading to SSCAIT in this way is purely to support the stream, as it would clearly have been easier for me to just upload it to BASIL and leave it at that. If the general consensus is that this is an underhanded move, I’ll of course take it down again. Certicky has previously indicated he didn't have a problem making download optional, so I don’t think he would oppose this, but the opinion of the community is just as important.

The bigger dilemma for me has been deciding what and when to release. I was burned a bit by being too open in 2018, which both caused the explosion of forks at AIIDE and cost me the chance of a top three result (CSE played a specific opening to counter Locutus' reactions, and I think I would have been more competitive against SAIDA and CherryPi if they didn't have a recent version to train against). So from a purely competitive standpoint there is an argument to only make the bot public at the AIIDE and SSCAIT submission deadlines and leave it at that. But on the other hand I think it hurts the community to have bots only updated once or twice a year, so I went for the compromise solution of making it public, just not for offline training. After the AIIDE submission deadline I will of course make it available for download as usual and upload it to SCHNAIL.

Quatari on :

I think historically, the SSCAIT website had no links for downloading bots - that function was only added after a several years. Unfortunately, adding that function led to the expectation that if you downloaded a bot, it would play the same way when run locally as on SSCAIT. It also dis-incentivized the more secretive authors that are mainly interested in the annual tourney from keeping their bot up-to-date on SSCAIT, except for just before the deadline, because they could play against most bots locally beforehand.

Personally I think a note should be added to the SSCAIT Rules page to make people aware that it is acknowledged that some bots might play differently depending on the environment, so might play differently when run locally than on SSCAIT. E.g. because they are coded to play differently based on files that the author uploading has uploaded to the read folder, or because the bot checks what environment it is running on. CoG has rules that attempt to minimize the ability of authors to do this kind of thing, by having rules that forbid retrieving system or user info. Most other competitions/ladders don't have rules like that though. It would be almost impossible to enforce for closed-source competitions/ladders like SSCAIT though.

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.