Hacker News new | ask | show | jobs
by thaniri 2829 days ago
For anyone who actually plays SC2, or any real time game where human speed is a limitation, it should not be surprising that AI would crush human opponents.

This video demonstrates why: https://m.youtube.com/watch?v=IKVFZ28ybQs

AI has crushed humans in Go, the most complicated (widely played) board game. I'll be impressed again by AI when it beats us in physical sport.

13 comments

The article is talking about their AI crushing other AI's, not humans. There aren't any AI's right now that can beat high level human players, even with superhuman reflexes and control.

> AI has crushed humans in Go, the most complicated (widely played) board game.

In terms of ruleset, Starcraft is at least a few orders of magnitude more complicated than Go. It doesn't feel more complicated to humans, really, but the sheer number of variables at play is vastly higher.

Brood War has a significantly higher branching factor than Go: each of ~50 units can receive 3 orders with arbitrary targets (the untargetted ones hardly matter for branching). The map is 4096 x 4096 pixels, though some of those are functionally identical so say 256 (the number of angles a unit can face). So branching factor around 38400. The game runs at 24 fps, and the average game is 20 minutes long, for 480 turns. 38400^480 is a number with 2201 digits.

Starcraft II runs at a higher frame rate and uses higher resolution maps, so these numbers are even more ridiculous there.

> game runs at 24 fps, and the average game is 20 minutes long, for 480 turns.

Messed up your conversion there, fps is seconds and you had game length in minutes, so need to multiply by 60. So that's 28,800 "turns".

Starcraft 2 is not "orders of magnitude more complicated than Go". It's far less complicated in terms of options, and far more complicated in terms of factors like speed/reaction time that don't exist in Go. Those things are difficult to compare at all, but certainly do not qualify as "orders of magnitude", which is measurable.
It absolutely is, which is partly why there aren't any good AI's for it yet, even though we have ones that can crush the best players in the world at Go.

Go's game state, for example, is very small. You can pretty much represent it with a 19x19 array of 2-bit variables, because each space only has three possible states. That's only 722 bits. Maybe a few more to track whose turn it is and how many pieces each player has remaining.

In contrast, Starcraft can have hundreds of units in play from dozens of types, each of which usually has at least a position value (x and y) and a health value, and commonly has other things like energy value and cooldown values. And each of these you'd need at least a 16-bit int. And that doesn't even get into the enormously larger possible action space for each "turn".

> It's far less complicated in terms of options

Could you explain how you figure that in more detail?

I mean, to my untrained eye, it sounds like it wouldn't be so, since in every time slice of the game (equiv. of a turn in Go?) you can have hundreds of points of control - hundreds of levers to choose to pull - and of course that's in every frame (or whatever interval the UI actually allows you input).

This comes up every time Starcraft AI is discussed. It's really frustrating. Why immediately discount the incredible work AI researchers are doing by instantly assuming they are using cheap tactics like shown in your video?

When a Starcraft AI is ready, it will be incredibly obvious if it's using brand new builds, strategies, and tactics (which pros will immediately copy for the next $500,000 tournament) or if it's "just" using 10,000 APM to perfectly dodge attacks in a way that a human never could.

I'm guessing Google and Tencent are going for the former instead of the latter.

I'd really like to see Starcraft AI do counter builds and fake out human opponents with falsified scouting information. I can see AI eventually becoming good at information manipulation and taking advantage of human psychological tendencies.
You could fix this by capping the apm of the AI to 500
I feel like "useful" APM and "raw" APM are very different for humans than it would be for AI. You can technically get an AI to "optimize" their actions to the minimum required for the end result, but humans tend to frantically waste actions during a game.
I would cap it at 300apm, thats how high most professional koreans are IIRC. But that 300 apm is 90% redundant mouseclicks though
I’m pretty sure that program in the video has access to internal game state to know which zergling is targeted, because it splits them when the tanks are out of sight, and always picks the right zergling. A real bot wouldn’t have access to this state, and the one in the article doesn’t. Marines vs zerglings+banelings would probably be a better micro example showing theoretical bot perfect-but-fair micro.

In any case, this can be solved by capping the actions per minute near Pro human levels, somewhere in the 300-500 range.

There are still incredible strategy problems to be solved that cannot be overcome with perfect micro. Figuring out a build alone using RL (which is what I think this paper is doing) is still a huge step.

Deepmind states in their released papers that they limit the actions per minute for the AI so it doesn't just win via speed. Their current approach is a bit simplistic and does not really reflect how humans perform actions but they want to keep it somewhat fair on the "mechanical" aspect of the game. OpenAIs Dota Agent also has similar restrictions although it has shown super human reactions in some cases. This should be tweakable in such a way that the Agent is on a human level and needs to actually be better at the decision making.
Anyone who's played starcraft competitively knows how much infinite potential there is to micro control, much more compared to Dota2, and that even the best players can't reach that level either by a very large margin.

