Overkill - why the AI is so bad

Just to be fair to Firaxis, a lot of you are asking for an AI implementation in a game that can't even be done in labs around the country dedicated solely to AI coding. Fuzzy logic, assigning comparable values to disparate things, flexibility, adaptation, these aren't within the boundaries of any game we'll see produced in the next decade (though I'll be happy to be wrong on this). It's not reasonable to expect Firaxis to make earth-shattering breakthroughs in the field of AI as part of a Civ3.

Also, complex fuzzy logic AIs have their problems too. Just turn on the Jerry Springer show for an example...

Firaxis had to write an AI that wouldn't use up too much processor time, that would handle an extremely wide variety of situations, and that would try to avoid being grossly exploitable. The last is the one thing that they were guaranteed to fail at, because human code is self-modifying while current game code isn't, and thus you'll almost always have the human adapt to the point where they can run rings around any AI just by exploiting the weaknesses that it can never overcome. This isn't a Firaxis problem, it's just the current state of AI programming.

As far as I'm concerned, Firaxis did a pretty good job with the AI. Sure, it could be improved, but there comes a time when such improvement becomes a case of diminishing returns. I think the Civ3 AI has reached that state.
 
I agree. The only way to get deeper strategic competition from this game is human against human. If you look at what the AI CAN do, instead of what it CANNOT do, Firaxis didn't do a bad job.
 
I frequently hear these types of arguments, however, they are usually not based on fact. Most of the suggestions about changes to the AI are very simple to program and are not even classed as AI. These are cause and effect modifications and not processor intensive by any means.
 
It is dangerous to assume that any seemingly simple "if this happens, then do this" logic will improve the game. There are so many exceptions or special cases to rules that would cause a human to change his/her mind without even thinking about it. The AI doesn't have that luxury unless you make the programming exponentially more complex.

Black and white logic also makes the AI more predictable and subject to exploit. For example, if you knew that the AI would calculate how many units were "enough" to deal with any one situation, once you know that, you can lay bait and know EXACTLY the most units the AI would send.

Not trying to encite a thread war here, many of the things we suggest (myself included) that sound easy are in reality much more difficult to implement in a realistic manner.
 
Seems logical at first, but I can give one example of an IF...THEN statement that was originally in the game that Firaxis removed, resulting in an improved game:

IF AnOffensiveMilitaryUnit****Points < Maximum THEN GoHomeToHeal

When they were programming the game, it seemed to make sense. They they realized it was too definitive, could be exploited, and wasn't realistic.

The moral: Simple logic is usually never enough in a game like this. And halfway logic isn't always better than none-at-all.
 
Holy Cow: the forum automatically filters when thinks you've employed a potty-mouth. It changed "Units Hit Point" To "Unit* *** Points" when it was all strung together.

Funny. :lol:
 
Well putting your finger in a electrical socket is great if you want to curl your hair!

You have to justify the quality of the parameters with any decision, in your example what do you think the decision on going home was based on? I doubt if the code you used as an example actually existed as a decision on it's own without relation to any other factors or for that matter was actually removed as you claim.
 
The biggest problem is that AI can't adapt. Human brain can. Although reading some of the CF threads, I'm beginning to see there are exception to the latter, but that's not the point :p

As the above 3-4 posts indicated, the AI can only react to certain conditions in the game. No matter how many "IF... THEN" statements you stuff into the AI code, if we poke at it enough we'll always find ways to go around that rule and then start an "AI too dumb" thread.

Until we're all running supercomputers and have the AI part of the game be over several hundred GB big, the gaming AI will never be smart enough for the human brain.
 
It is really a question of whether you even want to start the journey at all. If you decide to go forward you step, if you decide that it will cause you to wear out your shoes, you go for an ice cream. :)
 
Originally posted by Cartouche Bee
It is really a question of whether you even want to start the journey at all. If you decide to go forward you step, if you decide that it will cause you to wear out your shoes, you go for an ice cream. :)

That sounds like a George W. Bush quote. :lol:
 
DaDoo is right on: what i have been missing is 'refined' IF-THEN logic. SUch as the AI now NOT withdrawing hurt transports IF they can reach the intended drop-off point in one turn. Wasn't there in 1.16 IIRC. At least i never saw it.
 
Originally posted by SirJethro
We all know the AI is bad...but let's face it: the Zulu are the Jar Jar Binks of AI civs. Nothing suprises me with them.

Easily one of the funniest lines I've read on here in a long time. I salute you!

:rotfl:
 
To expand on the issue of how 'simple' things can be very difficult to program an AI to do, let me give an example from Age of Empires. In that game if you start attacking a building, the AI will send a villager to repair it. Anyone who's played the game can see the problem here: if the AI doesn't send a villager then even the tiniest attack can destroy the building eventually, but if it does send a villager then a human can use the repair cost to drain the AI of resources by causing just enough damage to force a constant repair (or even worse, can damage the building a little, then hang around and kill each villager as it shows up to repair). So the two easiest choices, repair or don't, are both exploitable. To write an AI that could figure out when to repair and when not to would result in more code than the entire rest of the AI code written up till then. And even then, once that was figured out by the players it would -still- be exploited.

Cartouche, you are wrong in thinking that adding code snippets here and there for various issues results in incremental improvement. It doesn't work that way in complex dynamic systems. In fact, any editing of the AI at this point is quite risky for Firaxis, as they could very well open the door to an unforseen devastating exploit that would then require -another- patch just to remove what the previous patch did (patches that end up needing patches are one reason why companies often only patch once or twice). Your thinking is often correct with linear systems, but it does not (and never will) apply to dynamic ones.

