A programmer friend of mine kindly left this on my Facebook wall this morning:
The Expressive Intelligence Studio at UC Santa Cruz will be hosting a StarCraft competition at AIIDE 2010:
The 2010 conference on Artificial Intelligence and Interactive Digital Entertainment (AIIDE 2010) will be hosting a StarCraft AI competition as part of the conference program. This competition enables academic researchers to evaluate their AI systems in a robust commercial RTS environment.
The competition will be held in the weeks leading up to the conference. The final matches will be held live at the conference with commentary. Exhibition matches will also be held between skilled human players and the top performing bots.
I'm curious as to who the "skilled human players" will be. Maybe it's...
Hey look! It's Bisu!
Registration seems to be open until next September, so it'll probably be a while until AIIDE 2010 actually takes place. Just thought some people who like SC and programming would be interested - although it's kind of unclear as to who can participate ("participants" lists a few schools, so it might be exclusive to those schools only).
Tournament 1: Micro-management (small groups of units on flat terrains) Tournament 2: Small-scale Combat (Stage 1 + Interesting terrain) Tournament 3: Tech-limited game (StarCraft minus some of the more complex tech) Tournament 4: Complete StarCraft game
EDIT: The competition's also been slashdotted, where it's being discussed by various people who don't know too much:
Perhaps a game not so dominated by rushing tactics would be a better choice of base game? It definitely seems an interesting idea, but there must be games better suited to an AI contest like this...
This is pretty cool. It would be nice to see some experienced programmers enter the community of AI programming to bring out the potential of BWAPI which these guys have been working on for a very long time.
But make no mistake, creating an AI like this is not something you'll pull out of a hat within a couple of months. This will be a tremendous workload and an incredible challenge.
A semi-similar project I beta tested for Dawn of War, called Dawn of Skirmish, introduced things like advanced dancing and better pathing and stuff like that. Not nearly as complicated as this, and that was in Lua. It was created by a strong team of programmers, and it took them years to reach what they have now.
But you could always create an AI aimed for a very specific bracket, like the micro challenge, which would be a lot easier than trying to make an all-around AI.
I'm really not sure about the AI community for SC and how active it has been in the times since the game was initially released. There are other RTS games that I know have extensive AI-building communities that I have always considered dope as fuck. I'm really pleased to see this announcement and I'm interested to hear what comes of it.
Has there been an AI developing community surrounding StarCraft since its release? Is making AIs easy (like it is in AoK for example)? I really hadn't thought too much about SC AI because I have treated the game more seriously competitive than other games in the genre, which of course it is.
On November 13 2009 07:37 Jyvblamo wrote: They better not pick some D- noob as the 'skilled human' player.
Ugh, I have a bad feeling about this lol. Reminds me of someone who wrote an "article" about an AI competition by using an FFA on BGH or something like that.
To make a good AI for starcraft you would need to know build orders for each match up. scout and detect what your opponent is making. Then play accordingly to what your opponent is doing.
This requires you to be at least D+ just to make good AI for starcraft. So the people who play SC competitively have an advantage.
What maps are being used for the complete games? I don't know much about AIs, but wouldn't the fact that the games are played on 1 map make it much easier to program?
On November 13 2009 08:08 thunk wrote: What maps are being used for the complete games? I don't know much about AIs, but wouldn't the fact that the games are played on 1 map make it much easier to program?
Check out the info of the tournament sections. They contain the map pools.
For the full games, they're Bo5 and the maps are supposedly,
I was thinking of getting into this. I was looking at the API and you can assign orders to individual units really easily. Instant mine killing DTs and pefect Vulture Micro sounds pretty sweet.
o.o if they could make some decent ai, wouldn't this open up the possibility to decent practice partners? (i know it can never replace a human but better than what we have now xD)
I'm thinking if you're playing against T as zerg or protoss, you just rush in the beginning with 5 workers and do perfect hit and run micro on the scvs.
On November 13 2009 09:03 AssuredVacancy wrote: I'm thinking if you're playing against T as zerg or protoss, you just rush in the beginning with 5 workers and do perfect hit and run micro on the scvs.
More realistic examples of this, such as perfect vulture-versus-zealot micro when you have 20 vultures instead of 2, perfect storm placement, perfect muta micro, et cetera, will probably be the only thing that allows a non-learning AI to compete with a skilled (Flash-level) player. The real challenge, in my mind, would be teaching things like anticipation; a human player can draw a lot of information from something as subtle as what direction a unit is coming from or how many zerglings he sees or whether a cybernetics core is spinning. How do you teach an AI to make the same judgments?
On a similar note, how do you teach an AI when to tech switch to carriers, or when to go with ultras instead of defilers, or how many factories to add?
if you could teach to ai to manner cc or proxy hatch or mind control bm when its winning by a large margin, then i think it'd be auto-win. it's discouraged, but only because games would be too short.
The students/advisors working on this have impressive resume's and there must be a dozen phd's in the group. So these guys aren't your everyday hobbyists. This will be interesting to see what comes of this.
On a not so grandiose scale, Entropy and I have been running an AI vs. AI competition for the past 5 years. It isn't as complex as this, but it has been fun for us non-programing, everyday folks. Definitely "home brewed" and worth a check out. Panda Zerg, Archon_Wing FE Protoss, and Racine's Terran are especially noteworthy. BWAIWar4 @ BWAI.com
i would really love some decent AI's to play against when im not in the mood for human interaction ! These blizzard programed scrubs just arent doing the trick ! There used to be some fun Ai's back in the day but they would just periodically gain a mass of units, or to simulate a lurk drop they would just spawn 4 in your base, it was all predictable but it would still make for some good fun, and i would still be using those entropy bots if they worked on icc ^^
On November 13 2009 10:30 Bajadulce wrote: On a not so grandiose scale, Entropy and I have been running an AI vs. AI competition for the past 5 years. It isn't as complex as this, but it has been fun for us non-programing, everyday folks. Definitely "home brewed" and worth a check out. Panda Zerg, Archon_Wing FE Protoss, and Racine's Terran are especially noteworthy. BWAIWar4 @ BWAI.com
Oh god don't tell people about the toss that Forge FE's against Terran but doesn't against zerg >.< (It was changed but I'm too lazy to submit anything else) It's just that the terran comp w/o micro can't handle cannons. Nor can it micro goons for shit, but yea. =d At least it can beat zim, I'm sure.
I'm not very familiar with BWAPI but I recall it being able to display text strings (make comp talk) but it took me 20 minutes just to make it call me a noob.
For regular scripting I know it's possible with debug strings and have it talk when a condition is met. The AI can detect units or buildings, as well as your race. It can also detect its own building, meaning you can find a way to BM more when it's losing (say, no Command Center) So you can make race specific insults, or inform the player that building carriers is a valuable skill. It can be randomized too. For some reason, there's also a command that crashes the game; apparently you can get an AI to crash hack. :D
But of course BWAPI seems to be able to detect more of this far better, so yea it could be pretty funny.
someone needs to make a zerg one that just 4 pools and bm's "LOL S**TC**T" whenever it has X ammount of kills pretty much securing its victory or says "f**k you" and leaves if u loses its first 8 zerglings wihtout X amount of kills.
On November 13 2009 09:03 AssuredVacancy wrote: I'm thinking if you're playing against T as zerg or protoss, you just rush in the beginning with 5 workers and do perfect hit and run micro on the scvs.
More realistic examples of this, such as perfect vulture-versus-zealot micro when you have 20 vultures instead of 2, perfect storm placement, perfect muta micro, et cetera, will probably be the only thing that allows a non-learning AI to compete with a skilled (Flash-level) player. The real challenge, in my mind, would be teaching things like anticipation; a human player can draw a lot of information from something as subtle as what direction a unit is coming from or how many zerglings he sees or whether a cybernetics core is spinning. How do you teach an AI to make the same judgments?
On a similar note, how do you teach an AI when to tech switch to carriers, or when to go with ultras instead of defilers, or how many factories to add?
Alot of Bw AI is hard coded, so no you can't have perfect micro. Infact you can't really change the way the AI micros at all.
I probably won't submit an entry to this (although I might change my mind if I take an AI course between now and the deadline), but I'll definitely be grabbing their example code and having some fun. I had no idea BWAPI gave you that level of control.
On November 13 2009 09:03 AssuredVacancy wrote: I'm thinking if you're playing against T as zerg or protoss, you just rush in the beginning with 5 workers and do perfect hit and run micro on the scvs.
More realistic examples of this, such as perfect vulture-versus-zealot micro when you have 20 vultures instead of 2, perfect storm placement, perfect muta micro, et cetera, will probably be the only thing that allows a non-learning AI to compete with a skilled (Flash-level) player. The real challenge, in my mind, would be teaching things like anticipation; a human player can draw a lot of information from something as subtle as what direction a unit is coming from or how many zerglings he sees or whether a cybernetics core is spinning. How do you teach an AI to make the same judgments?
On a similar note, how do you teach an AI when to tech switch to carriers, or when to go with ultras instead of defilers, or how many factories to add?
Alot of Bw AI is hard coded, so no you can't have perfect micro. Infact you can't really change the way the AI micros at all.
That is true of current scripting, which is very limited, but BWAPI http://code.google.com/p/bwapi/ is able to go beyond these limitations.
Gah testing my code is so annoying. It takes 3 min just to compile the DLL, then I have to drag that DLL into the BWAPI folder, then I have to set up a match in sc to see the results. Sometimes SC crashes because of a runtime error but I have no idea what caused it.
Any kind of modding in Starcraft demands of one the utmost patience and tranquility of mind. Modding starcraft is not a hobby, it's an art of which demands from you the ultimate sacrifice of your soul and mind. This is not like Supreme Commander or Source - Starcraft is out to get you. It will drain you of all will to live and all things that are good and majestic in the world will be drowned away by a sea of suffering and despair.
Yea, it's pretty much the same as the default except with a less terrible build order and more units (or worse in same cases -_-) It still can't handle walls or luring its workers away at the beginning. The worst is that it can't handle neutral buildings/mineral blocks so a lot of new maps are out of the question.
Most people here are probably better off playing BWAI's Gold Racine Rebels if you want a 1v1. Yes it cheats, but at least it'll be a bit more challenging.
It seems like in a lot of the micro maps for this there would be a lot of stalemates. Surely a good AI wouldn't engage when it knows it will lose, and with perfect pathfinding (which I mean, they have a year to write) it seems like they could go on forever.
a computer that plays extremely safe and has perfect macro (never misses pylons/depots/ovies, spends all the money right away, etc) would be so imba...
Fascinating. The level of control offered by BWAPI sounds promising (assuming it offers the same level of unit control as a human player will have).
I can guarantee that in the complete-game competition, 99% to 100% of ones time will be spent making an AI that can survive, if not win in, the first few minutes of the game. If you're not confident in your AI's ability to survive the opening of the game, then any time you spend on its abilities beyond that is a waste of time.
The first step in making a winning AI will be to either: a) execute a well-timed, well-microed 4-pool, or b) defend against such a 4-pool with good micro.
If you can't do one of these, then you might as well not bother entering (unless you assume all the other entrants will similarly incapable ).
On November 13 2009 08:00 toopham wrote: This competition is a little unfair isn't it?
To make a good AI for starcraft you would need to know build orders for each match up. scout and detect what your opponent is making. Then play accordingly to what your opponent is doing.
This requires you to be at least D+ just to make good AI for starcraft. So the people who play SC competitively have an advantage.
That's not always true. The optimal actions are searched and maxed over sometimes, instead of hard coded in and directed.
When I coded my AI pacman for class, he had some incredibly ingenius manuvers that a human could never top, yet nowhere in the Pacman's code explicitly indicated that such manuvers should be executed.
Pacman simply played 1000 games of pacman and understood the environment and came up the moves himself.
I'll see if I can enter, it looks mad fun. If anyone else want to do it with me I'm very interested. I am currently taking algorithm and artificial intellegence and I'm a pretty good problem solver.
Hit me up, we should form a TL team and rape those UC santa cruz fools
My problem with the AI is that they just don't play like humans so you learn nothing ( except mechanics ) when you play against it. It is more interesting to play a D guy than the [l33t]haxorEntropy 15.0 version.
I think you guys are overthinking how complicated the best player will be.
The goal here is not to write an AI that beats a person - it's to write an AI that beats other AIs. It's really a completely different ballgame when you know your opponent will also be an AI.
It's easy to imagine an AI that has perfect standard play until the 9 minute mark. It's a lot harder to imagine this AI handling the various cheeses that other AIs will undoubtedly attempt to execute - I mean even HUMANS have trouble with that.
Being aggressive and playing a simple strategy will have a higher expected win rate in my opinion. Reason being, if you're aggressive in AI, you dictate the flow of the game and accomplish the following: 1) decrease the likelihood of a surprise 2) increase the likelihood of a disastrous surprise for an AI
Point 2 is really important - unexpected things that are trivial to people can be absolutely disastrous in AI. You will never cover all the edge cases no matter how much testing you do. Can you imagine a standard Protoss AI reacting to a Drone Drill (which wouldn't be that hard to code)?
On November 13 2009 17:51 Bill307 wrote: Fascinating. The level of control offered by BWAPI sounds promising (assuming it offers the same level of unit control as a human player will have).
I can guarantee that in the complete-game competition, 99% to 100% of ones time will be spent making an AI that can survive, if not win in, the first few minutes of the game. If you're not confident in your AI's ability to survive the opening of the game, then any time you spend on its abilities beyond that is a waste of time.
The first step in making a winning AI will be to either: a) execute a well-timed, well-microed 4-pool, or b) defend against such a 4-pool with good micro.
If you can't do one of these, then you might as well not bother entering (unless you assume all the other entrants will similarly incapable ).
I didn't see this at first but I agree.
I expect 9 pool (which also sufficiently counters 5 pool) speed to dominate, with a possible Lurker or Muta followup. Basically an all-in build that is resistant to other early all-in builds, and which dictates the flow of the game at virtually all times.
On November 13 2009 08:00 toopham wrote: This competition is a little unfair isn't it?
To make a good AI for starcraft you would need to know build orders for each match up. scout and detect what your opponent is making. Then play accordingly to what your opponent is doing.
This requires you to be at least D+ just to make good AI for starcraft. So the people who play SC competitively have an advantage.
That's not always true. The optimal actions are searched and maxed over sometimes, instead of hard coded in and directed.
When I coded my AI pacman for class, he had some incredibly ingenius manuvers that a human could never top, yet nowhere in the Pacman's code explicitly indicated that such manuvers should be executed.
Pacman simply played 1000 games of pacman and understood the environment and came up the moves himself.
I'll see if I can enter, it looks mad fun. If anyone else want to do it with me I'm very interested. I am currently taking algorithm and artificial intellegence and I'm a pretty good problem solver.
Hit me up, we should form a TL team and rape those UC santa cruz fools
Hey the pacman thing is pretty cool O_O
Quote from slashdot: "Instead of an AI that can win at Starcraft, maybe they ought to try to build an AI that can finish Starcraft 2.
Does anyone know if the starcraft AI have knowledge about what a player is doing without needing to scout? If they do, it would make programming alot easier. No need to interpret actions
On November 13 2009 08:00 toopham wrote: This competition is a little unfair isn't it?
To make a good AI for starcraft you would need to know build orders for each match up. scout and detect what your opponent is making. Then play accordingly to what your opponent is doing.
This requires you to be at least D+ just to make good AI for starcraft. So the people who play SC competitively have an advantage.
That's not always true. The optimal actions are searched and maxed over sometimes, instead of hard coded in and directed.
When I coded my AI pacman for class, he had some incredibly ingenius manuvers that a human could never top, yet nowhere in the Pacman's code explicitly indicated that such manuvers should be executed.
Pacman simply played 1000 games of pacman and understood the environment and came up the moves himself.
I'll see if I can enter, it looks mad fun. If anyone else want to do it with me I'm very interested. I am currently taking algorithm and artificial intellegence and I'm a pretty good problem solver.
Hit me up, we should form a TL team and rape those UC santa cruz fools
Hey the pacman thing is pretty cool O_O
Quote from slashdot: "Instead of an AI that can win at Starcraft, maybe they ought to try to build an AI that can finish Starcraft 2.
Apparently, that's a much greater challenge."
You could probably get away with watching a few key games, and reading liquipedia. Although I don't think that would help you very much in defending 4-9 pools.
edit: you get perfect macro, decent micro, and you might be able to use scv stacking (to defend against 4 pools). Mines vs goons don't matter, zeals vs vults don't matter in earlygame (vults win with perfect micro), and then you should be able to have vults meatshield for tanks. I'm not sure how you would deal with mineral blocks, without sending out units scouting basically randomly. Especially 0 mineral blocks, 16 mineral blocks, or neutral building blocks. Medusa and, more notably, monty hall could be very difficult. Also, Sin peaks/other maps with differential pathing could be fairly difficult. The saving grace would be that the other ai would have a lot of trouble as well.
This problem is so much harder than a lot of you are giving credit for. In fact the more I think about it, the more I'm convinced that an AI developed by anything less than a full-time development team of really good players would have any semblance of a chance against a top human player.
StarCraft is such a bad game to try to develop an AI for in the sense that there's just way too much knowledge required to play the game. Add to it the element of scouting and fog of war just makes the game unbelievably difficult for AI to play.
On November 13 2009 17:51 Bill307 wrote: Fascinating. The level of control offered by BWAPI sounds promising (assuming it offers the same level of unit control as a human player will have).
I can guarantee that in the complete-game competition, 99% to 100% of ones time will be spent making an AI that can survive, if not win in, the first few minutes of the game. If you're not confident in your AI's ability to survive the opening of the game, then any time you spend on its abilities beyond that is a waste of time.
The first step in making a winning AI will be to either: a) execute a well-timed, well-microed 4-pool, or b) defend against such a 4-pool with good micro.
If you can't do one of these, then you might as well not bother entering (unless you assume all the other entrants will similarly incapable ).
4 pool alone isn't trivial, but multiply this by 100 and you get about how hard SC is to play at the D+/C- level.
However, I could imagine there being really good AI's for specific tasks, such as microing small number of units that could play out certain situations almost perfectly. (Stage 1)
If you really wanted to make a strong AI for a game, it would make a lot more sense to pick a different genre such as turn-based strategy (Civ), fighting games (SF4), or even first-person shooters (HL).
Human Advantages: Imagined Prediction Advantage Flexible Stategies Arguably Faster Learning
AI Advantages: Able to command all units at once Usually More efficient w/ resources Instant Macro management
Korean Advantages: Superior Strategies Advanced Prediction Flexible Tactics Arguably Faster Learning Able to command all units at once Usually More efficient w/ resources Instant Macro management
Clever
Although this challenge is going to be pretty hard, at least for the full game simulation.
Human Advantages: Imagined Prediction Advantage Flexible Stategies Arguably Faster Learning
AI Advantages: Able to command all units at once Usually More efficient w/ resources Instant Macro management
Korean Advantages: Superior Strategies Advanced Prediction Flexible Tactics Arguably Faster Learning Able to command all units at once Usually More efficient w/ resources Instant Macro management
I bet this will be like some of the other academic AI in games (the Quake 3 engine is used for a lot of AI research) in that it's apparently trying to do very sophisticated things but the end result is very poor in game terms and is marred by the coder's lack of game experience and understanding.
On November 13 2009 23:39 azndsh wrote: This problem is so much harder than a lot of you are giving credit for. In fact the more I think about it, the more I'm convinced that an AI developed by anything less than a full-time development team of really good players would have any semblance of a chance against a top human player.
StarCraft is such a bad game to try to develop an AI for in the sense that there's just way too much knowledge required to play the game. Add to it the element of scouting and fog of war just makes the game unbelievably difficult for AI to play.
On November 13 2009 17:51 Bill307 wrote: Fascinating. The level of control offered by BWAPI sounds promising (assuming it offers the same level of unit control as a human player will have).
I can guarantee that in the complete-game competition, 99% to 100% of ones time will be spent making an AI that can survive, if not win in, the first few minutes of the game. If you're not confident in your AI's ability to survive the opening of the game, then any time you spend on its abilities beyond that is a waste of time.
The first step in making a winning AI will be to either: a) execute a well-timed, well-microed 4-pool, or b) defend against such a 4-pool with good micro.
If you can't do one of these, then you might as well not bother entering (unless you assume all the other entrants will similarly incapable ).
4 pool alone isn't trivial, but multiply this by 100 and you get about how hard SC is to play at the D+/C- level.
However, I could imagine there being really good AI's for specific tasks, such as microing small number of units that could play out certain situations almost perfectly. (Stage 1)
If you really wanted to make a strong AI for a game, it would make a lot more sense to pick a different genre such as turn-based strategy (Civ), fighting games (SF4), or even first-person shooters (HL).
Yea you are so right. An Ai can get a perfect aim in FPS and i think that most of the turn-based strategy games can be solved by brute force ( or at least the comp can take the best Ev+ decisions ). A real time strategy game like stacraft is the hardest thing for an AI.
If you've ever lost to one of the game's pre-built AIs when you were first learning SC, then you know that its possible for a comp to beat a human. In fact, a good AI is theoretically much, much better than you. I await the programmer who can 'prove' whether or not a probe/drone can kill well-micro'd terran workers without taking a single hit.
The beauty of this competition is that it will inevitably lead to newer, better modules. If someone can focus all their effort on one small task, like one person focuses purely on perfecting zergling vs. zergling combat for the micro competition, and another person focuses purely on writing a code for optimizing psionic storms, the larger AIs will be able to take those small-scale functions and algorithms and apply them to create a better and better system. I'd say in 2-3 years the AI could be able to beat humans 100%, but AIs may continue to become better and better and better...
If anyone's interested in making a development team for this I'm totally in. Spent 5 hours yesterday trying to make probes have perfect hit and run micro.
On November 14 2009 02:41 SirKibbleX wrote: If you've ever lost to one of the game's pre-built AIs when you were first learning SC, then you know that its possible for a comp to beat a human. In fact, a good AI is theoretically much, much better than you. I await the programmer who can 'prove' whether or not a probe/drone can kill well-micro'd terran workers without taking a single hit.
The beauty of this competition is that it will inevitably lead to newer, better modules. If someone can focus all their effort on one small task, like one person focuses purely on perfecting zergling vs. zergling combat for the micro competition, and another person focuses purely on writing a code for optimizing psionic storms, the larger AIs will be able to take those small-scale functions and algorithms and apply them to create a better and better system. I'd say in 2-3 years the AI could be able to beat humans 100%, but AIs may continue to become better and better and better...
I doubt it'll be that easy. Chess AIs have been in development for a very long time and finally they are about as strong as humans. Go AIs suck horribly even though the game concept is quite simple. Imo creating a decent SC AI will be much harder than any of those, as SC is much more complex.
Unless the AI can win by outmicroing humans very early in the game, which I doubt because defense is stronger than offense in SC.
Definitely gonna give this a try. I'm pretty busy at the moment but deadline is awesome, I'm glad they announced this so early. I'm a reasonably competent c++ programmer but have no real ai knowledge. I'll probably just try the micro ones unless I'm feeling really ambitious.
Gogo TL sponsored team! Seriously, if TL doesn't win this shit I'mma be disappointed. I'll contribute in what limited ways I can, but surely there are people with more skills/resources than I am who are willing to participate.
Poll: Are you interested in joining a team that enters this competition? (Vote): Yes, only Tournament 1: Micro-management (Vote): Yes, only Tournament 2: Small-scale Combat (Vote): Yes, only Tournament 3: Tech-limited game (Vote): Yes, only Tournament 4: Complete StarCraft game (Vote): Yes (Vote): Hell yes, TL is going to win this shit!
edit: poll breaks page layout, gonna have to redo. edit: oops, ignore the (Vote): in option 1.
I think a team approach may be the only way to make an even semi-competent bot for a complete game of starcraft. Shits just that complicated. That said I'll probably only being doing the micro ones by myself or with a friend.
pretty interesting, but its gonna be so annoying to keep trying out your changes (starting game, letting them play, check results etc.)
there should be a server where people can upload their AI module, and the server will be running games vs eachother nonstop and provide statistics of the games played, replays, and logs of the bots etc.
On November 13 2009 08:00 toopham wrote: This competition is a little unfair isn't it?
To make a good AI for starcraft you would need to know build orders for each match up. scout and detect what your opponent is making. Then play accordingly to what your opponent is doing.
This requires you to be at least D+ just to make good AI for starcraft. So the people who play SC competitively have an advantage.
That's not always true. The optimal actions are searched and maxed over sometimes, instead of hard coded in and directed.
When I coded my AI pacman for class, he had some incredibly ingenius manuvers that a human could never top, yet nowhere in the Pacman's code explicitly indicated that such manuvers should be executed.
Pacman simply played 1000 games of pacman and understood the environment and came up the moves himself.
I'll see if I can enter, it looks mad fun. If anyone else want to do it with me I'm very interested. I am currently taking algorithm and artificial intellegence and I'm a pretty good problem solver.
Hit me up, we should form a TL team and rape those UC santa cruz fools
That's because in PacMan, you can perform something like a Game-Tree Search which can be explored to a decent depth (given a pretty good computer). Your evaluation function for a specific position (the layout of the map) is also very clear. (e.g. if you have more points, and are not guaranteed a death, that position is a high scoring position) It's hardly even feasible to do something like a Game-Tree Search for StarCraft (well, maybe for build orders, but outside of that it's unlikely). Also, even if you could perform Game Tree Search on StarCraft, writing the evaluation function for any given scenario would require D+ or higher levels of StarCraft knowledge.
It's actually fairly easy to imagine a good evaluation function for starcraft, that could compare economy, tech, army size, positioning, and arrive at a conclusion for who is leading. Of course, since starcrarft is not a perfect information game, how good that evaluation is depends on how well the AI is able to scout.
It's good to see some interest in this from TL. I am a member of the research lab running the tournament and might be able to clear up a few things. First off is that the identity of our "skilled human player" will probably not be Bisu (I'm still holding out for Jaedong j/k). Playing against a solid AI is quite a bit different than playing against a human player -- they're bad at unit position, strategic decision making, and fighting off cheese but good at macro, micro, economy management, and optimally enacting build orders. I really don't have to tell all of you good players how much changes like that will throw the metagame and predicting opponent actions. With such a change, what type of human player would you guys recommend be at the tournament?
Second is that there have only been a slim few AI systems that are not scripted players that are capable of playing a full game (too much research into small domain solutions featuring the AI technique du jour) -- RTS AI is considered by many to be a grand challenge-style problem in game AI.
Don't let the above paragraph of BS stop you from competing -- I think a team liquid bot would stand up extremely well in this competition and we would love to see one there.
Hit me up, we should form a TL team and rape those UC santa cruz fools
As confident are you are in your BW skills, we are in our AI skills. Bring it.
If any of you are UCSC students, PM me -- I always like to meet another Starcraft player. UCSC VOD night anyone?
On November 14 2009 07:10 AssuredVacancy wrote: If anyone's interested in making a development team for this I'm totally in. Spent 5 hours yesterday trying to make probes have perfect hit and run micro.
On November 14 2009 07:10 AssuredVacancy wrote: If anyone's interested in making a development team for this I'm totally in. Spent 5 hours yesterday trying to make probes have perfect hit and run micro.
How did it turn out?
Well I manage to do a couple hit and runs until the probe hits a geyser/other none walkable terrain and get stuck, or it gets surrounded by the scvs and gets stuck.
Basically what I did was just loop through all their workers, keep track of their positions, find the closest one, and order attack that one. When the distance between it and the attacking unit I tell it to click directly behind it, then immediately click back on the scv, and repeat. When it can't click behind it(unwalkable terrain), I tell the probe to walk to the tile directly to the left to it instead.
It's very crude ai, but you have no idea the joy i got after i saw my probe walk up to the scv, zapped him and immediately glided out of range of the scv.
Lol usually it gets the scv to like 30 hp before getting stuck on a wall/trapped by other scvs. But I was playing on destination and the 'platform' is fairly small, I think it'll be quite fun to program the microing competition.
On November 15 2009 08:49 AssuredVacancy wrote: Lol usually it gets the scv to like 30 hp before getting stuck on a wall/trapped by other scvs. But I was playing on destination and the 'platform' is fairly small, I think it'll be quite fun to program the microing competition.
lol mad points to you. thats awesome.
the best way to win this is program a toss ai thats specifically programmed to fuck up other ais. go in manner pylon, gas steal, build gateways in their min lines, make zealots, etc. coupled with perfect probe micro it would be pretty damn hard to stop. It would require alot of extra code just to fend this off, in addition to dealing with the non-gay ais lol.
this has the possibility to be absolutely hilarious, especially with offensive hatcheries and pylon hearts programmed when the comp is x ahead in food count or bases
On November 15 2009 04:12 Solemnis wrote: It's good to see some interest in this from TL. I am a member of the research lab running the tournament and might be able to clear up a few things. First off is that the identity of our "skilled human player" will probably not be Bisu (I'm still holding out for Jaedong j/k). Playing against a solid AI is quite a bit different than playing against a human player -- they're bad at unit position, strategic decision making, and fighting off cheese but good at macro, micro, economy management, and optimally enacting build orders. I really don't have to tell all of you good players how much changes like that will throw the metagame and predicting opponent actions. With such a change, what type of human player would you guys recommend be at the tournament?
Second is that there have only been a slim few AI systems that are not scripted players that are capable of playing a full game (too much research into small domain solutions featuring the AI technique du jour) -- RTS AI is considered by many to be a grand challenge-style problem in game AI.
Don't let the above paragraph of BS stop you from competing -- I think a team liquid bot would stand up extremely well in this competition and we would love to see one there.
Hit me up, we should form a TL team and rape those UC santa cruz fools
As confident are you are in your BW skills, we are in our AI skills. Bring it.
If any of you are UCSC students, PM me -- I always like to meet another Starcraft player. UCSC VOD night anyone?
How are you going to prevent stalemates (both sides refusing to attack), especially in the tactical games?
Also, given how hard this whole thing is, I think the tech limited match might be better on a completely flat, featureless map (except for expansions perhaps). The current one, although relatively tractable in the strategic sense because of its linearity, might be hard to get working in the basic sense of not getting stuck on terrain.
Thanks for making this contest though, it's just what I've wanted to see for a while, lots of potential for interesting results.
Also I'm going to repost something I posted back in September when this idea was considered (at the time there was no API powerful enough to actually do it). My idea is more for a full-game playing type bot that doesn't just all-in rush or cheese and would probably be too hard for one person to implement for this competition (if I enter I'll probably stick to the tactics ones), but it was something I found interesting to consider:
"It would be computationally intractable for a SC AI to grind out the decision tree across the whole board Chess-AI style. It might be able to work by having multiple levels/threads of thought - one that considers framewise individual unit micro just in the areas immediately around battles, then [another level that] considers army movement with the "pieces" being groups of units and the "moves" being relatively large movements over several seconds, then [another level that] considers expansions and teching with "move" lengths of a minute or so. Each level would have its own evaluation function (which would take a lot of effort to refine, and probably be the most crucial aspect).
There would also need to be a lot of hand-tweaking/scripting, extensive opening book, etc."
i wonder how the ai will be programmed to take out the empty mineral patches on destination and hbr and when. On entropy AI, the zerg will just take his 3rd in the middle -_-
good thing medusa isn't in the map pool because the AI has trouble making it to the main of 6 if they spawned at 3. They just stop at the temples
On November 15 2009 09:44 gravity wrote: How are you going to prevent stalemates (both sides refusing to attack), especially in the tactical games?
Good question.
One could decide the winner of a draw via coin-flip, since arguably the AI makers could avoid 100% refusal to attack if they want to avoid losing due to a coin-flip. But I can see situations in SC (sieged tanks, burrowed lurkers, etc.) where the defender's advantage makes defending and drawing the best strategy: better to have a 50% chance of losing than a ~100% chance.
A far better solution would be to use a tournament format that can accomodate draws.
Why not use a swiss-style tournament or a round-robin? It's not like the # of games needs to be kept low via an elimination bracket: it's just AIs competing, after all.
On November 15 2009 08:49 AssuredVacancy wrote: Lol usually it gets the scv to like 30 hp before getting stuck on a wall/trapped by other scvs. But I was playing on destination and the 'platform' is fairly small, I think it'll be quite fun to program the microing competition.
Hmmm how easy is it to use BWAPI's map information to avoid backing into an obstacle?
This would probably end up as a general function to have a unit move into more open space if it gets too close to an edge while doing hit-and-run micro.
In any case, any TLnet team will definitely have you on it, imo. Programmers with free time to do extra programming are hard to come by.
On November 15 2009 08:49 AssuredVacancy wrote: Lol usually it gets the scv to like 30 hp before getting stuck on a wall/trapped by other scvs. But I was playing on destination and the 'platform' is fairly small, I think it'll be quite fun to program the microing competition.
Hmmm how easy is it to use BWAPI's map information to avoid backing into an obstacle?
This would probably end up as a general function to have a unit move into more open space if it gets too close to an edge while doing hit-and-run micro.
In any case, any TLnet team will definitely have you on it, imo. Programmers with free time to do extra programming are hard to come by.
The API is very powerful, You can basically check EVERYSINGLE tile on the map about it's properties. I would say that any information that is known to a human player can be gotten from the API, and some more.
Sounds like a great contest. I'd be happy to contribute some code/testing depending on the language and tournament type (Tournament 3 looks like the best balance of effort vs. usefulness imo).
A small tip: On LAN Latency which they seem to use for this competition SC only accepts commands every second frame. So I'd do the calculations for time-insensitive stuff(macro) on the frame where it doesn't accept commands, and the time sensitive stuff(Micro) in the frame where it does. This reduces the Latency by one frame.
On November 15 2009 08:49 AssuredVacancy wrote: Lol usually it gets the scv to like 30 hp before getting stuck on a wall/trapped by other scvs. But I was playing on destination and the 'platform' is fairly small, I think it'll be quite fun to program the microing competition.
On November 13 2009 23:39 azndsh wrote:If you really wanted to make a strong AI for a game, it would make a lot more sense to pick a different genre such as turn-based strategy (Civ), fighting games (SF4), or even first-person shooters (HL).
It depends on your definition of "strong". In most first-person shooters, the real question is how much the AI is allowed to cheat - if you don't impose human-like limits on its reaction speed, it's going to win every time, simply because if you pop up behind it to shoot at it, it's going to notice and fire at you in the time it takes you to pull the trigger. This depends on the game, of course - some may have hardcoded limits on, say, turn speed, that would prevent this - but generally speaking, the strategy in first-person shooters is based on what human players are capable of, and a well-written AI would blow all this to hell.
It's the same for Starcraft. Assuming you can solve the basic challenge of actually working with brood war without killing yourself, it becomes pretty easy to just solve Stage 1 for every reasonable combination of units, and suddenly the AI will be almost impossible to defeat, if it's using the right strategy, no matter how good you are. It's often repeated by everyone from D- zergs to Day[9] that you can get to B+ or A- just by playing ZvZ with really solid muta micro. The AI, if enough effort is put into it, literally CANNOT fail its micro. At that point, the only challenge it has playing against human players is adapting to (or having its programmer adapt it to) weird things it hasn't taken into consideration. An example of this would be stasis of probes ordered to mine on a Terran AI's ramp to block it. Plenty of (most?) human players have seen dragoons or zealots stasised on a ramp to block it, and probably quite a few of them know you can SCV drill the goons/zeals out of the way. But how many know that you can stasis probes that have been ordered to mine, which will then form a completely impassable wall until stasis runs out? I somehow doubt any of the UC Santa Cruz students working on this do.
My point with all of this is that an AI vs AI Starcraft match, just like an AI vs AI HL match, wouldn't be all that likely to be remotely similar to a human vs human Starcraft match. An uneducated observer might think that "late-game ZvZ" (lol) was about guardians or dark swarm or ultralisks supporting lurker/ling armies, because they aren't aware just how effectively well-microed mutalisks break things. I'm predicting that if the AI is written comprehensively enough, a match between two AI will be as confusing to us as professional ZvZ is to the aforementioned uneducated observer. Hell, for all we know, DRAGOONS become incredible instead of buggy when controlled with 20k+ APM.
Civilization is a good example of a game where writing an AI would be an interesting challenge, simply because it's a turn-based game and you don't have the crutch of "my mechanics are infinitely superior to yours". At that point, the AI's main advantage becomes prediction, like it is in chess, and things get very hairy. The problem is, Civ4 (especially once you've tossed a couple expansions in there) is WAY more complicated than Chess, Brood War, or pretty much any other game out there. I wouldn't even want to try to teach an AI to chop-rush wonders perfectly, let alone perform any espionage-based strategy or actually wage war. The difficulty of playing against the AI in Civ is the fact that it cheats. I'm not even kidding, the difference between you and an Immortal-level AI is about three times the starting resources and about twice the research (and building? it's been a while since I've Civved) speed. Think about playing against a starcraft AI that starts with two nexuses, eight probes, and three or four zealots. The game becomes a contest of using your far superior understanding of the game to fend off the AI's overwhelming advantages long enough to execute what basically amounts to a timing attack. I'd love to see an AI that changes that, but I don't think it's going to happen any time soon.
For a more realistic goal, try teaching an AI to play a single-player game - say, Dwarf Fortress. Learning curve that makes men cry and boys kill themselves, incredibly, fiendishly complicated, but you just have to play well enough to avoid sowing the seeds of your own destruction, not well enough to beat someone else.
I am pretty sure that an SC AI is quite limited by the real time requirement. I don't think it is possible to pull of perfect late game micro, macro and strategic decision making with that time constraint and current hardware (the affordable hardware, no supercomputing).
I wonder what hardware is used for the contests. Especially if you can use Cuda or something along those lines.
On November 16 2009 00:53 spinesheath wrote: I am pretty sure that an SC AI is quite limited by the real time requirement. I don't think it is possible to pull of perfect late game micro, macro and strategic decision making with that time constraint and current hardware (the affordable hardware, no supercomputing).
That depends on how optimized your code is and how you define "perfect". In the absolute worst-case scenario (a Zerg AI at 200/200 supply), you might have 200 units that needed active control (that's assuming a rather ling-heavy army, and 40-60 drones automining) and 120 enemy units to track (assuming your opponent is NOT zerg, also maxed, and we can see everything he has). There's really no reason hardware should be a limit with that - even if this contest was run on my Dell laptop that cost $400 in 2006, you'd have dual 1.73 GHz processors and 4GB of RAM to work with after whatever overhead your OS and Starcraft took off. Assuming the code is efficiently written (you pull unit positions and such from Starcraft's memory where possible instead of writing them into your own, you only do so when there's a change, et cetera), there's no reason either of those numbers should be a limiting factor. Of course, it would be completely possible to write the code inefficiently enough that microing 6 lings against 3 marines would be a resource strain, but if you run into that problem you don't deserve to win this contest anyway. EDIT: realized that I didn't go into detail on the "perfect" portion
The other thing to consider is that you could conceivably do way more calculation than you need to. Whether an individual zealot attacks and what it attacks is not something you need to predict, especially in large battles - there's not really much you can do to micro your lings away from zealot hits anyway, and even if you could it would be counterproductive given the relative attack rates. All you need to know is what it's currently doing. In other words, if you're doing a multi-layered approach (micro, tactical, strategy) the lower level can work entirely without prediction, and if your micro routines for a lot of tasks (hydras against reavers, for example) are hardcoded, you can do that with basically no effort. What's really going to suck up resources is taking the army compositions and terrain and predicting a likely victor, taking the production facility, base, and worker count and predicting who the momentum's in favor of, and most importantly calculating responses based on each of those. Fortunately, you only need to do that every so often - a five or ten frame cycle should be more than enough - and, if written efficiently, that should still leave plenty of spare resources for things like planning pylon hearts on even the worst hardware in even the most intense AI 3v3 on BGH.
On November 16 2009 00:23 CaptainPlatypus wrote: It's the same for Starcraft. Assuming you can solve the basic challenge of actually working with brood war without killing yourself, it becomes pretty easy to just solve Stage 1 for every reasonable combination of units, and suddenly the AI will be almost impossible to defeat, if it's using the right strategy, no matter how good you are. It's often repeated by everyone from D- zergs to Day[9] that you can get to B+ or A- just by playing ZvZ with really solid muta micro. The AI, if enough effort is put into it, literally CANNOT fail its micro. At that point, the only challenge it has playing against human players is adapting to (or having its programmer adapt it to) weird things it hasn't taken into consideration. An example of this would be stasis of probes ordered to mine on a Terran AI's ramp to block it. Plenty of (most?) human players have seen dragoons or zealots stasised on a ramp to block it, and probably quite a few of them know you can SCV drill the goons/zeals out of the way. But how many know that you can stasis probes that have been ordered to mine, which will then form a completely impassable wall until stasis runs out? I somehow doubt any of the UC Santa Cruz students working on this do.
Theres no way you can look at every possible situation and just pick a "right strategy" for each and every one.
5 pool into 1 hatch mutas (with perfect ling and muta control) would rape T or P..... Those 6 initial lings (the only ones it would make) would disrupt mining and tech so much, and yet never die, and flawless muta control would never lose a single muta, and never be a frame late when attacking.....
Plus, the drones could be mining way more efficiently, since you could manually tell each one where and when and how to mine all of the time..... Infinite apm would allow so much for Z.
On November 14 2009 02:41 SirKibbleX wrote: If you've ever lost to one of the game's pre-built AIs when you were first learning SC, then you know that its possible for a comp to beat a human. In fact, a good AI is theoretically much, much better than you. I await the programmer who can 'prove' whether or not a probe/drone can kill well-micro'd terran workers without taking a single hit.
The beauty of this competition is that it will inevitably lead to newer, better modules. If someone can focus all their effort on one small task, like one person focuses purely on perfecting zergling vs. zergling combat for the micro competition, and another person focuses purely on writing a code for optimizing psionic storms, the larger AIs will be able to take those small-scale functions and algorithms and apply them to create a better and better system. I'd say in 2-3 years the AI could be able to beat humans 100%, but AIs may continue to become better and better and better...
I doubt it'll be that easy. Chess AIs have been in development for a very long time and finally they are about as strong as humans. Go AIs suck horribly even though the game concept is quite simple. Imo creating a decent SC AI will be much harder than any of those, as SC is much more complex.
Unless the AI can win by outmicroing humans very early in the game, which I doubt because defense is stronger than offense in SC.
Go AI's suck because the search space for go is way larger than that of chess. In go you have 361 possible moves at the start of the game, while in chess you have 20.
On November 14 2009 02:41 SirKibbleX wrote: If you've ever lost to one of the game's pre-built AIs when you were first learning SC, then you know that its possible for a comp to beat a human. In fact, a good AI is theoretically much, much better than you. I await the programmer who can 'prove' whether or not a probe/drone can kill well-micro'd terran workers without taking a single hit.
The beauty of this competition is that it will inevitably lead to newer, better modules. If someone can focus all their effort on one small task, like one person focuses purely on perfecting zergling vs. zergling combat for the micro competition, and another person focuses purely on writing a code for optimizing psionic storms, the larger AIs will be able to take those small-scale functions and algorithms and apply them to create a better and better system. I'd say in 2-3 years the AI could be able to beat humans 100%, but AIs may continue to become better and better and better...
I doubt it'll be that easy. Chess AIs have been in development for a very long time and finally they are about as strong as humans. Go AIs suck horribly even though the game concept is quite simple. Imo creating a decent SC AI will be much harder than any of those, as SC is much more complex.
Unless the AI can win by outmicroing humans very early in the game, which I doubt because defense is stronger than offense in SC.
Go AI's suck because the search space for go is way larger than that of chess. In go you have 361 possible moves at the start of the game, while in chess you have 20.
That certainly is one of the major reasons. Which partly is why I am assuming that it is much harder to create a good AI for SC. In early game you could say that there are less possible moves, but actually there are incredibly many (you can order all your workers to move to every single pixel on the map). Since most of those moves are stupid, early game is still quite simple. But as the game progresses, the number of possibly useful moves increases drastically (while in Go the number of moves decreases), and far beyond 361. Because of that, you can only work with a game-tree model on a very abstract level, like where to defend, where to attack, where to harrass, which units to use and so on. This probably can be scaled to around the complexity of chess (just my guess). Additionally to all those abstract calculations you have to deal with tasks like micro which aren't all that trivial either.
Edit: I am currently working on a simple 5 pool AI, and fooling around with all the classes to get familiar with them. I found something which I consider a problem: If you disable (or rather don't enable) "maphack", you should not know what your opponent is doing unless you scout it. But there is at least one way to keep track of your opponents units without scouting: The onAddUnit method also tells you whenever your opponent creates a new unit, and you also get the unit type. That makes it very easy to figure out what your opponent is doing. And I would also expect that you can get various other information through other methods.
On November 16 2009 20:09 spinesheath wrote:But there is at least one way to keep track of your opponents units without scouting: The onAddUnit method also tells you whenever your opponent creates a new unit, and you also get the unit type.
I wonder if most people are going to get detection. Since then one of the best things to do would be to create dark templars --> block with them. Imagine placing one at your opponents ramp and their script never tells them to get observers/position overlords/science vessels. On the topic of terran detection, can the AI scan correctly?
On November 14 2009 02:41 SirKibbleX wrote: If you've ever lost to one of the game's pre-built AIs when you were first learning SC, then you know that its possible for a comp to beat a human. In fact, a good AI is theoretically much, much better than you. I await the programmer who can 'prove' whether or not a probe/drone can kill well-micro'd terran workers without taking a single hit.
The beauty of this competition is that it will inevitably lead to newer, better modules. If someone can focus all their effort on one small task, like one person focuses purely on perfecting zergling vs. zergling combat for the micro competition, and another person focuses purely on writing a code for optimizing psionic storms, the larger AIs will be able to take those small-scale functions and algorithms and apply them to create a better and better system. I'd say in 2-3 years the AI could be able to beat humans 100%, but AIs may continue to become better and better and better...
I doubt it'll be that easy. Chess AIs have been in development for a very long time and finally they are about as strong as humans. Go AIs suck horribly even though the game concept is quite simple. Imo creating a decent SC AI will be much harder than any of those, as SC is much more complex.
Unless the AI can win by outmicroing humans very early in the game, which I doubt because defense is stronger than offense in SC.
Go AI's suck because the search space for go is way larger than that of chess. In go you have 361 possible moves at the start of the game, while in chess you have 20.
...
Starcraft is not comparable to Go in terms of search space though. What you do is not a DIRECT reflection of what your opponent does. For example, when you start the game, the actions of mining and teching can be the SAME almost every game at this level of starcraft. In Go, what you do is directly influenced by your opponents, thus you'd have to generate a new set of moves everytime your opponents take their turn. In starcraft, if you turtle->macro up a big army->a move, it will be effective to some extent regardless of what your opponent does.
I mentioned that early game is kinda simple. But in lategame tvz - if it is played out like in human v human - you have to react to everything your opponent does. You usually can't just do what you want because both players can deal immense damage if you ignore their moves.
But yeah, those games obviously are quite different. I still think that the complexity and speed of lategame SC is a lot harder to deal with than Chess, and probably Go as well.
On November 17 2009 02:11 spinesheath wrote: I mentioned that early game is kinda simple. But in lategame tvz - if it is played out like in human v human - you have to react to everything your opponent does. You usually can't just do what you want because both players can deal immense damage if you ignore their moves.
But yeah, those games obviously are quite different. I still think that the complexity and speed of lategame SC is a lot harder to deal with than Chess, and probably Go as well.
I think you're trying to make an AI that plays against a human, but really, you're only playing against something else that follows a set of instructions. This simplifies a lot of things as you expect them to only attack move as well at certain times, and not only that, unless they have their whole game planned out, which is pretty much impossible, their 'attacking' procedures will be generic and the same throughout.
On November 17 2009 02:11 spinesheath wrote: I mentioned that early game is kinda simple. But in lategame tvz - if it is played out like in human v human - you have to react to everything your opponent does. You usually can't just do what you want because both players can deal immense damage if you ignore their moves.
But yeah, those games obviously are quite different. I still think that the complexity and speed of lategame SC is a lot harder to deal with than Chess, and probably Go as well.
I think you're trying to make an AI that plays against a human, but really, you're only playing against something else that follows a set of instructions. This simplifies a lot of things as you expect them to only attack move as well at certain times, and not only that, unless they have their whole game planned out, which is pretty much impossible, their 'attacking' procedures will be generic and the same throughout.
An AI doesn't have to be THAT stupid. With BWAPI you can actually micro, and modern AI techniques allow adaption, planning, and other stuff like that. It could even be creative.
So do we actually get to see any replays of AI's duking it out? I'm kind of curious to see how it would look, but couldn't figure out how to set it up .
On November 16 2009 08:24 JohannesH wrote: Theres no way you can look at every possible situation and just pick a "right strategy" for each and every one.
Of course you can. It's always possible to pick a correct option. If you had said that there was no way you can pick the right strategy for each situation, I'd agree with you - there's a lot of situations where there are multiple options with similar "value" in game theory terms, but none where there is literally NO option with value. There's always something you can do.
Or is there? It would be interesting to see an AI's "gg" code for deciding it had no chance of winning a game.
Mmm haven't really used C or C++ in about 4 years. Time to re-familiarize~~. Btw, is it just me or do the replay analysis methods in the example AI not actually work (as in it crashes BW).
On November 16 2009 08:24 JohannesH wrote: Theres no way you can look at every possible situation and just pick a "right strategy" for each and every one.
Of course you can. It's always possible to pick a correct option. If you had said that there was no way you can pick the right strategy for each situation, I'd agree with you - there's a lot of situations where there are multiple options with similar "value" in game theory terms, but none where there is literally NO option with value. There's always something you can do.
Or is there? It would be interesting to see an AI's "gg" code for deciding it had no chance of winning a game.
I think he meant there was no practical/computationally tractable way to do so.
On November 16 2009 08:24 JohannesH wrote: Theres no way you can look at every possible situation and just pick a "right strategy" for each and every one.
Of course you can. It's always possible to pick a correct option. If you had said that there was no way you can pick the right strategy for each situation, I'd agree with you - there's a lot of situations where there are multiple options with similar "value" in game theory terms, but none where there is literally NO option with value. There's always something you can do.
Or is there? It would be interesting to see an AI's "gg" code for deciding it had no chance of winning a game.
I think he meant there was no practical/computationally tractable way to do so.
I've been working on a simple 5 pool bo, and I find it extremely inconvenient that there is no decent way (or at least I can't seem to find one) to know when a unit becomes fully operational, and what unit an egg is morphing into.
On November 13 2009 11:41 AssuredVacancy wrote: Gah testing my code is so annoying. It takes 3 min just to compile the DLL, then I have to drag that DLL into the BWAPI folder, then I have to set up a match in sc to see the results. Sometimes SC crashes because of a runtime error but I have no idea what caused it.
How are you building? I don't know how much extra code you've written, but mine compiles in a matter of seconds :O
You could also I'm sure set it so that the output directory is the BWAPI folder
On November 20 2009 07:06 Boblion wrote: Can you guys post some reps of your AI ? :p
Ya that would be really entertaining and fun to check out!
We started a replay thread @ the BWAPI forum, but not much has been submitted there yet. TL.net is probably more active and look forward to seeing the progress ppl are having w/ their bots.
Ah, all of this seems quite complicated. Maybe people could get to work on the build order part. I think it's the LUA scripts? http://www.broodwarai.com/forums/index.php?showtopic=661 Though you'll have to ask questions there, not really sure on it. But if that part is similar to regular AI scripting then people shouldn't have too hard a time with it.
oh right... I'm a friend of one of the guys involved on it so I was able to watch it. sorry. But I'll say this, the dragoon micro is amazing. If bisus dragoon micro is 3-4, this would be 10
Amazing. Anyone still doubting these things beating top koreans?
Very cool. I think I would like to see some dragoon vs zealot (or other melee), to really see how effective it could be. You could theoretically micro to take basically no hits from the slower melee units.
This makes my decade-old AI scripting senses tingle in delight. It's been so long since I gave up any hope of making an AI that can do stuff like that. I definitely will never be able to program anything in lua or C++, but it's still nice to see others make progress like this.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
Oh cmon man, you are being WAY too harsh on the AI team. I am finding this really impressive. Not perfect, but its outstanding what they have been able to do.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
read the video title, and bold the first word of it.
Amazing. Anyone still doubting these things beating top koreans?
Here, I doubt it. At least not consistently. I wouldn't be surprised to see an AI score a few wins, but that'll largely be because you will have to play differently against an AI than against a human.
For an AI, I find it rather weak. Sure it looks cool, all those vults moving independently, but after the first few seconds no vulture should ever have taken any hits.
I saw that at the end of the vulture video, LowerLogic inputs "/speed 0" and game goes super fast. That's actually very interesting and essential to reinforcement learning. How fast can you play games? (in games per hour or such) This and replay analysis are what make real AI possible. What I've seen so far is simple scripting (still amazing don't get me wrong). I'm impatient to see where all this is going.
Can those that post videos please specify whether the video is of singleplayer or multiplayer? I ask because I've been tinkering with some Probe vs SCV micro, and in singleplayer (with 2 frame latency), the probe can take as much as about 300 health off the SCV before dying, but in multiplayer (with 5 frame latency), it only takes off at most about 40 health. The AI compensates for latency with some basic movement prediction, but it's not enough it seems.
Maybe I'll put up a video of the probe AI in singleplayer at some point.
On November 24 2009 06:36 blueblimp wrote: Can those that post videos please specify whether the video is of singleplayer or multiplayer? I ask because I've been tinkering with some Probe vs SCV micro, and in singleplayer (with 2 frame latency), the probe can take as much as about 300 health off the SCV before dying, but in multiplayer (with 5 frame latency), it only takes off at most about 40 health. The AI compensates for latency with some basic movement prediction, but it's not enough it seems.
Maybe I'll put up a video of the probe AI in singleplayer at some point.
Check out the tournament setup, it's UDP multiplayer mode. I haven't tried, but I don't think you can set the game speed anywhere past fastest in that mode. So if you are going to participate in the tournament, make sure you use that mode for testing.
Also make sure that your AI doesn't mess up if there is an observer (or several, better be safe than sorry) in the game.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
It's impossible not to lose any goons. Think about cool down and acceleration.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
It's impossible not to lose any goons. Think about cool down and acceleration.
That doesn't make it impossible. You can predict both of these perfectly. The hard (and pretty much impossible) part is to predict which unit your opponent will attack. But against an a-moving enemy, not losing any goons should be possible without too much trouble.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
It's impossible not to lose any goons. Think about cool down and acceleration.
That doesn't make it impossible. You can predict both of these perfectly. The hard (and pretty much impossible) part is to predict which unit your opponent will attack. But against an a-moving enemy, not losing any goons should be possible without too much trouble.
That's the other side of the coin. If there is no cool down & acceleration i.e the goon can move out instantly then there is no need to predict the opponent attack
If the AI has solid micro and perfect macro there's no need for the correct strategy or a need for understanding your opponent. And even that can be done.
Ive played against BWAPI macro. And that was already sick. If it also has this kind of micro then unless a player can somehow break the AI or abuse a weakness, how can a human win?
If the AI gets its way then in PvP the AI will have more dragoons and will also micro like this. You can only win if you know the bugs and weaknesses in the AI. Like micro messes up in a choke, or something. A Bisu or Stork will play normally and get crushed.
On November 24 2009 07:01 spinesheath wrote:Check out the tournament setup, it's UDP multiplayer mode.
Yes, this is exactly my point. While it's impressive to have perfect micro with singleplayer latency, ultimately it's meaningless when playing other AI's. I don't want to pick on the goon micro video, because the micro is nice, but I think it was made in singleplayer (because the "start" crystal needed to be clicked). Every AI will micro worse in multiplayer than in singleplayer--it's unavoidable because of the latency. What I'd be most interested to see is how well AI's micro in multiplayer, because I haven't been able to match basic human micro in multiplayer.
I haven't tried, but I don't think you can set the game speed anywhere past fastest in that mode. So if you are going to participate in the tournament, make sure you use that mode for testing.
I don't think this matters at all, except to make sure that the AI isn't taking too long to run. What matters is the latency. In singleplayer, the latency is 2 frames, and in multiplayer, it is 5 frames. At 23.8 frames per second on fastest, that's 84ms lag in singleplayer and 210ms lag in multiplayer, a huge difference.
Well, there are a decent number of WC3 micro maps. Check you OverSky's youtube.
These maps give some godly reflexes, and ridiculous micro to a comp that doesn't have common sense. I can fairly easily defeat them, albeit they can pop an invuln pot with a coil in the air. Before a holy light hits o.0 etc.
On November 15 2009 18:18 MasterOfChaos wrote: A small tip: On LAN Latency which they seem to use for this competition SC only accepts commands every second frame. So I'd do the calculations for time-insensitive stuff(macro) on the frame where it doesn't accept commands, and the time sensitive stuff(Micro) in the frame where it does. This reduces the Latency by one frame.
Thanks for this. This explains why sometimes my attack orders weren't being executed--they were being overwritten by move orders. My testing suggests that orders are only issued after each even-numbered frame, so, frames 1&2 issue their orders at the same time, frames 3&4 issue their orders at the same time, etc. Is this always true?
[11:47] <Drachlen> I was running a test earlier, to make sure my harvester distribution was functioning, and would work under various circumstances. So I kept pulling my probes off the line, hitting stop, etc, just various abuse, and then I was spamming stop, just to see if it could break it. And suddenly, my probes start EXPLODING. and i'm just like, what the hell is going on. (I had no sound) and then I... [11:47] <Drachlen> ...realize, the sc AI had made a dark templar and was killing my base.
Amazing. Anyone still doubting these things beating top koreans?
-It lost several goons -Some wasted shots -They seem to target the closest goon and not the one to minimize the opponents damage output -The other AI just attack moved
Ideally, no goons should have been lost, goons should think collectively and focus fire 1 shot other units with lower health and no shots should ever be wasted. All the AI appeared to do was back up when being shot by more than 1 unit while targeting the closest unit.
I'm not impressed (kidding, still amazing)
It's impossible not to lose any goons. Think about cool down and acceleration.
That doesn't make it impossible. You can predict both of these perfectly. The hard (and pretty much impossible) part is to predict which unit your opponent will attack. But against an a-moving enemy, not losing any goons should be possible without too much trouble.
That's the other side of the coin. If there is no cool down & acceleration i.e the goon can move out instantly then there is no need to predict the opponent attack
There IS cooldown and acceleration. Also, even if there were none, you would still have to predict enemy movement to some extent because otherwise you might get surrounded and no matter how fast you retreat, you will be hit.
On November 24 2009 07:59 Glaucus wrote: If the AI has solid micro and perfect macro there's no need for the correct strategy or a need for understanding your opponent. And even that can be done.
Ive played against BWAPI macro. And that was already sick. If it also has this kind of micro then unless a player can somehow break the AI or abuse a weakness, how can a human win?
If the AI gets its way then in PvP the AI will have more dragoons and will also micro like this. You can only win if you know the bugs and weaknesses in the AI. Like micro messes up in a choke, or something. A Bisu or Stork will play normally and get crushed.
pvp, if all the AI can do is macro and micro goons than it is simple: Hold your choke (easily possible even if the AI has awesome micro), get a DT/Reaver drop up and win. If the AI reads your gameplan perfectly and reacts perfectly, it will obviously win. But once there is a tech advantage for the human player, it becomes a lot harder for an AI to react properly.
I haven't tried, but I don't think you can set the game speed anywhere past fastest in that mode. So if you are going to participate in the tournament, make sure you use that mode for testing.
I don't think this matters at all, except to make sure that the AI isn't taking too long to run. What matters is the latency. In singleplayer, the latency is 2 frames, and in multiplayer, it is 5 frames. At 23.8 frames per second on fastest, that's 84ms lag in singleplayer and 210ms lag in multiplayer, a huge difference.
Just to make sure I get that right: if I play on UDP over a direct LAN connection, I will have 5 frames of latency? And that means that all my orders given out in a set of 5 frames will be thrown together and executed at once (some orders overwriting others)? Or what are the effects of said latency in detail if my assumption is wrong/incomplete?
On November 25 2009 03:29 spinesheath wrote: Just to make sure I get that right: if I play on UDP over a direct LAN connection, I will have 5 frames of latency? And that means that all my orders given out in a set of 5 frames will be thrown together and executed at once (some orders overwriting others)? Or what are the effects of said latency in detail if my assumption is wrong/incomplete?
Edit: After some more testing, I think the info in this post is somewhat off. The latency seems slightly higher in practice than values of BWAPI's enum, and I'm less sure about the mechanics of it in general.
As a disclaimer, I don't have in-depth knowledge of the workings of StarCraft. This is just what I've either read or guessed, and seems to fit how my AI behaves. So if someone with more understanding notices I'm getting something wrong, please correct me. With that said, here goes.
When playing UDP multiplayer with the low latency setting, 5 frames of latency will be present. That means that whenever an order is made, the unit will wait 5 frames before responding to the order. However, it is possible to issue another order before the unit has responded to the first order, and the unit will then respond to the first order and, after that, to the second order.
An additional complication is that orders can only be issued on even-numbered frames; orders that are made on odd-numbered frames are saved up and issued on the next frame. New orders will overwrite saved-up orders, so it's possible to give a unit a command, give a different command on the next frame, and have the unit never respond to the first command.
Here are some examples. Suppose we are controlling a probe to attack an SCV. We want the probe to attack the SCV and then run away so it doesn't die.
Suppose we order like this:
Frame 1: Send order Attack SCV Frame 2: Send order Move away (that is, to a location away from the SCV)
Because the Attack order was issued in an odd-numbered frame, it is saved up until frame 2, where it is overwritten by the Move order. Because 5 frames of latency is added, the Move order takes effect in Frame 7. Thus, the total effect is that for Frames 1-6, the probe is still, and then in Frame 7, the probe begins to move away from the SCV.
Now suppose we order like this:
Frame 1: No order Frame 2: Send order Attack SCV Frame 3: Send order Move away Frame 4: No order
Because the Attack order was issued in an even-numbered frame, it is sent to the probe. It only takes effect 5 frames later, i.e. in Frame 7. The Move order is saved up until Frame 4, at which point it is issued, to take effect 5 frames later in Frame 9. Thus, the total effect is that for Frames 1-6, the probe is still; in Frame 7-8, the probe attacks the SCV; and in Frame 9, the probe begins to move away from the SCV.
Wow after seeing that dragoon micro video I have to say it's really unfortunate this is only being worked on in the twilight of starcraft's career. A sufficiently advanced AI could definitely compete with progamers.
On November 26 2009 01:41 SirKibbleX wrote: Was there not some hack/part of Chaos Launcher or ICCup that allows for LAN or better latency? Could you hack the game to force a lower latency?
Competition rules state that the competition will happen in a LAN environment, so of course all code is being written for 'L2' latency, meaning every second frame commands are given.
So, I must say that this is a semi-shameless plug, but anyone who wants more details, please visit the official forums: http://starcraftai.rabbitx86.net/
It's only been up for a few days, so it's kind of slow and small right now. It's mostly geared towards the competition, but hopefully it will become a wonderful repository for all of the SCAI stuff.
After having watched it i think it is not too bad but it really needs 4 things: - build extra facts to spend his mins - learn to expo - learn pathfiding on ramp - learn to not mine so close to tanks ( could have been a real problem vs a z or a p ).
On December 01 2009 07:48 djsherman wrote: I've released a version of my bot here: http://eis.ucsc.edu/EISBot
It plays Terran and can sometimes beat the built-in AI, but is still really bad overall.
I am impressed! It looks nice, already has some 'intelligent behaviour'.
Hopefully not everything is directly scripted (such has defending the choke point).. if not, congratulations! You're definately going in the right path!
If that IA makes expansions and doesn't stop teching after tanks, it could be quite good vs human opponents who do not cheese.
I remember playing Starcraft at a LAN party after I figured out how to rip the sound effects and voices out of the Starcraft data files. I'd intentionally play with the sound on (no headphones), wait just enough time so that it was believable yet frighteningly early, alt-tab over to a WAV player, then play the sound for "Nuclear launch detected" and watch people frantically scan their bases. It only works once, so use it wisely.
I see your bot keeps reinforcing it's attack. Thought this might be good, I wonder what happens if its opponent has a good defense. Would it keep sending units to their doom?
Are you using any type of learning algorithm atm?
Are you thinking about using them? If so, are you thinking about any type of online learning (during game playing)? only from replays? mixed from replays and from own games (more info available)?
By the way, I am one of the participants, António Gusmão