archive by month
Skip to content

SSCAIT scores - crashes

In the SSCAIT data, some scores are recorded as 0 or -100. I think 0 means that the bot scored no kills and no razings, so the game finished very early. Bots might legitimately lose with no kills against a rush, but I have to guess that in many cases it means the bot failed to start up or failed to do anything. I think -100 means the bot crashed. I also think that exceeding the time limit per frame ends the game without changing the scores, so -100 only means crashes, not time infractions. I don’t promise that my interpretation of the numbers is correct! I could be wrong!

Anyway, assuming that my interpretation is right, this table of -100 scores should tell us about reliability. Like yesterday, I include only games after 17 August, so that distant versions of the same bot are not lumped together. The game counts are different from yesterday, because yesterday’s table excludes games in which either side has a score of 0 or -100.

“Crashes” are games in which the bot had -100 score. “Double crashes” are games in which both sides had -100 score. “Fast crashes” are games in which the opponent had 0 score, so the crash must have happened very early or when the opponent failed to achieve anything. “Max opp score” is the largest score that the opponent had in any game where the bot crashed. “Other crashes” are crashes where the opponent has a positive score (all crashes except double crashes and fast crashes). “Mean pos opp score” is the average of the opponent’s score in these other crashes. Large opponent scores mean that the game went on for a long time before the crash. Since a crash scores as -100, there is no way to tell whether the bot was ahead or behind when it crashed.

botgamescrashescrash %double
crash %
fast
crash %
max
opp
score
other
crash %
mean
pos
opp
score
krasi039410.25%0.25%0.00%-1000.00%-
Iron bot33182.42%1.51%0.00%72250.91%4367
Marian Devecka302309.93%0.33%0.00%1291109.60%52320
Martin Rooijackers33620.60%0.60%0.00%-1000.00%-
tscmooz33030.91%0.91%0.00%-1000.00%-
tscmoo33210.30%0.30%0.00%-1000.00%-
LetaBot CIG 201631810.31%0.31%0.00%-1000.00%-
WuliBot30430.99%0.99%0.00%-1000.00%-
Simon Prins318195.97%2.52%3.46%00.00%-
ICELab334123.59%0.30%0.30%35002.99%2960
Sijia Xu28510.35%0.35%0.00%-1000.00%-
LetaBot SSCAI 2015 Final338288.28%0.89%0.59%608506.80%16196
Dave Churchill3230.00%0.00%0.00%--
Chris Coxe22310.45%0.45%0.00%-1000.00%-
Tomas Vajda317165.05%0.63%0.32%1184354.10%44220
Flash30620.65%0.65%0.00%-1000.00%-
Zia bot3273310.09%0.92%1.22%450957.95%23120
PeregrineBot1570.00%0.00%0.00%--
tscmoop32820.61%0.61%0.00%-1000.00%-
Andrew Smith33451.50%1.50%0.00%-1000.00%-
Florian Richoux3083110.06%0.97%0.32%574058.77%14962
Carsten Nielsen34741.15%1.15%0.00%-1000.00%-
Soeren Klett28420.70%0.35%0.35%-1000.00%-
Jakub Trancik3180.00%0.00%0.00%--
Tomas Cere34530.87%0.00%0.58%818250.29%81825
MegaBot3055417.70%1.31%2.95%9245013.44%16394
Aurelien Lermant34941.15%1.15%0.00%-1000.00%-
Odin2014183179.29%0.55%1.64%386007.10%22077
Gaoyuan Chen3290.00%0.00%0.00%--
DAIDOES13685.88%0.74%0.74%17504.41%4742
Igor Lacik144139.03%0.69%0.00%541008.33%13421
Matej Istenik32310.31%0.31%0.00%-1000.00%-
NUS Bot13732.19%0.00%0.00%341752.19%22400
Roman Danielis30430.99%0.99%0.00%-1000.00%-
ZerGreenBot362569.44%2.78%8.33%3702558.33%22087
Ian Nicholas DaCosta15010.67%0.67%0.00%-1000.00%-
AwesomeBot164169.76%1.22%1.83%278506.71%7968
Johan Kayser30610.33%0.00%0.33%00.00%-
Martin Vlcak1511912.58%0.66%11.92%00.00%-
Rob Bogie1350.00%0.00%0.00%--
Christoffer Artmann3435215.16%0.58%11.95%7002.62%300
Marek Gajdos1756838.86%26.29%12.00%1000.57%100
Travis Shelton1550.00%0.00%0.00%--
Bjorn P Mattsson2883612.50%0.00%12.50%00.00%-
Vladimir Jurenka3493710.60%1.43%2.87%4006.30%264
neverdieTRX17010.59%0.59%0.00%-1000.00%-
OpprimoBot3515114.53%0.57%1.42%3882512.54%17424
Sungguk Cha32016852.50%1.25%4.69%6067546.56%17463
Jacob Knudsen1775631.64%0.56%3.39%1775027.68%5957
HoangPhuc15111576.16%0.66%5.96%3805069.54%10765
ButcherBoy1423524.65%0.70%7.04%1000016.90%1364

