Staredit Network > Forums > General StarCraft > Topic: Starcraft AI Tournament
Starcraft AI Tournament
Jan 20 2011, 9:10 am
By: Lanthanide  

Jan 20 2011, 9:10 am Lanthanide Post #1



I think I made a thread about this a few months ago, but the search doesn't work so I can't be bothered finding it.

Anyway the tournament finished, and this article is about the winning AI and the different things they got it to do by using the bwapi code injection framework. It's a very detailed article and well worth reading.

http://arstechnica.com/gaming/news/2011/01/skynet-meets-the-swarm-how-the-berkeley-overmind-won-the-2010-starcraft-ai-competition.ars/



None.

Jan 22 2011, 5:28 am Heinermann Post #2

SDE, BWAPI owner, hacker.

Not many AIs were prepared for that mass Mutalisk strategy. The krasi0 bot should now be on-par with the Overmind bot. I'm sure other developers have developed anti-mutalisk strategies since then as well.

http://bwapi.googlecode.com
IRC: freenode #BWAPI

If you're interested in using bwapi, updates to bwapi, or AI developer discussions and media, then hop in the IRC channel. Almost all of the time in the channel is spent on BWAPI, AI, and macro/micro/strategy discussions. Users will come and occasionally post images, videos, and live streams. Most of the time discussion is about troubleshooting, like "How do I...?".

The next competition will be held by the University of Alberta for AIIDE2011. Details have yet to be announced.
Additional managed competitions are welcome.

Post has been edited 1 time(s), last time on Feb 21 2012, 1:20 pm by Heinermann.




Jan 22 2011, 11:36 pm ClansAreForGays Post #3



Awesome read.




Jan 22 2011, 11:42 pm NudeRaider Post #4

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Thanks, it was very interesting. Too bad there weren't many videos on youtube that showed AI matches.




Jan 23 2011, 1:54 am Decency Post #5



Really cool, except

If (count(Mutalisks) > 12)
start make(Valkyries)

and you win! Seriously, Valkyries would tear that up so hard. I miss them in SC2. =(



None.

Jan 23 2011, 7:53 pm ClansAreForGays Post #6



IT was SC1




Jan 23 2011, 9:42 pm Decency Post #7



I know... hence you'd make Valkyries.



None.

Jan 23 2011, 10:35 pm ClansAreForGays Post #8



I meant vanilla, but I think I saw charon boosters in one of the replays, so I take that back.

I have no idea why they didn't make valks or sairs.




Jan 25 2011, 7:37 pm Heinermann Post #9

SDE, BWAPI owner, hacker.

Skynet(P) made 1 corsair, and I think it was supposed to make more but failed to do so. It was a failcorsair that micro'd more terrible than you can possibly imagine too.
I know that the krasi0(T) bot was upgraded a lot since the tournament and now includes Valkyries.




Apr 28 2011, 9:57 pm NudeRaider Post #10

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Quote from theleo_ua
UC Berkeley created interesting AI for mutalisk's micro.
So if you have 20000 APM - zergs become imba:)

Proofs:

http://www.youtube.com/watch?v=xaKH03uXeMU&feature=player_detailpage#t=43s
(muta vs dragoons, human play as toss, mutamicro starting at 0:43)

http://www.youtube.com/watch?v=2rqpz2GU9GU&feature=player_detailpage#t=619s
(muta vs archons, mutamicro starting at 10:19)

http://www.youtube.com/watch?v=MkFzsPMf0Ss&feature=player_detailpage#t=492s
(muta vs mech terran, mutamicro starting at 8:12)

http://www.youtube.com/watch?v=j2FH562uaLM&feature=player_detailpage#t=541s
(muta vs goliaths, human play as terran, mutamicro starting at 9:01)

http://www.youtube.com/watch?v=0BS8Mbqbnmk&feature=player_embedded
(uber muta micro vs templars)

http://www.youtube.com/watch?v=ksAk8g7dats&feature=player_embedded
(muta vs invisible wraiths)

