AI Attitude Explained

Some of these reasons I've never even seen before in my games. How big do you have to be before you get "we are worried that you are becoming too big"? I tried continuing the game after domination victory, and I still don't get that modifier.
:lol:

You have been fooled by Nacht :p he uses a modded version of Civ which includes some visible modifiers that are usually invisible and/or some new modifiers...

:D
 
I did. Although I left out Items 4 & 5, since I disabled those. With Better AI the AI doesn't need those bonuses anymore. And Item 3 since the Better AI team disabled that one.

I'm curious as to why you look at 4 & 5 as "bonuses"? I mean, basically it seems to me that it's designed to make warmongers dislike peaceniks, but like other warmongers. And peaceniks like peaceniks, but dislike warmongers. Not sure if that qualifies as "bonuses" or not in my book.

Bh
 
I'm curious as to why you look at 4 & 5 as "bonuses"? I mean, basically it seems to me that it's designed to make warmongers dislike peaceniks, but like other warmongers. And peaceniks like peaceniks, but dislike warmongers. Not sure if that qualifies as "bonuses" or not in my book.

Bh
Well there are no minuses involved, so noone dislikes anyone because of it. It's just some AI's liking eachother by default.
 
Well there are no minuses involved, so noone dislikes anyone because of it. It's just some AI's liking eachother by default.

This is not true for 4 (unless I misunderstand that code completely). If Gandhi gets a PeaceWeight of 13 and Monty one of 0 this should result in -9 between the two, if Gandhi gets 10 and Monty 3 it should be -3 which is quite significant...
 
Having checked it again, it seems you're right concerning Item 4. That one indeed can be negative, although most of the time it is not, and it still singles out the human player. Item 5 is always positive though.

My experience before I modded those out is that a lot of AI's were pleased with each other just after having met. In my current games everyone is cautious to everyone else at the start.
 
This is not true for 4 (unless I misunderstand that code completely). If Gandhi gets a PeaceWeight of 13 and Monty one of 0 this should result in -9 between the two, if Gandhi gets 10 and Monty 3 it should be -3 which is quite significant...
crosspost ;)
 
Having checked it again, it seems you're right concerning Item 4. That one indeed can be negative, although most of the time it is not, and it still singles out the human player. Item 5 is always positive though.

My experience before I modded those out is that a lot of AI's were pleased with each other just after having met. In my current games everyone is cautious to everyone else at the start.

I guess we are having different experiences then. I've also modded in the displays to list all of the attitude modifiers, and I usually see a broad range of +/- listings. Of course, it depends who's in the game, but that's pretty random. With a decent number of AI, there is usually a good mix of people who like/dislike each other. Which in my mind makes for a more interesting diplomatic game.

Bh
 
Alright, so I've had way too much free time on my hands while changing jobs. Based on what I read in the AI Leaders Personality Matrix file posted by Ori, and the AI Attitude Explained thread, I put together this visual representation of where the leaders stand in terms of liking each other. Basically, the closer they are, the more they like each other, and vice versa. (The numbers on the axis are purely the 'invisible' peaceweights.)

In addition, I put in a few more metrics just to make it more informative. The base attitude & warmonger respect have already been discussed many times. I pay attention to the NoWarAttitudeProb as well because it shows which AI leaders are more likely to stab you in the back. I did not give numerical detail on these to keep it simple - for exact percentage probability values see Ori's AI Leaders Personality Matrix file.

Note that this chart is only meant as a visual tool to see which leaders will get along with who, NOT taking into account a host of other factors like religion, close borders, etc. It has helped me understand the AI attitudes better so I just wanted to share. Thanks to Ori for making that file and making the xml data easy to manipulate.

Check it out & feel free to respond. Btw, I'm an analytic freak and if it interests anyone, I have tons more summary charts and tables like these that I made comparing different AI behaviors (e.g. which AI's are better to trade with, when will they open borders, join your war, etc. compared to others, etc.)
 
:goodjob:

this post by Blake in the Better AI Mod threads might be interesting for you as well (and fits into the personality stuff, so why not repost it here ;) )

Also AI personalities are a tricky thing. Some AI's are horrible backstabbers - I think for example Asoka and Frederick (although it may be Peter) actually have backstabber personalities, it's just that they wouldn't ever build up enough military to start feeling frisky - one of my few military defeats (pre-Better AI) was to Asoka, who decided to backstab me with a large axeman horde he built for god knows what reason. I can probably try and reduce this tendency by tying in the old aspects of personality with the side effects of reducing aggression - for instance the "Train Unit" probability - those AI's with a high train unit.

