Part of the problem with Sturgia getting rolled early:

Users who are viewing this thread

Battania and Vlandia rarely declare war on each other. At least they haven't in 20 or so beta play throughs, where I play Battania or merc as Sturgia.

At the start of each play through Vlandia is at war with Sturgia, a war that always results in Sturgia losing fiefs to Vlandia. Battania usually gets out of their starting war with Western as soon as possible. When they do, Sturgia is already weakened from losing turf to Vlandia so Battania declares on Sturgia as well. Khuzait declares on weakened Sturgia and Sturgia gets eliminated.

That happens on almost every play through.

Battania, Vlandia, and Khuzait have some unspoken agreement to eliminate Sturgia first.

If the game would make a Vlandia vs Battania early war even slightly possible, Sturgia wouldn't get rolled every play through.
 
They really need to fix ai diplomacy instead of endlessy buffing sturgians in battle. They have become annoingly hard to fight in field battles.
 
They really need to fix ai diplomacy instead of endlessy buffing sturgians in battle. They have become annoingly hard to fight in field battles.
And that's the group I want to play as. They have the most interesting territory to me. But it annoys me when you have one group just always get steamrolled.
 
Battania and Vlandia rarely declare war on each other. At least they haven't in 20 or so beta play throughs, where I play Battania or merc as Sturgia.

At the start of each play through Vlandia is at war with Sturgia, a war that always results in Sturgia losing fiefs to Vlandia. Battania usually gets out of their starting war with Western as soon as possible. When they do, Sturgia is already weakened from losing turf to Vlandia so Battania declares on Sturgia as well. Khuzait declares on weakened Sturgia and Sturgia gets eliminated.

That happens on almost every play through.

Battania, Vlandia, and Khuzait have some unspoken agreement to eliminate Sturgia first.

If the game would make a Vlandia vs Battania early war even slightly possible, Sturgia wouldn't get rolled every play through.

Yep that has been what has happened on my campaigns too.
 
Yep that has been what has happened on my campaigns too.

It doesnt make sense. It should be a viable early game strategy to end wars that result in holding properties in 2 different locations separated by another factions territory. It should be the goal of a kingdom to take the fiefs bordering their property. That should be the goal. Kingdom expansion should be done smartly. I understand Dethert is an idiot, but Caladog shouldn't be. He should be smart enough to realize territory in Vlandia is more valuable than Lageta. Shut the back door before you open the front.

The Kingdom Management AI needs a little work.
 
Shouldn't there be like a piece of code that is like an algorithm for likelyhood to support a war? I don't know enough to find it lol

I don't know enough about coding, but it certainly doesn't seem to take into account border disputes very well. Factions fight each other from regions on the other side of the map.
 
I don't know enough about coding, but it certainly doesn't seem to take into account border disputes very well. Factions fight each other from regions on the other side of the map.
Yeah i know nothing about coding either. It would depend if there were a distance factor built into it . If there was I'm guessing its not a very big number...
 
Wars should be driven by shortages in resources, border disputes and trespassing, previous relationship history, and personality type of the different lords. At the moment it just seems to be random wars for supremacy of the map, so the ai will take advantage of any of the weaknesses it can with the other ais, which means you have more than one faction ganging up on sturgia to gain the land without even the chance for resistance.

For example a kingdoms villages which normally produce grain are not producing enough grain or are destroyed for enough time, this leads to a shortage in grain and thus increases a kingdoms chances of going to war to go and seek this scarce resource grain.

A kingdom is marching a large force of units through your kingdoms territory, and so your king will decide this is an affront to his authority and a challenge to his claim on the land. So he might elect to challenge this force of units to a battle to prevent continued trespassing, thus leading to war.

Sturgian lords should have a different personality to the other lords of calradia, in that they express a behavior of broad expansion across the continent through raiding and looting cities. This might cause them to attack a village or castle located in Aserai territory, khuzait, vlandia, empire, or wherever they fancy at the time causing a war due to this natural tendency to raid and loot abroad.

These are just some examples of actual reasons you could give the ai to go to war so that they don't seem like just a roll of the dice, but are the actual consequences of the interactions between the ai's and their different personality types in a dynamically changing worldspace.
 
Last edited:
Sturgia WE, and NE get wrecked because they are at war against everyone while their enemies are fighting just 1 war. There is something wrong with diplomacy and factions getting wrecked just refuse to make peace paying tribute.

Sturgia is strong enough except if It is at war against Vlandia and Khuzaits at the same time, because these factions are really strong (especially Khuzaits), and they are usually at war against just 1 faction. Plus map positioning does not help Sturgia to be able to fight Vlandia and Khuzaits at the same time while these factions are not involved in other wars.
 
I saved Sturgia from Vladia and Khuzaits but couldn't save Sturgia from the newest patch...
 
Would be nice if we knew the in game code for what makes an AI declare war.
Lol, that sounds like a cue or something ?.

I'll look into it and get back to you guys. Just from skimming it I can tell you that it's semi-random; there are a few elements of randomness, but the most important parts are very much not random, and definitely complex. I don't think I'll be able to properly explain it more than just the surface details because there is a lot that goes into it.
 
Lol, that sounds like a cue or something ?.

I'll look into it and get back to you guys. Just from skimming it I can tell you that it's semi-random; there are a few elements of randomness, but the most important parts are very much not random, and definitely complex. I don't think I'll be able to properly explain it more than just the surface details because there is a lot that goes into it.
Yeah I was thinking of what you’ve done when I wrote this. Didn’t wanna Tag You though because you’ve already been busy enough. Was hopeing there was a lurker out there proficient in coding. Thanks for the help again man you’re making it easier to understand the game in it’s current state!
 