http://www.youtube.com/watch?v=C6oYNelOcoU&feature=player_embedded
(just for fun)

You can see APM in top left corner.

You can download and play vs this here:

http://eis.ucsc.edu/BotInstructions

Other info here:

http://eis.ucsc.edu/StarCraftAICompetition

And one interesting thing is that you can watch replays of this AI without any additionsl software (you only need SCBW 1.16.1).

My questions:

1) What do you think about "how this is done"? Neuronic networks? Or real "chess-tree" algorithms?
2) Why this cpu has poor strategy potential? Even middle level human can easily won it: I just made 12 valkyries and all PC's mutalisks died fast. I thought, that Neuronic Networks in "Berkeley's hands" are more powerful...





Apr 28 2011, 10:01 pm NudeRaider Post #11

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

I was following the instructions how to set up a match against one of the bots and partially succeeded.
My problem is when I start Multiplayer - Direct IP - melee. The AI always takes my slot and I can only watch it play against the default sc bw AI.
But I want to challenge the AI myself, what am I doing wrong?

Also what's the deal about "external process" for the Overmind AI? When I run the start.bat provided in the bot folder all I get is errors because the .bat is trying to cd to a non-existant folder in my windows profile and the command "java" is unknown.




Apr 29 2011, 3:57 am Heinermann Post #12

SDE, BWAPI owner, hacker.

It was written in Java, so you need the Java Runtime Environment (JRE). It's a pain in the a** to set up and I havn't succeeded in my attempt.

Quote from NudeRaider
what am I doing wrong?
BWAPI is intended to take full control of the Human player, which allows it to successfully play games against other bots over a network, and even human players that aren't running BWAPI at all, and remaing synchronized.

If you want to play against an AI, then you will have to start two instances, or play over a local network. To run an AI you also need the revision of BWAPI that it was compiled for, and not all revisions of BWAPI may be compatible with multiple instances, more so with the external process setup, but they will be compatible with network play and the newer Direct_IP network module (provided in BWAPI 3.5.4) is backwards compatible.

You could possibly ask someone in the #BWAPI channel on Quakenet to host an AI that you can play against. Some active developers like the top Terran and Protoss from last year's competition have greatly improved their bots and might be willing to allow you to play against their latest build for testing purposes. Because of the Direct IP mode, you don't really need to sign on Battle.net, but I recommend signing up for an ICCup account in case there is some kind of connection issue with the custom network mode.

Perhaps someone can host a dedicated server with some of the AIIDE2011 and CIG2011 competitor bots (yes there are two tournaments this year). The BWAPI version for these tournaments will make it easier to set up automated matches.




Apr 29 2011, 10:57 am NudeRaider Post #13

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Ah okay, so I can't challenge them locally. Now it makes sense. Gonna try and connect to my cold computer then.

I already had Java installed but not in a folder included in %path%. Changing the .bat for the proper folder to cd to and adding my path to java.exe seemed to make it work. It was waiting for a remote connection.

Yeah I first downloaded and extracted the BWAPI 3.5.4 when I later noticed I need a depreciated version of the bots and copied 2.8 over. The direct IP is apparently a remnant of 3.5.4.




Apr 29 2011, 8:44 pm theleo_ua Post #14



Quote from NudeRaider
Also what's the deal about "external process" for the Overmind AI? When I run the start.bat provided in the bot folder all I get is errors because the .bat is trying to cd to a non-existant folder in my windows profile and the command "java" is unknown.

I dont understand too, why some bots need external process

Quote from NudeRaider
Ah okay, so I can't challenge them locally. Now it makes sense. Gonna try and connect to my cold computer then.

You can try VMware, VirtualBox or Virtual PC (if you wanna play vs this AI via single physical computer)



None.

Apr 29 2011, 9:27 pm Heinermann Post #15

SDE, BWAPI owner, hacker.

In addition to loading a DLL, BWAPI has another interface that uses Shared Memory. This allows other languages to join the brawl access BWAPI without creating a DLL, since not all languages support that type of interface that C++ supports (COM and std::set<> for example). There are bots written in PHP, Perl, Java, Ruby, Python, .NET, and anything else you can possibly think of.




