Show HN: AI Planning for Starcraft
github.com
github.com
I looked around a little, but didn't find any StarCraft-equivalent to Advanced Chess[1]. If such a thing doesn't exist, it's a shame. The combination of better strategy and ludicrous APM would completely change gameplay.
But talking about AIs in RTS tournament, you may be interested in a tournament of AIs playing starcraft:
They have a live channel with often pretty cool fights.
I think World of Warcraft had a similar bot getting popular before it was banned.
Remember, it's not just doing predictable actions every time. A lot of it is dancing back and forth and trying to bait your opponent.
So an AI might say "focus firing a stalker is the most efficient" and the human player blinks it away. Then it chooses the next target and the human player blinks that away as well. And so forth until the human player runs out of healthy stalkers and simply walks away with hurt stalkers having done enough damage.
The "correct" solution might have been actually to run past your opponent's army and to surround it spreading the damage. Even when you blink out you're still close to the enemy army because of blink's range.
There could be a mathematical model that predicts whether to run past or to attack or to stutter-step, but humans do this based on experience. AIs are not close to this level of sophistication.
So instead of 'attack this unit,' the player could command his units to 'attack the weakest stalker in range.' Or even, 'stutter step along this path, concentrating fire on the weakest anti-air unit.'
Nevermind the fact that while the computer is doing this micro, it is also able to do macro.
now think what the bot would have to do if it's controlling the banelings KNOWING that the other person is going to control the marines away and it's not as simple
Intro: http://springrts.com/wiki/Lua_Widgets Forum: http://springrts.com/phpbb/viewforum.php?f=23&sid=83343bd3a4... List of plugins: http://widgets.springrts.de/
-discreteness: Well, I think it's safe to assume that every starcraft state is discrete (for sure it's binary representation is) but in general you cannot assume it.
- imperfect information: For planning, it's necessary to know or meaningfully guess the state of the enemy and that is not possible due to fog of war. Therefore, everything involving enemy interaction cannot be planned.
- dimensionality: There are so many actions available at each state that you shouldn't even be able to reach a depth of 3 of the planning tree in a reasonable amount of time. For instance, if you have 50 units, you can send each subset of them to attack or move to say 128x128 points on the map, you end up having 2^50 x 16k x 2 possible moves. And that doesn't include build units, build buildings + some more exotic stuff like patrol, set rally points, ...
You can prune some stuff (e.g., never attack with peons after minute 10, never move to or attack your own buildings) but the order of magnitude should stay the same.
So planning is nice but not for continuous problem spaces (real world), problems with imperfect information (every good card game) or problems with a high number of actions (something as "easy and simple" as Go), rendering it IMO not so useful after all.
Processing 2^55 moves is not really needed to win a game. At least I believe a human brain uses a different approach. And an AI which wins on average only every second game is just right. Who - honestly - has fun with an unbeatable AI?
To get a decent starcraft AI you will need more than the ability to make plans to build battlecruisers: you will need the ability to choose the best plan for the recognized situation, to take decisions under uncertainty and to make compromises between objectives.
What this person provides is a (very non-optimal) algorithm to build anything within the tech tree of starcraft, but building is just one part of the game, and the only easily pannifiable one.
https://github.com/agentx-cgn/Hannibal/blob/master/source/si...
A genetic algorithm, of course, is much different than using AI to solve the problem, but I think it's an interesting project nonetheless.