I finally tried Sturgia, an WOW! They were at war with 3 factions who weren't fighting anyone else. They constantly refused peace, and when they did, they would immediately go to war with some faction who hadn't fought for months and had full armies.

The casualties the Sturgians inflicted were amazing, but the attrition was unbearable. I had to go to the empire for recruits since all the Sturgian ones were snapped up. We're down to two cities and a couple castles, and I'm unable to make armies since everyone is usually under the required strength percentage.

I understand they are supposed to be warlike, but these guys are just suicidal.
 
XD yes, this is how most of Sturgia campaigns are. On the other hand, in 1.4.3 I am finding Sturgia a bit better, maybe because lords have better base troops now, or maybe because the Northen Empire and Western Empire are also getting wrecked at the same time.
 
Lol, that sounds like a cue or something ?.

I'll look into it and get back to you guys. Just from skimming it I can tell you that it's semi-random; there are a few elements of randomness, but the most important parts are very much not random, and definitely complex. I don't think I'll be able to properly explain it more than just the surface details because there is a lot that goes into it.

Some code analysis here. Most of calculations done in GetScoreOfWarInternal() function. From that, we can tell which factors will increase score and which will decrease the score of war. If score > 50 then war will be declared.

Factors that increase the score:
  • Clan leaders Valor trait;
  • Target faction aggressiveness;
  • Benefit Score for the attacker faction;
  • Top Dog score;
  • The negative relationship between rulers of the factions;
  • Add score if total strength of the attacker faction > total strength of the target faction;
  • Number of settlements in Target faction with the culture same as the attacker's culture;

Factors that decrease the score:
  • Clan leaders Mercy trait;
  • Benefit Score for the target faction;
  • The positive relationship between rulers of the factions;
  • War fatigue score;
  • Decrease score if the attacker of the target faction is already in war;

Also, there one very suspicious function - CalculateBenefitScore(), this function calculates if the faction can get some benefit of the war.
C#:
        private float CalculateBenefitScore(ref DefaultDiplomacyModel.WarStats faction1Stats, ref DefaultDiplomacyModel.WarStats faction2Stats, bool calculatingRisk = false)
        {
            float num = MathF.Clamp(faction2Stats.ValueOfSettlements + 1f, DefaultDiplomacyModel._MinValue, DefaultDiplomacyModel._MaxValue);
            float num2 = (faction2Stats.Strength + 10f) / (faction1Stats.Strength + 10f);
            float num3 = (faction2Stats.Strength + 0.3f * faction1Stats.TotalStrengthOfEnemies + 10f) / (faction1Stats.Strength + 0.3f * faction2Stats.TotalStrengthOfEnemies + 10f);
            float num4 = MathF.Pow(num2 * num3, 0.4f);
            float num5 = MathF.Sqrt(faction1Stats.DistanceToClosestEnemyFief / faction2Stats.DistanceToClosestEnemyFief);
            num4 *= num5;
            if (!calculatingRisk)
            {
                float x = Math.Min(1f, 2f * (faction1Stats.Strength + 10f) / (faction1Stats.Strength + faction1Stats.TotalStrengthOfEnemies + 10f));
                num4 /= MathF.Pow(x, 0.5f);
            }
            float num6 = 1f / (1f + num4);
            num6 = MathF.Clamp(num6, 0.01f, 0.99f);
            float num7 = num * num6;
            float num8 = 150f / (150f + faction1Stats.DistanceToClosestEnemyFief);
            return num7 * num8;
        }
It looks very obscured, however, we do not need to know what exactly it does, we only need to understand the general idea.

Result of this function is:
Target faction Settlements value * Strength Factor / Distance to Closest Enemy Fief;

And the suspicious part of it is a Strength Factor that in the code "num6".

Strength Factor ~ (Total strength of Attacker faction + Total strength of all enemies of Target faction) / (Total strength of Target faction + Total strength of all enemies of Attacker faction);

The Strength Factor has a greater score when the Target faction is in war with multiple factions. And it's even greater if Target faction is weakened by war.

This explains why everyone in Calradia gang banging weak factions.
 
Last edited:
Oh thank you very much for this explanation


Result of this function is:
Target faction Settlements value * Strength Factor / Distance to Closest Enemy Fief;

And the suspicious part of it is a Strength Factor that in the code "num6".

Strength Factor ~ (Total strength of Attacker faction + Total strength of all enemies of Target faction) / (Total strength of Target faction + Total strength of all enemies of Attacker faction);

The Strength Factor has a greater score when the Target faction is in war with multiple factions. And it's even greater if Target faction is weakened by war.

This explains why everyone in Calradia gang banging weak factions.

Yes, this is exactly what I have thought after reading this. Weak factions are getting stomped by everyone and this is currently one of the main issues about snowballing. On the other hand, this factor is still nice in terms that a weaker fighting could declare war on stronger if there is already a war, but in practice this never happens or it is pretty rare.

Nice to see that there are actually an elaborated diplomacy sistem, so it is all about trying to find the right numbers. The biggest issues we have currently related to diplomacy:

1- Factions refuse to ask for peace when they are fighting a lot of wars and losing.
2- Weakest factions get ganked by everyone.

Fixing/improving these both things would make better the current situation and probably fix snowballing at all.
 
Back
Top Bottom