archive by month
Skip to content

experience with SCHNAIL

I’ve been keeping an eye on SCHNAIL by Sonko for human-machine play. The interface is not pretty like BASIL, but it works. Few games are played, by comparison with SSCAIT and BASIL; on the days I counted games, between 64 and 111. Humans—it’s shocking but true—are somewhat slower than computers. A game on SCHNAIL can be “practice” or “ranked”, with different rules. Sonko was surprised early on that nearly all games were practice. I guess it makes sense while people are first trying out something new. Today most games are still practice games, but there is a good mix of ranked games too and most bots seem to have properly established ranks which are not very different from their ranks on BASIL. The ratings look different, though, since the midpoint is 1500 instead of 2000—and humans are better, so the bot ratings are mostly below 1500. The ratio of practice to ranked games varies depending on how popular the bot is to practice against: BananaBrain is popular and has 12% ranked games, while tscmoo is not and has 61% ranked. Some bots have few total games and no believable ranking, probably because they don’t work reliably, and probably should be removed from the rankings.

SCHNAIL supports 22 maps, at least notionally: The 15 SSCAIT maps (including Electric Circuit, which is disabled on SSCAIT) plus a handful of newer maps. I was not able to find any successful games on the maps Tres Pass or Core Breach. Perhaps they use features from Broodwar Remastered? Or do so few bots support them that none has succeeded there yet? The bot upload page comes with checkboxes so you can specify which maps the bot can play on. I didn’t realize at first that the checkboxes scrolled; a more rectangular arrangement would be easier to use. Anyway, my uploads are set to play on all maps except the two broken ones and Electric Circuit, where they run into pathing trouble.

In a practice game you choose your opponent; in a ranked game, SCHNAIL makes the match, trying to choose a bot near the human’s strength when it can. I thought there was an element of randomness in the ranked matchmaking, but if so apparently it is not a large element. I often see streaks where the human is matched against the same bot repeatedly. It makes a difference, too; humans learn fast and adapt their play to what they are facing, and I sometimes see the same pattern in ranked games as in practice games, where the human loses several times and then figures out how to win.

Steamhammer has only a handful of games since it was updated; most days it does not play at all. Nevertheless, some of the games are ranked games, and its rating has climbed. In ranked games SCHNAIL is still matching Steamhammer against players below its current strength, and its rank will likely keep climbing for a while.

The weaknesses I see in Steamhammer’s play versus humans are about the same as the ones I see in its games against other bots. But humans pick up on weaknesses more easily, and exploit them more consistently, so the weaknesses look bigger. It’s useful, actually. I have changed some priorities after seeing games. One protoss at first struggled against Steamhammer’s macro, but after a few games realized: Put a little pressure on, and then Steamhammer can’t defend its expansions, hydras don’t think they can get there. A couple more games, and it was: Cannon the expo while zerg can’t respond, then maybe take it for protoss. Bots aren’t that smart!

Randomhammer was indeed a newer version than Steamhammer at first, explaining why it was rated a little higher. Since then I’ve updated them both, of course. I had to ask to be given control of Randomhammer, but it was no trouble. Randomhammer has no games since it was updated. Human players may be different, but BASIL provides the best available forecast: The win rate graph shows protoss not far below zerg, with terran stuck in the mud far behind. I think the big difference must make terran less fun to play against.

Crazyhammer is a just-for-fun Steamhammer zerg configuration that I uploaded to SCHNAIL yesterday. It is set to choose randomly from its library of over 200 zerg openings, paying no attention to the matchup or the map or anything. I set it to practice-only, since it is in no way competitive. Play a game and be surprised; Crazyhammer might accidentally play something sensible, or it might play a protoss build like 4 hatches before lair against your zerg.

Will it be ordinary 2 hatch muta—or queen rush, or 5 hatches before pool, or 7 pool hydra rush, or...? Chooses utterly at random from a huge library of sensible and insane builds. For weirdness!

As a taste, there are 2 builds starting with 4 pool, 3 with 5 pool, 5 with 6 pool, 8 with 7 pool, 4 with 8 pool, and 18 builds with 9 pool. If I counted right. At the opposite end of the macro spectrum, there are 4 builds with 5 hatcheries before pool, 1 with 4 hatcheries before pool, and 11 with the more reasonable 3 hatcheries before pool. The bulk of the options lie between the extremes. Most of the openings counter something and make sense in some situation, however rare, but a few are pure nonsense thrown in for the hell of it. The two-base ultralisk rush has no known use, and the 7 pool mutalisk rush might beat you if you are a sworn pacifist. Some of the ideas I have never seen anywhere, from bot or human. I hope players will enjoy sampling a little of the prodigious variety.

Crazyhammer has been chosen for 1 game so far, a ZvZ where it went with a perfectly sober 10 pool, scouted the wrong way so that it failed to react to the enemy, and lost easily. Not crazy enough.

Trackbacks

No Trackbacks

Comments

Dan on :

OpenBW replay viewer can't handle Tres Pass; this was an issue for AIST3 preparation as well. The map certainly works correctly in 1.16.1. My bot had Tres Pas enabled on SCHNAIL and played games there; I haven't watched any but I know from AIST3 preparation that it had no issues on the map.

Core Breach is a modified version of Inner Coven, but given how unusual that map is I would be surprised if any authors had it enabled.

I took the opposite approach as CrazyHammer and disable builds against humans which I think humans are likely to stomp (like that one hatch hydra build against Terran), and I think more authors should do the same. It's a bad experience for the human player to play a game where the bot's strategy is so inappropriate that the game isn't interesting. I've seen those kinds of games lead people to conclude that our work isn't any better than the original built-in AI and lose interest. People have limited time to play games and have to form their opinion of our work based on very few samples, so I think it's important to maximize the value of their time.

Jay Scott on :

Disabling silly or purely-exploitive builds does make sense. I would prefer to do it with data rather than by hand, but....

Jay Scott on :

Sure enough, Steamhammer can play on both Tres Pass and Core Breach, though it treats Core Breach as an island map and plays horribly.

Still thinking that I won’t enable Tres Pass, because it’s so much nicer to click the link to watch the replay.

Dan on :

Yeah, I also disabled Tres Pass for that reason and because it was a barrier to debugging any issues that get reported there.

Dan on :

On further reflection, practice-only mode addresses all the issues with that approach. Gogo crazy builds!

Sonko on :

Hi Jay,

As for matchmaking: The matchmaking algorithm was changed a few times, so don't expect any pattern there. It weighs player ELO and matches you with an opponent closer to your skill more often. The first iteration was lolrandom, then weighted random, then a refined version of that.

Tres Pass was enabled, and PW did see some play on it at one time.

One planned update is that in practice mode, you can pick a certain build - if you want to practice against nuke rush, go wild. Of course, these would be defined by the authors.

Jay Scott on :

I’m looking forward to the build selection feature... though I’m wondering how many builds I should expose. :-)

I suggest dropping documentation of schnail.env and any other bot features on the Bots page on the website. Make everything easy to find up front.

Sonko on :

In progress :) Here is a bit unorganized preview:
https://schnail.com/#/devportal

There is an overhaul of the website in the works.

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.