archive by month
Skip to content

the economics of bot development

In yesterday’s post, LetaBot commented “Pretty easy to hold as long as you pull back [hurt workers].... After all, you can outproduce the opponent.” Of course the details are more complicated than that; you have to get your workers to coordinate to some degree, at least pulling the right number to fight. But in substance, it’s true. The worker rush is not a sound strategy and can be defeated every time. Worker rush bots so far (Stone, then a LetaBot version, now PurpleTickles and Yuanheng Zhu) have found new wrinkles and scored wins against top veterans, but actively developed veterans quickly patch their defense skills and recover.

Even so, it can make sense to play a worker rush, as an option against some opponents. As PurpleWaveJadien also commented, in a round robin tournament “getting an additional win versus weaker opponents is as good as getting an additional win versus stronger opponents (and easier).” The worker rush makes sense because of the economics of bot development.

Think of it from the point of view of a new bot author. Your creation is freshly uploaded to SSCAIT and it doesn’t have many skills yet, but it does win sometimes. What should you work on next? It depends, but probably basic macro and micro skills will lift your elo rating the most. It’s a cost-benefit analysis; for a given development investment, seek the bigger benefits first. You can put effort into worker defense later, when it becomes a bottleneck skill.

Worker defense in Steamhammer (such as it is) had a bigger benefit than I expected, which means I likely put it in later than I should have. But Steamhammer was already an above-average bot by then, in the top third or quarter of the rankings. For a below-average bot, the benefit is probably small; you will lose most games to stronger opponents by being overrun with too many units because you didn’t keep up in macro, or by mismicro or misreaction due to missing skills. The basics are a better investment.

But as long as many bots are missing defense skills, other bots will exploit the missing skills. They’ll play worker rushes or whatever else is easy for them to code and more difficult, or not yet worth it, for their opponents to respond to.

As long as we have a steady stream of new bots, rushbots and other cheap exploits will make economic sense.

Trackbacks

No Trackbacks

Comments

krasi0 on :

I completely agree with your last statement and I don't share the short-sighted opinion of another bot author who I remember claims that rushes and cheese builds have already been successfully dealt it and are no longer a threat to top bots. In fact, from my point of view, cheese is the area that is going to reap the most benefits when counted as a total number of cases in the long term. At the same time, I expect overall general play improvements (macro, micro and tactics) to only marginally and slowly improve the ELO and relative strength of top bots especially when compared to decent human opponents. In other words, we are about to hit a "glass ceiling" at around the 2500-2600 ELO cap (in the case of AI vs AI) and C ICCUP level equivalent in AI vs human. All that assuming that bot development continues to maintain the current pace.
Of course, a major breakthrough would be able to change all that, but either I am myopic (similarly to the other bot author) or that breakthrough is somewhere far beyond the horizon.

MicroDK on :

I agree! Cheese and rushes will still make economic sense until all bots can deal with it like human would. But since that will not likely happen soon those tactics will still be around for a long time.
Meanwhile, smaller breakthroughs are happening... N00byedge has developed a new combat simulator FAP (https://github.com/N00byEdge/Neohuman/blob/master/FAP.cpp) that bftjoe has already integrated into his SH zerg fork (https://github.com/bftjoe/bftjoe-bot/tree/new-combat-sim/Steamhammer/Source). And I am planning to test it this weekend. :) Rumors say that FAP is faster and handles many more unit types. Also bftjoe says it makes better decisions.

Jay Scott on :

Oh, interesting news. The code is vastly simpler. Instead of fancy player scripts, it has each unit move toward or attack the closest enemy, end of story. On a first look through, I am not sure what the #ifdefs are for. Also I don’t see any sign that the code is used by the bot whose source it is part of. But still, I may be trying it out soon.

MicroDK on :

Yes, you are right. The author does not use FAP himself yet. ;) The #ifdef SSCAIT are for when he i compiling it for BWAPI 4.1.2, the #else are for 4.2.0. bftjoe and I have deleted the #else part.
From my short periode of testing I get the same result as with SparCraft, but it should support more units like bunker and spore. Medics are not yet supported. And in much simpler code! Dureing this weekend I will test to see if FAP is faster with many units. It should not have the 100 units limit though.

Jay Scott on :

Bftjoe, the zerg, has been uploaded again. I notice 1. It has Steamhammer 1.2.3’s reaction to static defense, unlike past bftjoe. 2. It does not have bftjoe’s old behavior of mining out mineral blocks. 3. Unlike Steamhammer, it does not suicide mutalisks into spore colonies. I’m guessing this is Steamhammer 1.2.3 with FAP instead of SparCraft. Are there any other changes, I wonder, or is this a straight comparison?

MicroDK on :

Yes, you are right, but he is updating it with the mining feature, and other bugfixes: https://github.com/bftjoe/bftjoe-bot/tree/new-combat-sim/Steamhammer/Source

Jay Scott on :

Silly me, I checked for new commits to the master branch but forgot to look for other branches.

PurpleWaveJadien on :

https://github.com/bftjoe/bftjoe-bot/commits/new-combat-sim

Joseph Huang on :

N00byEdge prints the value of the sim in his bot, but does not use it for micro or decision making.

The #ifdef part is just due to better contexpr support in VS2017 that he is using, but VS2013 needs the other code. Perhaps it gives a slight speed boost?

Joseph Huang on :

Worker defense is important vs 4 or 5 pools, I think you are underestimating the value here.

Jay Scott on :

It could be! I’ve done it before, despite saying how important it is.

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.