Here are the "Bastard Charts" to show which leaders are the biggest scumbags, according to their probability of training units, their probability of declaring war, their probability of shamelessly dogpiling and finally their probability of declaring war at Pleased - the Total column is basically their "Bastard Rating" - the higher the total, the more likely they'll cause trouble. For all numbers, bigger means badder.
(A 0% of dogpiling does not mean a 0% of him dogpiling you - it'll just be a total war rather than a dogpile war - however 0% at pleased DOES mean a 0% chance of declaring war - it wont happen unless the AI decided to declare before becoming pleased)

bastadchatsbh3.png


The winner is Ragnar, being highest or highest equal across the board - except in attacking those he is pleased with (only one is higher).

There are some anomalies - Mehmed despite having SOME nice personality traits (respects friends) is actually a big warmonger - call him an Honorable Warmonger, Brennus is like his little brother. Don't trust these guys unless they're actually pleased.

Catherine and Isabella both have fairly low train units - but are also very shameless in declaring war, making them the incompetent backstabbing b*tches we know and love. However Isabella also has her obnoxious personality working against her - making her both more likely to declare war, and more incompetently (catherine is more likely to wait for a position of strength).

Elizabeth is generally peaceful, but does have a chance of declaring war at peace but more importantly has an incredibly high probability of sliding a knife in your back if you are distracted - Roosevelt has an identical warring personality (good job...), fortunately both these leaders have low unit training probabilities so they may be too timid to attack (which is why they are backstabbers). Asoka is also something of a closet bastard but does respect his friends. And actually many leaders, such as Mansa Musa, will just decide to up and attack people they are pleased with - the dice rolls make it that way. Just because SOME peaceful AI's will do this shameless backstabbing rarely, does not mean that Hatty or Ramsesses will - those two are much more pleasant (not all peacemongers are XML'd equally...).

and most importantly:
:woohoo: Welcome [party] to :dance: CFC :band:
 
Cool, thanks for sharing that! I had made charts before ranking the war likelihood values of the leaders (see attached) but hadn't seen it combined with the Train and WarPleased variables.. interesting.

Also check out the Trades summary table I made (tab in same file) using the attitude thresholds info. (Orange face is annoyed, blue=cautious, green=pleased, pink=friendly) Note that these are the attitudes at which the AI will ACCEPT the trade, as opposed the xml definition which is the level it refuses - same thing in the end but I find it better to think about it this way. I find it useful because when you look up an opponent from here you can easily see, for example, Elisabeth & Tokugawa will never share their world maps so no use wasting your time bribing them if you know beforehand. ;)
 
Are things 'we think you are getting too big for your own good' and the 'we mourn fallen soldiers from your hands' new to warlords? Never seen those before.
 
Are things 'we think you are getting too big for your own good' and the 'we mourn fallen soldiers from your hands' new to warlords? Never seen those before.
Are you sure you are not using a mod? or BTS (since it came out in Australia yesterday I just have to ask that :p). I seem to recall Blake putting something like this into his BetterAI Mod - those are not part of Vanilla or Warlords I am pretty sure...
Edit: :D I just saw that you refer to Nacht's post - he is using his own mod :p
 
I'd kill to get a hand on that mod that Nacht uses there.

Someone pretty please release that!
 
Diplomacy vote (Diplomatic Victory):
An AI will always vote itself. If this is not a choice it will vote for a team member. If this is not a choice it will vote for the Player towards whom the iAttitudeVal is highest if iAttitudeVal is greater than +7. If both players are tied it will abstain. If both players are at or below iAttitudeVal of +7 it will abstain.​
Do you have the code for winning the GenSec or Pope vote? Sorry if you've already posted it.
 
there are two team votes: victory and secgeneral (pope is the same as secgeneral). Basically the same code applies for both types of teamvotes apart from: the threshold is +7 for victory as you quoted and 0 for secgeneral (i.e. iAttitudeVal has to be positive for the secgeneral and +8 for victory).

Spoiler code :

Code:
PlayerVoteTypes CvPlayerAI::AI_diploVote(const VoteSelectionSubData& kVoteData, VoteSourceTypes eVoteSource, bool bPropose)
{
	PROFILE_FUNC();

	CivicTypes eBestCivic;
	int iOpenCount;
	int iClosedCount;
	int iValue;
	int iBestValue;
	int iI;

	VoteTypes eVote = kVoteData.eVote;

	if (GC.getGameINLINE().isTeamVote(eVote))
	{
		if (GC.getGameINLINE().isTeamVoteEligible(getTeam(), eVoteSource))
		{
			return (PlayerVoteTypes)getTeam();
		}

		if (GC.getVoteInfo(eVote).isVictory())
		{
			iBestValue = 7;
		}
		else
		{
			iBestValue = 0;
		}

		PlayerVoteTypes eBestTeam = PLAYER_VOTE_ABSTAIN;

		for (iI = 0; iI < MAX_TEAMS; iI++)
		{
			if (GET_TEAM((TeamTypes)iI).isAlive())
			{
				if (GC.getGameINLINE().isTeamVoteEligible((TeamTypes)iI, eVoteSource))
				{
					if (GET_TEAM(getTeam()).isVassal((TeamTypes)iI))
					{
						return (PlayerVoteTypes)iI;
					}

					iValue = GET_TEAM(getTeam()).AI_getAttitudeVal((TeamTypes)iI);

					if (iValue > iBestValue)
					{
						iBestValue = iValue;
						eBestTeam = (PlayerVoteTypes)iI;
					}
				}
			}
		}

		return eBestTeam;
 
thx Ori - 8910
 
Back
Top Bottom