View Full Version : AI relations not resolving properly when war is declared

01-12-2013, 07:13 AM
NPC AI factions are not responding properly when other factions that were previously treatied or aligned change that intent to a hostile one. They do not respond with an appropriate faction change to being declared war upon, which leads to broken situations where one AI is not defending itself properly, or worse is sending the player faction loss messages for intervening against a former ally that is destroying the faction.

Also - NPCs need to be more mindful of 'allies' that are allied with their enemies, such that factions can then shift and adjust more appropriately.

As it is now, the most successful AI method is to have high relations with everyone, not taking sides in any conflict but constantly settling on former worlds during wars, which itself should be seen as a hostile act. Acting against this AI is difficult because the OTHER AI factions do not properly respond to the winning strategies.

AI should recognize alliances and treaties with factions it is at war with as a faction cap, and not get into situations where it has an 'ally' that is not helping it in a war and who is attacking its own allies.

Granted I guess this is part bug (factions not declaring war on factions that declare war on them) and part design. I acknowledge that.

01-12-2013, 10:43 AM
I've got more on this but I will follow it up in another forum, as it tends towards design comments.

01-15-2013, 08:51 AM
Ok, I now know what exactly is happening that is causing these screwed up relations in my games -

NPC actions towards one another is not causing secondary faction modification - thus :

actions taken against a first party do not have any impact on the secondary relationships involving that party. because of this, when factions erode between two AI factions, the secondary factions do not update which causes strange and broken faction situations in almost all cases (such as factions allied with two factions which are at war). See the attached picture. That basically happens almost every game, with illogical relations locked in, which means that I can't support ANY faction, or else other factions which are allied to them will declare war with me. It's broken enough that I can declare war with a faction's enemy because of a quest requiest, and they will end up declaring war on me because of a web of alliances.

To avoid this, I would recommend the following :

1) adjust factions based on actions AI takes against one another on a sliding scale based on how much a faction cares about another faction (and the factions traits?)

2) Take into consideration the difference in relations of any faction allied with the target faction when weighing computed faction relation - i.e.

factionRelation = primary faction relation base - (sum of all the differences of all other factions / total number of factions)

in other words, adjust a factions relation down if they don't like the same people. This will create an interesting trending of clumping factions together and produce more 'sided' conflicts.

3) war declarations as a result of alliance entanglement should drop faction

4) nations which are allied with two nations at war should lose faction standing over time for 1) Not assisting an ally at war or b) being allied with an enemy, to help resolve that outstanding broken relation.

not trying to armchair game design, this is just how I talk.

01-15-2013, 06:34 PM
Is it possible that secondary factions are cancelling one another out?


Relation(R)[A,B] = 100
R[B,C] = 100
R[A,C] = 0

A damages C

Thus, because R[B,C]=100, R[B,A] -= X
however, because R[B,A]=100, A gets credited with the 'assistance' to itself, so R[B,A] +=X offsetting the faction loss.

Maybe? Fix would be not to grant faction increases to the actor for any actions, if this is the case.

01-16-2013, 11:28 AM
A lot of what you suggest does happen. I should go look at again and see if there is anything I'm missing though.

01-16-2013, 08:33 PM
I have a related bug.

In my current sector, myself, the Hive, and the Mutants were all in a 3-way alliance. Suddenly the Hive declare war on the Mutants; I rush to the diplomacy screen to try and get them to make up before they destroy each other. I talk to the Hive and go to the Make Peace With... option.

The Mutants aren't listed there.

I talk to the Mutants go to the Make Peace With... option. The Hive isn't listed there. At this point, I'm stumped; do I have to wait a certain amount of time after a faction declares war to ask them to Make Peace?

On a whim, I check the Mutants' Break Treaty With... option. The Hive's listed there. Hmm, that's strange, do they still have the alliance even though they're at war?

Just to be thorough, I check the Mutants' Declare War on... option. The Hive's listed there too. I check the Hive's Declare War option: Mutants listed on there, too.

So apparently, a faction declared war on their Ally, despite having 95-100 relations from fighting a common enemy, and according to the Trade/Negotiate options, they're still in an alliance and not at war.

I ask the Hive to Declare War on the Mutants with me. They agree. I then immediately ask them to make peace with the Mutants. They agree. I ask the Mutants to make peace with me. They agree.

Note that I asked the Hive to declare war for nothing, then make peace for nothing, and then asked the Mutants to make peace for nothing. And they all agreed. Peace & war is cheap, huh?

It seems like a bug: an ally, for some reason, declares war on its ally... and the diplomacy screen doesn't even acknowledge they're at war or have even broken their alliance.