MartinHarper
Warlord
- Joined
- Feb 16, 2009
- Messages
- 132
I believe that the AI would benefit from estimating the chance that another civ will declare war on it. This could help it in a number of places:
I believe that, where available, the AI should take into account the opposing leader's DoW% when deciding this. Obviously this is not possible for human players. Also, it is not appropriate when "Random Personalities" has been selected in the game options. In these cases, the AI can start out with an estimate based on the average DoW% at each attitude. A sophisticated AI could modify that estimate as the game goes on. It could also increase the estimated chance of war when a civ starts declaring "We have enough on our hands right now" in peacetime, and to decrease it when a civ is already at war with another civ.
I like this because it makes the AI behave more like a smart human. For example, the AI will start treating Gandhi differently to Montezuma, and place more units on its borders with Montezuma. It is also more likely to launch a pre-emptive strike on Montezuma, rather than attack Gandhi only to be back-stabbed a few turns later.
Treating all civ's equally is the simplest possible option. I think they went for that because the AI had bigger issues that needed to be addressed, rather than because of a design philosophy. Players who don't like the AI knowing about leader personalities can play with Random Personalities.
- Deciding which cities need the most defenders.
- Deciding how much military to build.
- Deciding whether workers on border tiles need escorts.
- Deciding whether to declare war, and upon whom.
- Deciding whether to become a vassal or enter a defence pact.
I believe that, where available, the AI should take into account the opposing leader's DoW% when deciding this. Obviously this is not possible for human players. Also, it is not appropriate when "Random Personalities" has been selected in the game options. In these cases, the AI can start out with an estimate based on the average DoW% at each attitude. A sophisticated AI could modify that estimate as the game goes on. It could also increase the estimated chance of war when a civ starts declaring "We have enough on our hands right now" in peacetime, and to decrease it when a civ is already at war with another civ.
I like this because it makes the AI behave more like a smart human. For example, the AI will start treating Gandhi differently to Montezuma, and place more units on its borders with Montezuma. It is also more likely to launch a pre-emptive strike on Montezuma, rather than attack Gandhi only to be back-stabbed a few turns later.
The philosophy behind the coding of the AI in Civ IV seems to be of making the AI having the same amount of good faith against all civs, modulated obviously by the diplo considerations. Making the AI to read the XML to get their "bellicosity" is clearly making the AI to assume that not all the leaders are created equal and I'm not sure that all the players would welcome that change in philosophy ...
Treating all civ's equally is the simplest possible option. I think they went for that because the AI had bigger issues that needed to be addressed, rather than because of a design philosophy. Players who don't like the AI knowing about leader personalities can play with Random Personalities.
In a part of the text you chose to not quote I expressed that I would definitely like the idea of the AI checking the personalities of the other AI in play ( it would be a way of simulating something close of the memory humans get empirically by playing a lot of games of the various LH behavious: monty being a loony that spams units and DOWs with little concerns about the actual odds, Gandhi beiing a peacenik that loves religions and culture, and so on .... ) . My problem is how the rest of the players would feel about a AI that knows this, and, as you quoted, I'm not so sure that the majority would like this.... also, making this would open the door to do similar coding to other parts of the AI ( wonderhogging, religion pursuits, ... just to name a few ) and that is definitely a good chunk of lifetime that would be taken from the coders 
