Histidine91 / Nexerelin

The Nexerelin 4x mod for Starsector.
64 stars 15 forks source link

AI getting stuck in endless war loops #47

Open Question2 opened 1 year ago

Question2 commented 1 year ago

Ive noticed that on default settings, the AI constantly gets stuck in endless war loops. They will declare war on someone, fight, eventually do a ceasefire due to high war weariness, and in less than a cycle, they will be at war again.

There are two main culprits for this :

-Alliances voting to go to war even though they have extremely high war weariness. Heres an example :

screenshot082

screenshot083

The persean league seems to be voting yes because of their special ability causing them to vote yes always. Both the league and tri tachyon have 20k+ war weariness, why is this vote even being called? High war weariness should not allow them to start a vote in the first place. Tri tachyon should also be voting NO due to high war weariness, not abstaining.

-Random events or operatives causing them to drop to hostile status shortly after signing a cease fire. Cease fires need to actually last longer and CANNOT be broken like this because it just defeats the point. Dropping to hostile status shouldnt immediately result in a war (i dont know if thats possible) but seperating it from relations would greatly reduce the constant wars.

Random events also need to be toned down IMHO. Within a few months of starting your first colony, random events can cause relations to drop low enough to start a war even though you have done literally nothing to provoke any of the factions. A player cant do anything to fend off a 2 full Hegemony invasion fleets this early in the game.

Histidine91 commented 1 year ago

The war vote shouldn't be happening at all from what I can see in the screenshot, alliance votes should only take place when one member changes state from non-hostile to hostile or vice-versa. I've received a report with a similar issue in the other direction (inappropriate peace vote), but couldn't figure out what might be causing it; I'll add some logging in next version that may help.

Next Nex version also changes how diplomacy (and agent actions) work and reduces the frequency of random events by about 2/3rds, so we'll see if that helps.

Dropping to hostile status shouldnt immediately result in a war

Not a thing in the current design, but Starsector 0.96 has a new feature I plan to repurpose for this, to get a similar effect.