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.
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.comIRC: 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.
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.
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.
I know... hence you'd make Valkyries.
None.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.