The top bots are mostly reliable—except Marian Devecka’s Killerbot. My impression from watching games is that Killerbot may crash when losing. It makes sense that bots should crash less often when winning, because bot authors have more reason to fix crashes that lose winning games. The bottommost bots are all crash-prone. Not a coincidence, is it? Step 1 to a winning bot: Fix your crashing bugs!

We might imagine that double crashes are caused primarily by the game or some other part of the runtime system, but the high rate of double crashes by Marek Gajdos makes me question that. What is that bot breaking?

Tomorrow: I’ll try to correlate scores with ratings, one way or another.

Trackbacks

No Trackbacks

Comments

krasi0 on :

I've just received another epiphany. You are aware that there are two types of bots wrt architecture, right? Module based (a single .DLL file injected into the Broodwar process) and Client based (connected to BWAPI via shmem, e.g. bots that are distributed as .exe or .jar, etc.). Unfortunately, I can't find the web page (a part of the old docs) that has this explained in a nice way.
Anyway, my point being, if a .DLL module crashes, that means that Starcraft crashes, too. That's probably the case where the score for that bot is recorded as -100. OTOH, if a Client based AI crashes, this only results in the bot player not executing any more commands but the actual game goes on until that inactive player gets eliminated or a timeout occurs.

Now, there are two cases with the crashes of a client based AI:
1) at the start of the game, which means a score of 0;
2) at some point during the game itself;
I doubt that the tournament manager can detect the second case at all due to the many types of client bots: java based, C++ based, python based, etc., so it's likely that case 2) is recorded as a regular loss (if the opponent somehow managed to finish off an inactive player),
while case 1) is probably logged as a crash with score of 0.
What are your thoughts?

krasi0 on :

So my hypothesis is that “Fast crashes” refers to case 2) above - of a client based AI. I remember having observed such games. The workers of the bot in question don't move at all and after a minute or so of in-game time, the game is stopped by the tournament manager and a crash is recorded for the non-started bot.

Jay Scott on :

Oh, that makes perfect sense. And SSCAIT will tell us dll vs. client, so it is a testable hypothesis. I haven’t looked yet.

ButhcerBoy Author on :

Hey Jay, one of the developers of the ButcherBoy bot here. The bot was part of a student project and put up on the tournament to see how it fared against other bots.

We know when it crashes, it happens whenever it makes a gas mining station on a windows 7 machine, however it does not happen on a windows 10 machine. Because our testing environment was all windows 10 we did not know about this bug but found it after the bot started crashing on the tournament (we can see that it runs on a windows 7 machine). The project has ended so the bot will not be updated, also because we cannot very easily reproduce and test this crash, so that is a reason for that bot crashing.

Great article though, really enjoying what you're writing about the bots :)

Jay Scott on :

Yeah, software fragility is a real problem, with Brood War being so old and BWAPI an unofficial product. :-(

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.