The problem with an AI is that for the most part they are scripts.
...
They lack the ability to analyse a situation ... can not question the information they have.
...
They lack the ability to learn from play.
...
They lack the ability to plan and manage.
...
Also the problem ... is the question of "why?" ... For the most part it is tactical, basically the further in the future you can see the more chance you have to win. This is where the computer does better than a human, visuallizing the board arrangement 4 moves ahead for every possible move...
Those are excellent points. And I think you pretty much nailed the problem on the head.
Thing is, artificial intelligence is a
science. There are advanced college courses devoted to it. However, my impression is that many game designers - particularly indie developers - do not devote much time to the AI. Some don't even crack open a book on the subject, much less have a college course on the subject under their belt.
I'm just saying some developers seem to treat the AI as an afterthought, whereas it should be a major focus. Granted, you have to have a game under development before work on the AI can progress. But too many publishers prematurely release a game with dismal AI. And sometimes (not always), some time down the road, they release a patch to improve it.
As you said, a game of chess is very linear. But a game like Aurora is very complex, with a lot of possible "moves" or choices being analog or even abstract. And a lot can depend on the game options and settings. A strategy that works beautifully in some settings may tend towards failure in other situations.
How does one go about programming the AI? Creating a "script" for the AI to follow seems like the only viable solution. But that's the easy way out.
A somewhat better solution would be to have a number of different AI "scripts" and have each computer opponent randomly pick one. That alone would make it much more difficult for a human player to predict the moves of computer opponents. Also: In the
Allow Limited Modding of Aurora thread I mentioned how fans of VGA Planets were given the ability to use pseudocode to write their own AI script files to replace the default AI.
Taking it to the next level, a framework could be developed for the program to literally
learn to improve itself, perhaps relying on one or more scripts
initially. A good AI can
learn from AI losses and wins/gains, from player losses and wins/gains, or AI updates from a central website.
It's true, though: Electronic games have been around for, what, 30 going on 40 years? And in that time game AI hasn't developed a whole lot. What more modern games
should be aiming for, especially with the memory and processing power we have today, is a basic simulation of a
neural network to learn the way biological organisms learn.
I mean, come on! Computational models for neural networks
have existed for
OVER 70 YEARS! It's successfully utilized in speech recognition and image analysis software, and in autonomous robots. So why don't we see it utilized more in modern games?
At the end of the day, making an AI that can provide a challenge after the first few plays to a human is very very difficult.
You make it sound as if creating a decent AI for a game more complex than chess is so difficult it borders on the impossible.
While the quality of AI in games as a whole tends to lean towards poor or pathetic, there are exceptions. I'd
like to consider Galactic Civilizations I an exception - it's actually
too challenging for it's own good - but the computer opponents cheat so darned much (they all have an omniscient knowledge of the entire galaxy) it's difficult to tell how much of its ability is a simulation of strategy and how much is cheating. The reason I mention it is because the company
boasted of how the AI "learns" by connecting with their website and literally updates itself with data from the games of other players, training itself to emulate the techniques of winning human players.
It's a bold idea and I wish more games did something like this, though I'm sure it'd be a challenge to program and the mileage would vary. That, and I have a hard time trusting programs that - behind the scenes and without prompting - connect to the Internet to share my information, regardless of the reason.