archive by month
Skip to content

the trend to switching races

There’s a trend for established bots to come out with a version playing a different race, or playing random. Why is that?

racebotauthornew racenew name
terranNavinadSungguk ChazergZia
terranUPStartCraftAI(team)zergUPStarCraftAI 2016
zergSteamhammerJay ScottrandomRandomhammer
protossMcRaveChristian McCraveterranSparks
zergbftjoeJoseph Huangterranbftjoet
terranTyrSimon PrinsprotossTyrProtoss
WOPRterranSoeren KlettzergWOPR Z
protossPurpleWaveDan GantrandomPurpleCheese
protossPurpleWaveDan GantterranPurpleSpirit

Tscmoo was the first established bot to come out with a new race as a regular thing, as far as I can tell from records. Am I missing one? The next was Zia by Sungguk Cha. Both of these were before any visible trend started. I can imagine that Randomhammer may have started the trend; it was close enough in time.

The work I spend to make sure that Steamhammer can play every race—to make Randomhammer—definitely slows down the progress of Steamhammer’s zerg. Without the side work, Steamhammer by now would have fewer bugs and at least one major feature more from my to-do list, such as opening learning or decent mutalisk usage (possibly both). I wrote about the cost of playing random in going random. If you’re aiming for the strongest play, don’t switch races unless you think you can make the new race stronger. And even then, don’t underestimate the time and difficulty of bringing a new race up to speed. Few of the off-race bots have caught up with their parents.

So why the trend? Of course different authors may have different motivations, but there’s a coherent trend so likely there is one main underlying reason. I thought of a few, but I don’t know the answer. 1. People (suddenly) want more variety and less slogging down the same old path? (Probably not.) 2. Other bots are switching races, and it seems cool? (Call it “popularity inspiration.”) 3. The stronger community discussion this year means that more ideas circulate, and people want to try them? (“Idea inspiration.”) 4. Or the stronger community inspires people to contribute more to the community. ("Contribution inspiration.") 5. Authors believe they can do better by switching. (Maybe in some cases.) 6. There is more stuff going on in total this year, so more race switch bots come up too as part of that.

For TyrProtoss, Simon Prins can tell us his thoughts if he likes, but I have a guess: I suspect that the old codebase was getting clunky, and he wanted a fresh start. That explanation doesn’t fit most of the switchers, though. For Randomhammer, my goal as I see it now is more to lift community standards and reach the highest ultimate level of play than to reach strong play in the shortest time. I often leave important weaknesses unaddressed for a long time, because I want to fix them later as part of a major new feature; fixing them right away I see as a slowdown. A full-featured starter bot that can play all races reasonably well helps lift the community. A bot that is designed for customizability and releases its source will have a hard time staying on top for long!

Other ideas? What do you think? Maybe some of the authors will tell us.

Trackbacks

No Trackbacks

Comments

Antiga on :

Something to consider is that for most human tournaments random play is prohibited as the amount of cheese that can be produced while playing random is exceptionally difficult to block over the course of a series of games.

Also given that opponents have to open in such a way to block cheese from all 3 races, you can open with a build that hard counters their counter giving a further advantage.

Long term imo randombots will be the strongest as far as win rate % but so far exploiting those advantages in bot play has been somewhat tenuous.

krasi0 on :

That's a good point and one that I've been thinking about for a while now. A couple of weeks back, I expressed my concerns to Michal C. about allowing bots to pick Random during the elimination phase of the following tournaments. My advice back then was to allow bots that play Random to participate in the round robin phase, but once the elimination phase starts, either don't let them in or force each such bot to play only a specific race. Some of my reasons were similar to why it's forbidden in human tournaments.
Case in point: I could just add two cheese strategies (say 5 pool for Zerg and a proxy GW rush as Protoss) to my already defensive Terran bot and submit a "Random" entry to SSCAIT. I would imagine that any non-Random bot would be at a big disadvantage against me in this case.
All in all, the relative bot strength of entries such as Randomhammer and Tscmoo (if it switched Random) is way too high now, so if we don't have the above mentioned ban implemented for the next SSCAIT tournament, I'll be forced to submit that cheese Random entry and it'll all get very ugly really soon. We wouldn't really want to watch another ugly downer (final) as the last one, do we?

Jay Scott on :

It’s a point to keep in mind. In my view we don’t need to worry about it yet in bot tournaments. I think it’s bad luck to add rules to prevent hypothetical problems. Wait for random bots to become a real problem. If it ever happens, then make a rule.

LetaBot on :

I agree. After all, random bots have never won any major AI tournament

krasi0 on :

Except this year, the necessary prerequisites are finally met for a random bot to win?!

jtolmar on :

My bot isn't even ready for the ladder yet, but I already know I'll want to make it play all races decently. One of my big goals is to run a build order planner for my opponent and make decisions based on what it thinks they're capable of, which implies first being able to use a planner for every race. Even without planning on doing something like that, understanding the other races better is a possible motivation to make bots for all of them.

McRave on :

I made Sparks with the intention of putting only a build order and minor changes (required for Terran specific) to see if it could even play. I spent less than an hour on the first iteration, so it was a test of using McRave as a platform and seeing how it performs.

PurpleWaveJadien on :

I've intended PurpleWave to be able to play all races from the beginning. It's designed to be a framework for implementing any strategy for any race as an alternative starting point to UAlbertaBot, AIUR, etc. It was time to demonstrate that!

Jay Scott on :

It sounds like everyone has their own reasons. Maybe the reason is something like 6: More things are happening, so more alternate races are happening.

Simon Prins on :

I'm still using the same code base for my Protoss bot as I use for my terran, and it's only getting clunkier. ;) I remember when I first uploaded to SSCAIT there was no Random option, and I was rather dissappointed. I have never been able to stick to one race for very long when playing myself, often switching and also frequently playing random.

As to why I chose protoss specifically, I liked the opening learning for my terran bot, but I found the options to choose from as terran a bit limiting. Protoss has a lot of good cheese options, and I believed that combining those with more long term focused options would be very strong.

Joseph Huang on :

It's pretty boring to look at the same race all the time for testing.

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.