You get some seriously diminishing returns with AI game coding: spending months more on AI coding (and testing) and having the system requirements increase to handle it, only to have in the end an AI that's just as exploitable as it was to begin with. Meet the new exploit, same as the old exploit. Until AI tech advances to the point where adaptive AIs are commonplace, this is the state of AI programming in computer games today and practicality demands that game programmers not spend too much time butting their heads against that fact.
 
Originally posted by Vorlin
Your thinking is often correct with linear systems, but it does not (and never will) apply to dynamic ones.
Excellent point. For those unfamiliar with dynamic systems, think of jello. A little push and the whole mass starts to quiver in a chaotic and unpredictable fashion. Push it with a slightly different pressure and the vibrations may be completely different. As a rule, complex dynamic systems are very sensitive to small changes in initial conditions.

Just as important is to remember that Civ3 is just a game. Like theater, you must suspend your disbelief. Those aren't really tanks, or even proper simulations of tanks. If you refuse to pretend, then the effect simply won't work.

Shakespeare had to represent whole armies with a couple of guys with wooden swords, "a crooked figure may attest in little place a million." His audiences had to go along with the illusion or there would be no play, no fun, no history and no drama.

A kingdom for a stage, princes to act
And monarchs to behold the swelling scene!
. . . But pardon, and gentles all,
The flat unraised spirits that have dared
On this unworthy scaffold to bring forth
So great an object: can this cockpit hold
The vasty fields of France? or may we cram
Within this wooden O the very casques
That did affright the air at Agincourt?
O, pardon! since a crooked figure may
Attest in little place a million;
And let us, ciphers to this great accompt,
On your imaginary forces work.


http://the-tech.mit.edu/Shakespeare/henryv/henryv.1.0.html

By the way, the narrator quoted above is from Henry V, and is considered to be the voice of Shakespeare himself asking for our indulgence of the meager tools of his play. Give it a chance, he says, "Gently to hear, kindly to judge, our play."
 
Originally posted by Vorlin


Cartouche, you are wrong in thinking that adding code snippets here and there for various issues results in incremental improvement. It doesn't work that way in complex dynamic systems. In fact, any editing of the AI at this point is quite risky for Firaxis, as they could very well open the door to an unforseen devastating exploit that would then require -another- patch just to remove what the previous patch did (patches that end up needing patches are one reason why companies often only patch once or twice). Your thinking is often correct with linear systems, but it does not (and never will) apply to dynamic ones.


Well I don't class this system as dynamic so I guess that is where are views differ. Ice cream time! :lol:
 
Originally posted by Cartouche Bee
Well I don't class this system as dynamic so I guess that is where are views differ. Ice cream time! :lol:

The "original" dynamic system was the three-body orbit problem. Slight changes in the initial conditions could determine whether the system was stable or unstable. Indeed, it is now known that multi-body orbits are inherently "complex," and are only stable under certain specific conditions.

Civ3 certainly qualifies as such a complex dynamic system. Small changes in the initial conditions can result in huge changes in the final result.

For want of a nail, the shoe was lost:
For want of the shoe, the horse was lost;
For want of the horse, the rider was lost;
For want of the rider, the battle was lost;
For want of the battle, the kingdom was lost,
And all for the want of a nail.


In this instance, the strategic balance, and all following history were influenced by a seemingly inconsequential event. In Civ3, a slight change in the randomizer can have profound effects on the final outcome. Who has not had the situation whereby an attack on a single city is stopped by one last defender with one last hitpoint? A slight change in the randomizer and the enemy capital may fall -- or not; an attack may advance -- or not; a despised enemy may be finally destroyed -- or not.

In the GOTM10 spoiler thread, deleatur posted that he tried a warrior rush and lost by one hitpoint. That changed everything, forever.
 
Just because someone lost a gambit and that changed the game for them does not make the system dynamic. If the system were skillfully or truly dynamic we would not be having discussions about SOD dances with warriors. Nor would would single lines of code improve the system, yet I believe that to be the case.
 
Originally posted by Cartouche Bee
Just because someone lost a gambit and that changed the game for them does not make the system dynamic. If the system were skillfully or truly dynamic we would not be having discussions about SOD dances with warriors. Nor would would single lines of code improve the system, yet I believe that to be the case.

There are entire books on the subject of non-linear dynamics in war and in just these sorts of "games." Here is a link to the Santa Fe Institute (the premier institute for the study of complex systems):

The main topics of game theory have traditionally been equilibrium analysis and not dynamics. These days, however, dynamical phenomena among interacting agents are getting more and more interest of many researchers . . .
http://www.santafe.edu/sfi/research/focus/economicSocial/projects/dynamicsingames.html

Anytime you have a game where one player, whether human or AI, can make decisions such as starting a war based upon mood or attitude, you definitely have a non-linear dynamic system, and it will exhibit an inherent unpredictability. And "game" in this instance can refer to everything from real-life examples of nations in a nuclear standoff to the stock market. Check out some of the subject links from the Santa Fe Institute:

Economic and Social Interactions; Co-Evolution of Institutions and Preferences; Dynamics in Games; Dynamics of Cultural Change; Persistent Inequality; Heterarchies: Distributed Intelligence and the Organization of Diversity; Market Force, Ecology and Evolution; State and Market Formation
 
So where does it say that a dynamic system can't be improved with a single line of code? To convince me that this program can't be improved with a single line of code because it is a dynamic system is what you two are trying to fly. I know better than that!
 
Back
Top Bottom