(no title)
scottjad | 10 years ago
In Go, anyone can place a stone as well as anyone else, it's deciding where to place a stone that's the game. In Starcraft, not everyone can control the interface to the game equally well. Playing Starcraft without using the same interface as humans is like playing baseball with something other than a baseball bat.
Also, I think it's unfortunate that they're choosing Starcraft 1: Brood War (presumably because of API reasons) instead of Starcraft 2, since there are many more top-level players playing sc2 right now to give it a run for its money, with an evolving meta that could more likely adapt and challenge the AI after it wins some matches. SC2 is where the tournaments and money is right now (compared to BW), hence the best players devoting the most time.
barbs|10 years ago
> ""Why not StarCraft 2?"
> This is the question we always get asked when we tell people we are doing a BroodWar AI competition. This competition relies completely on BWAPI as a programming interface to BroodWar. BWAPI was created by reverse engineering BroodWar and relies on reading and writing to the program memory space of BroodWar in order to read data and issue commands to the game. Since any program that does this can essentially be seen as a map hack or cheat engine, Blizzard has told us that they don't want us to do anything similar for StarCraft 2. In fact, most of the StarCraft 2 EULA specifically deals with not modifying the program in any way. We are happy that Blizzard have allowed us to continue holding tournaments using BWAPI, and they have also helped out by providing prizes to the AIIDE tournament, however until their policy changes we will not be able to do the same for StarCraft 2."
[0] http://webdocs.cs.ualberta.ca/~cdavid/starcraftaicomp/report...
beambot|10 years ago
https://graphics.stanford.edu/~mdfisher/GameAIs.html
derefr|10 years ago
stared|10 years ago
In that way there would be no need of any privileged API... and it would be more natural (i.e. interacting with the real way, instead of its abstracted version).
rasz_pl|10 years ago
rcheu|10 years ago
I think there's no need to make it use a keyboard/mouse, you should just add in some human like constraints that are assumed in the game (some limit on APM, some delay between moving the screen and being able to take an action/observe the state).
The interesting part would be whether they can build an AI, not a robot. It's unfortunate that both games are pretty figured out at this point though, it'd be interesting to see if an AI could be made that could react to a big metagame change like http://wiki.teamliquid.net/starcraft/Bisu_Build
ajuc|10 years ago
Still, if there's no api then there's no point complaining.
kriro|10 years ago
ludamad|10 years ago
levemi|10 years ago
It's something humans have to put up with, the AI should too?
nkrisc|10 years ago
obl|10 years ago
SerLava|10 years ago
Yeah, I've followed Starcraft AI automation for a while. The people programming these AI systems have basically been creating individual unit AIs with a tiny bit of latency.
It's cool to watch but absolutely does not advance the game theory of Starcraft. If you actually had to ration moves, they would have to come up with quite interesting systems. I'd be fine with something borderline impossible like 500 APM - as fast as you can physically click buttons with 10 fingers. Not 2000 APM.
hiq|10 years ago
erm|10 years ago
narsil|10 years ago
"The system only gets raw pixels as input."
The results were pretty great, so it would be fascinating to see this work with Matt's version of SC2 as mentioned elsewhere in this thread: https://news.ycombinator.com/item?id=11326119
daveguy|10 years ago
"The emulator’s internal state is not observed by the agent; instead it observes an image xt ∈ Rd from the emulator, which is a vector of raw pixel values representing the current screen. In addition it receives a reward rt representing the change in game score."
The paper: http://arxiv.org/abs/1312.5602
foota|10 years ago
JabavuAdams|10 years ago
That's the easy part, though. If you can make a SC AI play well against a human you can certainly send mouse events into a window. It really doesn't show anything.
See for example Sikuli, which you can use for automated testing.
shultays|10 years ago
Further limiting the apm would be no different than limiting the AI itself. It wouldn't be any different than limiting the cpu/memory usage imo.
unknown|10 years ago
[deleted]
trollingineer|10 years ago
[deleted]