May 15 2011, 1:28 pm theleo_ua Post #16



New version of EISbot (played as toss) won this "mutamicro" bot, using only 200 APM: http://www.teamliquid.net/forum/viewmessage.php?topic_id=221209



None.

May 15 2011, 4:15 pm Heinermann Post #17

SDE, BWAPI owner, hacker.

Some bots even reached 50000 APM. I plan to write an optimizer for commands inside BWAPI so that interrupted/duplicate commands are ignored, units are grouped into selections of 12 instead of selected individually, and commands are not saved until the last frame before they are sent over to Storm (Allows better processing of duplicate/interrupted commands over more than one frame).

Otherwise you will see things like...
  • Frame 200: Select 1 Siege Tank (1117)
  • Frame 200: Siege Mode
  • Frame 200: Select 1 Siege Tank (1118)
  • Frame 200: Siege Mode
  • Frame 200: Select 1 Siege Tank (1119)
  • Frame 200: Siege Mode
  • Frame 200: Select 1 Siege Tank (1117)
  • Frame 200: Siege Mode
  • Frame 200: Select 1 Siege Tank (1118)
  • Frame 200: Siege Mode
  • Frame 200: Select 1 Siege Tank (1119)
  • Frame 200: Siege Mode

In a game where commands are only processed every 2 frames (frame 199 becomes frame 200). And units are not grouped.
The best optimization would be:
  • Frame 200: Select 3 Siege Tank (1117, 1118, 1119)
  • Frame 200: Siege Mode

It's like having 12 actions for every 2 that are necessary.
EISBot has only optimized its commands a bit, and I'm sure the optimizer (when completed) can do it even more.
See Issue 281.




May 15 2011, 11:44 pm NudeRaider Post #18

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Quote from theleo_ua
New version of EISbot (played as toss) won this "mutamicro" bot, using only 200 APM: http://www.teamliquid.net/forum/viewmessage.php?topic_id=221209
Well Overmind's strategy is terrible (not only in this game). For some reason he just stops producing lings at some point. Lings + mutas are a pretty solid combo because they cancel out each other's weaknesses and mutas are gas heavy while lings cost no gas.
It's kinda strange that they failed so hard there considering they made such a brilliant base with threat maps weighted resource allocation threads and learning micro and all that.

Another big problem is that Overmind often wastes his mutas by stubbornly trying to harass an army much stronger than him, instead of retreating.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[02:02 pm]
Corbo -- Suicidal Insanity
Suicidal Insanity shouted: I had thought it loads it from the MPQs and parses it, so I was working on re-implmenting that with the MPQ code changes, and then noticed that it does grab the MPQ interface but then ignores it :X
nice
[09:23 am]
Suicidal Insanity -- I also still could use spec sheet for the formats to make sure I am using them correctly - it appears BWscript doesn't have string names? Or they are in a different spot?
[09:22 am]
Suicidal Insanity -- I had thought it loads it from the MPQs and parses it, so I was working on re-implmenting that with the MPQ code changes, and then noticed that it does grab the MPQ interface but then ignores it :X
[09:03 am]
Pr0nogo -- ok, i'll explore that when you have that changed
[08:54 am]
Suicidal Insanity -- if trigedit has such things
[08:54 am]
Suicidal Insanity -- Or maybe change it to a warning
[08:54 am]
Suicidal Insanity -- I just need to disable the verification, then it would allow arbitrary characters
[08:48 am]
Pr0nogo -- would be nice to change that and see if that allows arbitrary characters
[07:24 am]
Suicidal Insanity -- Pr0nogo
Pr0nogo shouted: trigedit won't compile or throw errors, i'll try with the custom aiscript files imported to the scmd mpq
Ya trigedit has the aiscript.bin file added to its resource - it doesn't load it from the MPQs
[06:13 am]
Pr0nogo -- agreed
Please log in to shout.


Members Online: Roy, Nekron, Arta(M), MTiger156, joserholden