Dota2 is not the same way - some of the best players perform micro-control on par with AI. This makes AI in DoTA much more impressive

To me, the way you've explained it makes DOTA less impressive as a game.
Starcraft focuses more on mostly one critical pivot micro battle, and many compounded macro processes leading up to that point.

Dota II focuses more on compounded micro decisions throughout the entire game for sometimes 60 mins+. Dota II revolves around using your one hero (with the exception of meepo), and teamwork much more heavily. The amount of different scenarios in DoTA II is significantly higher because of all the different heros, skills, levels, and combinations thereof.

Starcraft has very predictable scenarios though. There is usually less than 10 meta builds at any given competitive nerf/post patch balance. Dota II is hundreds if not thousands, per hero, per team composition, etc. So AI is way more impressive in Dota II

>There is usually less than 10 meta builds at any given competitive nerf/post patch balance. Dota II is hundreds if not thousands, per hero, per team composition, etc.

There are hundreds if not thousands of builds for each hero?

What would be interesting is if they limited the AI's ability to that of humans. Ie - simulate how fast a human could potentially group select and point-click, etc. Now THAT would be interesting.

Until then, yes as you put it, the AI would crush humans and unfairly so.

Build a set of robotic hands with human nervous system-like control inaccuracies and delays. Put it on a mouse and keyboard. Point a camera at the screen (tuned to match human visual acuity and eye movement speed and focal area), put headphones on a mic, let the AI play the way humans do.
Go is a perfect information game. RTS are not.

And the micro advantage is not all that relevant since APM and latency restrictions can be imposed on the AI to force them to play under conditions comparable to human players.

Depends on whether or not the AI can see through the fog of war. In some RTS the "insane" level AI has full knowledge of the map. But yes, if it has limited info, like human players, the strategy is much different and much harder for an AI to intuit compared to chess or Go. Unless the winning strategy in the game allows for constant scouting, but is unlikely due to the waste of resources on that unit
If you actually play SC2 (or more significantly, if you follow the professional competitive SC2 scene), you should definitely expect AIs to be a looong way away from competing with professional humans. A pro human with an AI assistant (either to micro for them, like in that video, or macro for them) would obviously be able to beat another pro human on their own, but an AI by itself won't stand a chance with current AI.
I would watch an AI-assisted human tournament, especially where each team is responsible for designing their own AI
It would certainly be interesting. In professional SC2 competitions even simple input macros like fast-repeating clicks or keystrokes are banned. It would likely be a massive advantage.
I play SC2 as well as work on AI/ML during my day job. The state of AI is extremely hyped by the media. The most sophisticated neural networks I have seen so far are recommender systems. The algorithm that predicts which next movie on Netflix you might be interested in based on your history of completed and abandoned movies. However, for all such systems there is a precise way to measure the effectiveness of the AI and improve it by doing A/B testing etc. Main problem with SC2 and AI is there isn't a good heuristic to measure your progress at any point of time. Eg: If player 1 has 25 reapers and player 2 has 8 void rays who is ahead? Well the void rays could destroy all barracks and win or the Terran player might make a few marines and missile turrets to counter the void rays while attacking probes with reapers. Basically, if you pause an SC2 game at any point of time(barring last 2 minutes) you cannot predict the winner with 100% accuracy. This is a big problem for designing an effective AI for SC2.
It would greatly depend on positioning and chance of person winning fluctuates depending on the number of optimal moves available, similar to GO but more complex since there is so many scenarios.

Also you have to consider whether voidrays have speed upgrades, same with repears. Terran can play with fog of war too and lift off, usually terran has an advantage here

Also a factor is that the game is balanced for human inputs. As many crazy micro trick videoes demonstrate by doing things like optimal gapping zerglings against siege tanks.

If players could do that reliably we would start seeing major unit changes. It already happened to the original void rays who would do things like attack themselves to maintain charge to keep massed annihilation capability.

Players can’t do that mostly because it would be impossible to correctly determine which zergling was targeted, this bot has access to perfect game state information from the sc2 editor api and it looks like it is using it to me.

However, a bot could use just the same information a player could theoretically have access to but humans can’t pay attention to it all at once- that would be a real advantage. This one is basically cheating extra information though.

Why doesn't human speed/physical strength lose out in physical sport controlled by AI as well? Isn't the analog of letting an AI take actions in SC2 as fast as it can make decisions just letting an AI control some robotic body arbitrarily better at tackling and running and whatever other relevant physical attributes than humans are?
Machines winning at physical sports has already happened. It is even less impressive than any AI winning at real time games. A race car is faster than a human runner. A speedboat is faster than a swommer. A tank would be an untackleable running back. A rail gun Tennis serve would be unreturnable (etc)
Yes but probably parent meant a fully automated opponent, e.g. not car + human driver but an autonomous car. That probably beats any human in Olympic running races even now. Robot tennis player, not yet.
That's not just super human reflexes it's using information no player connecting through the normal interface has.