On November 12 2012 08:01 Fluid wrote: The brood war AIs are somewhere around master level (C- to C+), so they beat 95% of players already.
Not even close, the BW AI is a joke and any D- player wouldn't need more than 2 games to beat it (first game to see what it does since it does pretty much the same thing every time, second game to beat it).
On topic, I think it's very possible since perfect micro is already something that is doable by AI's, but it'd be a lot harder to make an AI that isn't too predictable, is very thorough with everything it does, scouting, building placement etc, and that doesn't just die to some random cheese. Hard, but possible.
right, though there were some fanmade AI's that played around decent level (around D+ C- Skill) if i recall correct. Im afraid i cant link it right now.
In starcraft you make decisions using incomplete informations.
For a computer make abductions ( http://en.wikipedia.org/wiki/Abductive_reasoning ) is still problematic, but in the next years they will probably be able to do that. A.I. research are growing very fast.
Developers don't really seem to care that much of AI I've noticed, Feels like its only become dumber by years in almost every genre. They compensate with just giving them more resources or faster reaction/aim time depending on games, really no wonder everythings becoming MP when AI needs to cheat to beat you.
You can. What you're going to be using instead is going to be machine learning rather than some sort of pre-scripted set of responses to an information set like people seem to be assuming. It's absolutely possible to program an AI that can beat any top pro.
On November 12 2012 09:57 Tanukki wrote: I'm sure a pretty strong bot could be made for Starcraft. However, the nature of the game would change when playing against that. Basically the human player needs to make a situation that the bot isn't programmed to handle and where the inhumane micro tricks don't matter.
Some things that seem difficult to program:
Anything in late game Defending against harassment Defending against multi-pronged attacks Base trades Using spellcaster units
To make an AI for Starcraft that would actually regularly beat the pros even after its gimmicks are figured out, would probably take almost as much effort as for Go, which has had lots of attention and huge projects dedicated to it since forever, yet the bots are still losing to Go professionals. Starcraft is a video game that keeps changing and will fade sooner or later, so no one's going to start long winded AI projects for it. Also just because of how the game is, the programming would be rather tedious and uninteresting.
It's possible in theory, but in practice we will most likely never see pro level bots for Starcraft.
Actually this things seem to me rather the easier stuff.
Late Game: Computer controlls large amounts of units just as good as small amounts. The unlimited apm can shine. Defending against multipronged harassment: Asses the danger of each attack and the neaded effort of repelling it , then split the army accordingly. Using spellcasters: Just place your storm/fungal/emp where the highest damage occurs.
Diffiicult for me seems: Scouting and reacting to builds. Using the map. Taking intelligent risks in build orders there is always a strategy of the opponent that does well against yours, so of all the strategies that could all be countered the ai has to choose one).
On November 12 2012 22:14 MHT wrote: Developers don't really seem to care that much of AI I've noticed, Feels like its only become dumber by years in almost every genre. They compensate with just giving them more resources or faster reaction/aim time depending on games, really no wonder everythings becoming MP when AI needs to cheat to beat you.
Bob Fitch has steadily improved the AI combatants from WC2, SC1, WC3 and finally SC2.
Blizzard has provided AI MOD-ders with far better tools to make better AI for SC2 than they did for SC1. Blizzard does care about AI and has allocated resources to improving it.
Its now up to the AI community to do something cool with it.
On November 12 2012 22:14 MHT wrote: Developers don't really seem to care that much of AI I've noticed, Feels like its only become dumber by years in almost every genre. They compensate with just giving them more resources or faster reaction/aim time depending on games, really no wonder everythings becoming MP when AI needs to cheat to beat you.
Bob Fitch has steadily improved the AI combatants from WC2, SC1, WC3 and finally SC2.
Blizzard has provided AI MOD-ders with far better tools to make better AI for SC2 than they did for SC1. Blizzard does care about AI and has allocated resources to improving it.
Its now up to the AI community to do something cool with it.
Question is will blizzard utilize their work or are we going to see the same dumbass A-move across the map with hydras in legacy of the void.
Playing a against an AI without any cap on mechanics isn't that meaningful IMO. Maybe there are some strategies you could come up with that beat the computer every time regardless of micro but again that isn't very interesting. If the computer can micro every single unit every single frame then it is literally playing a different game than you are, because you are using a machine interface to give your inputs to the game.
Saying that the computer can only play with 500 APM and then making an AI that can beat humans with that limitation is more interesting.
Computers still lose to top humans in poker what?? I'm pretty much sure it is absurdly easy to program a computer to be as good as any top player by adding a complicated system of randomness that would be too hard to predict and yet would still take advantage of easy computing that poker implies. Can't really be better since that game is so random.
On November 12 2012 22:14 MHT wrote: Developers don't really seem to care that much of AI I've noticed, Feels like its only become dumber by years in almost every genre. They compensate with just giving them more resources or faster reaction/aim time depending on games, really no wonder everythings becoming MP when AI needs to cheat to beat you.
Bob Fitch has steadily improved the AI combatants from WC2, SC1, WC3 and finally SC2.
Blizzard has provided AI MOD-ders with far better tools to make better AI for SC2 than they did for SC1. Blizzard does care about AI and has allocated resources to improving it.
Its now up to the AI community to do something cool with it.
Question is will blizzard utilize their work or are we going to see the same dumbass A-move across the map with hydras in legacy of the void.
you can't build a really good AI with balance changes occurring very close to the shipment date of the product. also, new maps etc.
As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
In other words, the metagame needs to be translated into human input lines in addition to the strong micro and macro of the AI. There is no need to code every variable, only every standard reaction. Humans most definitly will facepalm when they realize they are out of supply, minerals or gas at a certain point in time, but computers can calculate these things ahead of time with perfect precision based on the number of operating workers alone.
That, in addition to the metagame ruleset made by the top gamers today will build a fierce AI. But who the hell wants to spend 500 nights collecting, analyzing and translating the metagame? Not to mention update it every month at least, humans adapt very quickly to new developments.
At least we can rest easy, computers won't be taking over humanity for a long long time
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
In other words, the metagame needs to be translated into human input lines in addition to the strong micro and macro of the AI. There is no need to code every variable, only every standard reaction. Humans most definitly will facepalm when they realize they are out of supply, minerals or gas at a certain point in time, but computers can calculate these things ahead of time with perfect precision based on the number of operating workers alone.
That, in addition to the metagame ruleset made by the top gamers today will build a fierce AI. But who the hell wants to spend 500 nights collecting, analyzing and translating the metagame? Not to mention update it every month at least, humans adapt very quickly to new developments.
At least we can rest easy, computers won't be taking over humanity for a long long time
You can of course get rid of the human input for the most part. Instead using automated machine learning and data mining. You save human time, but you postpone the result. Its a trade-off.
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
In other words, the metagame needs to be translated into human input lines in addition to the strong micro and macro of the AI. There is no need to code every variable, only every standard reaction. Humans most definitly will facepalm when they realize they are out of supply, minerals or gas at a certain point in time, but computers can calculate these things ahead of time with perfect precision based on the number of operating workers alone.
That, in addition to the metagame ruleset made by the top gamers today will build a fierce AI. But who the hell wants to spend 500 nights collecting, analyzing and translating the metagame? Not to mention update it every month at least, humans adapt very quickly to new developments.
At least we can rest easy, computers won't be taking over humanity for a long long time
You can attempt to, for a large part, automate this process via some form of machine learning.
Feed the AI a ton of replays and allow it to characterize games by things like early build-orders (10-pool, 14-hatch/14-pool, etc...), expansion timings ("3rd taken between minute X and Y"), basic unit-compositions and then create a list of which setup beats what. With enough input, some patterns should emerge that the computer can work with. Of course, due to the fact that a superior player will win from an inferior player with a build that may not be the common counter, the data will be rather noisy, but there should still be enough signal left for the computer to get some basic patterns on how builds, expansion timings, etc... couple to win-chance. Such a setup would also be able to detect metagame shifts as it sees certain builds, unit-comps and expansion timings become more prevalent or fade out.
If you then setup the AI to prefer safe, standard builds, it should be able to come up with a reasonable setup to survive earlygame rushes and enter into the midgame. At this point it becomes more difficult, as the AI will have to assign a value to certain positions. How badly does it want to hold the watchtower? How many troops to commit to a hidden expo that the enemy built? (note that scouting shouldn't be an issue, as the perfect macro from the AI should allow it to always have a free worker or obs (or more) to scout around unless it's contained).
Though I feel that an AI just building up a large well-rounded army while expanding at a decent pace and then attacking when (near-)maxed should beat plenty of opponents if the AI is programmed well. While we may gasp at micro and macro feats of the top Koreans, there's still a vast gap with the theoretical best performance, a gap that an AI can close. In large battles, this will become most notable, perfectly controlling each unit individually in a 200/200 battle while keeping up perfect macro to reinforce is something that will beat almost anyone.
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
But ultimately all the numerical factors in chess engines do not depend on human input, they're fine-tuned by playing millions of short (typically 1 to 10 second) chess games. A chess engine can easily be 1000 Elo points stronger than its author.
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
In other words, the metagame needs to be translated into human input lines in addition to the strong micro and macro of the AI. There is no need to code every variable, only every standard reaction. Humans most definitly will facepalm when they realize they are out of supply, minerals or gas at a certain point in time, but computers can calculate these things ahead of time with perfect precision based on the number of operating workers alone.
That, in addition to the metagame ruleset made by the top gamers today will build a fierce AI. But who the hell wants to spend 500 nights collecting, analyzing and translating the metagame? Not to mention update it every month at least, humans adapt very quickly to new developments.
At least we can rest easy, computers won't be taking over humanity for a long long time
You can of course get rid of the human input for the most part. Instead using automated machine learning and data mining. You save human time, but you postpone the result. Its a trade-off.
To continue the chess analogy, the point is that takes too long (without infinite processing power or whatever). It's the human input that makes AI increasingly strong as you drastically cut down possibilities. 99.99% of opening variations in chess are basically discarded because they're 'bad', even though they are not calculated out to forced losses because it would take an infinitely long time to do so. Human input is important because of the sheer, near infinite number of possibilities in every situation.
The problem in SC2 in particular is that you would almost certainly end up with one race being superior to the others, so "computer SC2" would basically be one single mirror match.
On November 12 2012 23:38 marvellosity wrote: As a chess player myself, the interesting aspect of engine programming is the human input.
Naturally computers can "brute force" calculate infinitely better than humans do, but it is the human input that is the most interesting. Rybka had an amazing opening book, tailored for computers.
Then there are how the programmers make the engine prune certain lines to increase efficiency, some lines will be looked at 20+ moves deep, some discarded after a couple.
Maybe the most interesting thing is the human input into an engine's evaluation of the position. It is a program's ability to evaluate extremely accurately that distinguishes the very best engines from merely extremely strong ones. And here the human input is vital, because built into the simple numerical evaluation are abstract concepts like space, weak points, control of squares, king security, etc, and the ability to correctly evaluate a position at the end of a calculated line is of paramount importance.
Probably any engine playing SC2 would need similar human input as with chess.
But ultimately all the numerical factors in chess engines do not depend on human input, they're fine-tuned by playing millions of short (typically 1 to 10 second) chess games. A chess engine can easily be 1000 Elo points stronger than its author.
You're missing the point. Of course all chess engines are stronger than their authors.
The basic problem of early chess computer engines is that they were too 'materialistic' - oh look, there's a pawn! Now my evaluation is +1 and I am much better! In the earlier days, humans were easily able to take advantage of this inherent weakness of computers.
It was the later, human, building in of evaluations that removed this problem. Because taking this pawn actually leads to intangible advantages for the side sacrificing the pawn, and computers simply do not have the computational power to work them all out.
So you build in evaluations, like I said with king safety, pawn structure, piece activity and the like, and now computers can appreciate that maybe taking this pawn is not a good idea after all.
If computers only used computational power, top human GMs would easily crush engines time after time.
Basically computers simply cannot tell what is good or bad without being told what is good or bad by authors in the first place. And it's the relative value authors place on various things that distinguish top-end engines.
Edit: but what you say is true, computers do do these many-short-games thing. It's called Monte Carlo analysis.
On November 12 2012 22:19 See.Blue wrote: You can. What you're going to be using instead is going to be machine learning rather than some sort of pre-scripted set of responses to an information set like people seem to be assuming. It's absolutely possible to program an AI that can beat any top pro.
Super smash bros melee use such a system but AI are still easily beatable, despite them learning from your plays. Computers won't be able to beat pros without cheating.