|
I have a nitpick.
I think Automaton 2000 etc. is cool and all, but 10 Bazillion APM doesn't really help us understand the game.
I think that AIs developed for Starcraft 2 should be limited to approximately the maximum APM possible by rapidly hammering a mouse and keyboard with 10 fingers. Which would still be ludicrously high, and impossible for a human to perform accurately- but at least it would show the actual skill-ceiling, rather than the thin air high up in the skill-stratosphere, dozens of miles above the skill-ceiling.
I mean, at this point, they're really just individual unit AI with some slight lag for high unit numbers. Not really a virtual SC2 player.
To me that's like using an 88mm cannon as a pitching machine.
I'd like if an AI was developed with ~800 APM to use reads and probabilities to solve some kind of basic strategic problems.
|
On November 25 2012 00:48 LavaLava wrote: I have a nitpick.
I think Automaton 2000 etc. is cool and all, but 10 Bazillion APM doesn't really help us understand the game.
I think that AIs developed for Starcraft 2 should be limited to approximately the maximum APM possible by rapidly hammering a mouse and keyboard with 10 fingers. Which would still be ludicrously high, and impossible for a human to perform accurately- but at least it would show the actual skill-ceiling, rather than the thin air high up in the skill-stratosphere, dozens of miles above the skill-ceiling.
I mean, at this point, they're really just individual unit AI with some slight lag for high unit numbers. Not really a virtual SC2 player.
To me that's like using an 88mm cannon as a pitching machine.
I'd like if an AI was developed with ~800 APM to use reads and probabilities to solve some kind of basic strategic problems.
Well that's another question: How much strategy is needed to counter the brute force of incredible good micro. That spans back to the question if the program still might lose even if it trades cost efficient throughout the game. (maybe until the last battle).
|
On November 25 2012 00:48 LavaLava wrote: I'd like if an AI was developed with ~800 APM to use reads and probabilities to solve some kind of basic strategic problems.
"basic" strategy gets thrown out the window with machine-level APM. take for example certain strategies that pros use that require high apm. you won't see these strategies in lower levels because the players don't have the speed or know how to divide their attention to the different tasks.
with 800 apm... ZvZ will almost always be zergling baneling micro wars except that the computer will be nailing near perfect macro while the human player is microing their heart out on the baneling front
basically, it is to the computer's advantage to play harass-heavy, micro-intensive build orders to keep the other player busy while they macro up 40 bcs
|
even if you limited it to a number of APM, remember that what's being spammed is macro APM, not micro APM. At 800 apm you can blink 200 stalkers a second - no human is going to be able to do that, not only does the machine have more APM, but it is capable of using its APM more effectively. I think fighting against an AI that is limited to 10 keypresses and 10 clicks a second (so 20 APM) would be required to make the AI play on the human level.... but then the algorithms to decide what 20 apm is the most effective would be harder to code than the whole rest of the AI .
|
On November 26 2012 18:58 GoldenH wrote: even if you limited it to a number of APM, remember that what's being spammed is macro APM, not micro APM. At 800 apm you can blink 200 stalkers a second - no human is going to be able to do that, not only does the machine have more APM, but it is capable of using its APM more effectively. I think fighting against an AI that is limited to 10 keypresses and 10 clicks a second (so 20 APM) would be required to make the AI play on the human level.... but then the algorithms to decide what 20 apm is the most effective would be harder to code than the whole rest of the AI .
Note: APM means Actions Per *Minute*, not per second ^^
|
The reason Deep Blue was able to handle chess is that, for all it's complexities, chess still has a finite number of moves and possibilities. Computers that beat humans at Chess basically have records of every competitive chess match ever played, and compare what they are seeing on the board to what's been done in the past and choose the moves needed to win.
This is very much not the case in a game like SC2 where you have dynamic unit movements, economy, stuff like building placement, etc. There are, probably, exponentially more variables to take into account. Plus, you have 3 asymmetric races, not two mirrored opponents where the only difference is one moves first.
|
On November 26 2012 19:24 KrazyTrumpet wrote: The reason Deep Blue was able to handle chess is that, for all it's complexities, chess still has a finite number of moves and possibilities. Computers that beat humans at Chess basically have records of every competitive chess match ever played, and compare what they are seeing on the board to what's been done in the past and choose the moves needed to win.
This is very much not the case in a game like SC2 where you have dynamic unit movements, economy, stuff like building placement, etc. There are, probably, exponentially more variables to take into account. Plus, you have 3 asymmetric races, not two mirrored opponents where the only difference is one moves first.
Starcraft also has a finite number of moves. The board (map) is divided into discrete regions and also time is discretized (though in "turns" that are just a fraction of a second). Granted, the number of moves is extremely large, but still finite. Deep Blue didn't win by exploring every possible outcome of a move, because the number of moves in chess is still too large for that. It won by a combination of brute force and heuristic valuation of certain positions.
There's a major difference between SC2 and chess when it comes to AI-versus-humans though. In chess, humans aren't handicapped by handspeed. The ability to micro and macro to absolute perfection makes it much easier for a computer to beat a human. Just like a masters/GM player can beat a bronze-level player by pure mechanics (make 1 type of unit and win with it due to superior macro/micro), a computer should be able to beat a high-level player just by superior mechanics. Blink Stalker + Obs with perfect Blink control and perfect macro behind it will be extremely hard to stop for example.
I still feel that if you give an AI made for perfect micro/macro a simple build-order that is very safe and cheese-proof and leads to a very microable composition, it will be able to crush most opponents with the superior mechanics rendering any strategic advantage that the player may have useless.
|
Considering that there's 14 pages of posts, I feel like perhaps too many people have been posting about irrelevant things, or saying things which have already been said, or something else.
There's not a whole ton of things to say. - For one, there's micro, which is obviously handled. - Secondly, there's general strategy. - Third, there's playing without map cheating - Fourth, there's dealing with terrain (mainly an issue because SCS2 engine/AI doesn't support it that well?) - Lastly there's learning without certain pre-programmed guidelines (obviously some things are programmed to the AI, but not specifically what counters what, or a build order, etc.).
In my opinion the learning part is unnecessary, and would far and away be the most difficult thing to program. Using pre-programming/rails/rules/guidelines the AI can act fine without having to learn the optimal things itself.
While it might not be perfect, there are many not-too difficult things that can be implemented to allow dynamic play. In my opinion, you can approach it much like the way a human would approach the problem in their mindset. 1. Have a handful of pre-programmed starting build orders (first 5 minutes or something) that are known to work well. Some of the build orders might be so specific they're generally only useful for 1 specific strategy too (like 6 pool), but most could branch into many things. The build order used would be picked at random (weighted), but only out of a pool of builds which are suitable vs the particular opponent's race. 2. Implement a basic scouting technique, not unlike that which exists already (seems very simple to do, but maybe a bit more additional work to also scout hidden things) 3. Program specific counters to the strategy that the opponent is running, based off what's logical and/or what professional players do. This can be as simple as prescribing x ling/roach/infestor for every x stalkers, or more advanced such as "plan earlier expansion vs this build", or "execute a timing attack vs that build"
Aside from that, the other thing to do which may be the most difficult, is to get the AI familiar with terrain well— recognize bottlenecks/walls/cliffs in and out of combat, recognize the value of Xel'Naga watchtowers, and general army positioning.
While I've heard that SC2 has the issue/challenge of not having an API made for it (like BWAPI), I just see that more of a detour/challenge as opposed to an impossibility with regards to programming an AI in Staredit. This is because galaxy has some pretty reasonable/strong features available, and with Blizzard having increased the maximum script size a while back it makes it more doable as well (although that might be another issue that would still need to be addressed. I don't know why the heck they have it limited to such a small size; WTF is the point?).
There have been numerous people working on AIs, but it seems like they all lost ambition in making a truely competitive/great AI. There was an AI (AI vs AI) competition on SC2mapster that had a few reasonable AI features in some of them, a guy who programmed choke detection for any given zone on a map (and partially how to wall them off), someone that programed an AI that runs on pretty strong rails (green tea AI creator) and unfortunately had some really bad build orders in it's default list, and I'm sure some others as well. I don't know why specifically these people have had little-to-no progress, but I've always been interested in this issue and have been following it avidly on and off for quite some time now. Frankly, I was expecting lots more people to be interested in this, and that some really great/competitive AIs would be in-use right now. That is because before SC2 was even released, programmers have been dissecting Blizzard's AI code to make better ones. When SC2 went gold, it had AIs that were pretty good aside from the fact they were on quite strong rails. The fact that there aren't great AIs out by now is quite surprising to me.
|
On November 26 2012 19:32 Rannasha wrote:Show nested quote +On November 26 2012 19:24 KrazyTrumpet wrote: The reason Deep Blue was able to handle chess is that, for all it's complexities, chess still has a finite number of moves and possibilities. Computers that beat humans at Chess basically have records of every competitive chess match ever played, and compare what they are seeing on the board to what's been done in the past and choose the moves needed to win.
This is very much not the case in a game like SC2 where you have dynamic unit movements, economy, stuff like building placement, etc. There are, probably, exponentially more variables to take into account. Plus, you have 3 asymmetric races, not two mirrored opponents where the only difference is one moves first. Starcraft also has a finite number of moves. The board (map) is divided into discrete regions and also time is discretized (though in "turns" that are just a fraction of a second). Granted, the number of moves is extremely large, but still finite. Deep Blue didn't win by exploring every possible outcome of a move, because the number of moves in chess is still too large for that. It won by a combination of brute force and heuristic valuation of certain positions. There's a major difference between SC2 and chess when it comes to AI-versus-humans though. In chess, humans aren't handicapped by handspeed. The ability to micro and macro to absolute perfection makes it much easier for a computer to beat a human. Just like a masters/GM player can beat a bronze-level player by pure mechanics (make 1 type of unit and win with it due to superior macro/micro), a computer should be able to beat a high-level player just by superior mechanics. Blink Stalker + Obs with perfect Blink control and perfect macro behind it will be extremely hard to stop for example. I still feel that if you give an AI made for perfect micro/macro a simple build-order that is very safe and cheese-proof and leads to a very microable composition, it will be able to crush most opponents with the superior mechanics rendering any strategic advantage that the player may have useless.
biggest difference is not accually number of possible moves. its lack of information. on chess board, there is no fog of war. no moves are hidden from computer. there is no need of innovation, or intuition. there is only optimization.
|
|
|
|