Hi Analyst Redux:
Quote:
|
Originally posted by Analyst Redux
Doing good AI is a really really hard task. As nostalgically attached as I am to the cool and quirky game line of Sid Meier (my nostalgia goes back to Pirates!), I think that the time when a single programer, or small group working above the proverbial garage, could startle us with AI ingenuity has come and gone. It just ain't as easy to do as it looks.
|
I actually think non-commercial groups will soon develop AI Much better than what the commercial houses do. There are a few basic reasons:
The release cycle for commercial games is Very hostile to deep thought about AI. What's needed for good AI are a basic set of Solid rules for what the good strategies in the game tend to be. To do this you need Time after the design is firmed up. The commercial release cycle will Never make this much time available IMO.
Game design as practiced by the commercial houses rarely make it a Consideration of design that it should be something an AI can reasonably handle. They design what they think is cool, and then leave it to the poor sucker doing the AI to figure out how to cope. Simple models of economics etc. as exist in the Civ series are nearly Chaotic, in that small changes in strategy can produce very different results. For example you either win a wonder race, or you don't with vastly different prospects depending on which way it went. There are Plenty of ways to make a fun game, why not pick the ones that are easier to handle because they're less prone to near-chaotic behavior. Please don't misunderstand me, there will Always be make-or-break events, but getting the frequency down to those representing big battles and a few other things would help a lot.
Cutting-edge graphics don't leave as much time for AI as we strategists want.
Finally, AI models tend to be Global rather than hierarchical. Individual units tend to blunder around without a real AI general leading them. The result is about what happens in the real world without leadership able to exchange information with the troops.
Over-dependence on things like finite-state machines that need to have all the thought put into them before the games starts. I think with the awesome amount of processing power available now, some simulation of possible results of a small set of strategies can be investigated by the AI. That wouldn't be like human thought, but it means all considerations don't need to be put into the game AI ahead of time.
(The diplomat, I didn't see your post two above before I put this up... I think the ideas are fairly similar!)
Here is a crude outline of what I think is the right way to do AI (taken from another thread):
Let me give you a very broad-brushstroke view of how I think virtually every level in the AI can work. I believe this approach can work for everything except the top few levels of very broad overall strategy. I have specific models in mind, and/or on paper for virtually all of them, but I don't think going through the specific ones would be of value here. (see Hierarchical AI link below for more detail) Here's how each level of the AI works.
1. Strategy to guide this level comes down from above
2. Rules are used to generate an alternative series of possible best ways to execute the strategy (the number tested depends on processing time). Alternative counter-strategies based on knowledge of the enemy are also formulated (we can cheat on this if absolutely necessary, although I would prefer not to).
3. As much as possible our alternative best strategies are tested against good enemy strategies. This is Not done as a simple mathematical equation, but is rather played out in a simplified world model that we think can capture the Essence of what is important for this level. So it is through simulation, rather than calculation that I hope to capture the interaction of different strategies by competing civs.
4. At this point, if it's required that we stop, we just pick from the best indicated strategies. If there is extra time, there is a large variety of things that can be done. The one that I think is most attractive, is to encode the strategies as as individuals in a population of a genetic algorithm approach. We then pursue more simulations as in 3, but while tweaking the strategies through mutation and crossover. If the rule-based approach can give us any hints as to which are the most productive things to change, the more the better. The chromosomes will not generally contain numbers at all, but contain strategic objects. "Take Berlin", "obtain alliance against the Greeks". A mutation in the strategy might be something like "it would be nice to get an alliance against the Greeks, but it isn't that essential", or "it's Imperative". I'm not sufficiently foolish to think that this approach will very frequently give an answer better than the rule-based approach. However, it has the potential to break the AI out of the rut of always doing "predictable" things.
The hierarchical AI is used to form a bucket brigade for the strategies being considered. The higher strategic thought pours down from "above" (that is the higher level models). We assume in each model that the level above knows what it's doing. Just like the Captain follows the Colonel's orders in an army. However, the Captain knows the situation on the ground, and will occasionally ring up the Colonel and ask them to reconsider if things seem especially ill-advised. When the Captain has done his calculations about how best to achieve the result assigned to him by the Colonel, he then passes his plan down to those below him in the chain of command.
There's a lot more detailed discussion in
AI -- The Thread and I'd like to hear your thoughts on it if you're interested.