Information about developments at snowballing problem

Users who are viewing this thread

Perhaps you could also include a factor that regulates how good compositions are balanced, like with mounted units but adding other groups that influence the calculation. This way you could better determine which units are most important in different areas(not only mounted and unmounted but also things like only melee against a well rounded comp of archers, melee and so on). This combined with 2 or 3 more area effects(if an army with more horses meets someone in the forest they have worse stats then on an open fiels and for example an archer heavy army gets bonuses on mountains because they have more time to fire at incomming attacks.
I know that this would be a much more complex system then the one you have now but it could help to balance everything out because it would give kingdoms a kind of "home soil" buff when khuzaiks have better calculations in the graslands but also have problems when they try to go into forests when they expand and so on. Usualy this should also be a thing that is already in the game for campaign movement so you could just add a few lines that check which movenets-effects are applied and then trankslate that into 10% buff for one side or whatever.
 
So we've already got a ridiculously oversimplified Auto-Calc system that takes in a whopping 3 elements to determine outcomes in a battle and someone came in a just up and changed one of the variables to close the gap between a peasant and a top tier unit? Are AI Leadership and Tactics not even involved in this calculation??

Can we get an open letter to Armagon to remedy this situation? We deserve a real, robust auto-calc system or else all these armies mulling about are utterly uninteresting and makes the world strategy game paper thin
I don't see it get mentioned enough in this thread when it seems to be one of the most important factors in snowballing. If every single battle except ones the player engages in are auto calculated, I would hope and expect that the calculation will be in-depth, taking many variables into account, and allowing for variance. With a deterministic calculation, you will only get deterministic results. I'm not a big fan of just throwing RNG around, but I think there needs to be a small amount of RNG on top of all the more deterministic factors
The factors I can think of off the top of my head could be:
1. Leadership and tactics skill levels and perks
2. Army composition (melee-ranged-mounted melee-mounted ranged, Tier 0 - Tier 5)
3. Morale (which in turn has it's own depth of calculation)
4. Terrain advantage/disadvantage
5. Attacker/defender advantage/disadvantage
6. Friendly/enemy territory advantage/disadvantage

When a faction is losing, under the current formula there's almost no chance of them coming back. Mexxico has been focusing on campaign decisions and factors, but the core factor is winning/losing battles, and when a faction is losing, they're going to have smaller and weaker armies, resulting in them being snowballed over
 
So we've already got a ridiculously oversimplified Auto-Calc system that takes in a whopping 3 elements to determine outcomes in a battle and someone came in a just up and changed one of the variables to close the gap between a peasant and a top tier unit? Are AI Leadership and Tactics not even involved in this calculation??

Can we get an open letter to Armagon to remedy this situation? We deserve a real, robust auto-calc system or else all these armies mulling about are utterly uninteresting and makes the world strategy game paper thin
This formula is just for calculating strength of troop. I do not know details of autocalculation but it is probably effected by this basic formula mostly, of course there are probably more details.

What is weird in this formula according to it 1 x tier-5 troop is equal to 3 x tier-1 troop (looter / recruit) as power, I think it should be 4x or 5x. However to find out best formula we need to run several 100 tier-5 troop vs 300 / 400 / 500 tier-1 troop battles at custom battle for both infantry vs infantry / cavalry vs infantry / mixed vs infantry and examine their results.

I do not want to change codes at auto-calc also because its not good changing examining that much areas. Its not one of my areas. I reported this situation to design team. If they want they can make a study on this.
 
Last edited:
So we've already got a ridiculously oversimplified Auto-Calc system that takes in a whopping 3 elements to determine outcomes in a battle and someone came in a just up and changed one of the variables to close the gap between a peasant and a top tier unit?
You misunderstand: what I posted is not the entire autocalc system. It is only the method for determining a troop's effectiveness (Power, in their terms). The entire autocalc system is well beyond my ability to understand and it does take into account the Tactics skill (always has, AFAICT) and (after the recent perk fixes) various perks within. Leadership skill doesn't matter though, at least not directly and I don't think that morale does either.

But you'd need to ping someone much better at C# than I.

I don't see it get mentioned enough in this thread when it seems to be one of the most important factors in snowballing. If every single battle except ones the player engages in are auto calculated, I would hope and expect that the calculation will be in-depth, taking many variables into account, and allowing for variance. With a deterministic calculation, you will only get deterministic results. I'm not a big fan of just throwing RNG around, but I think there needs to be a small amount of RNG on top of all the more deterministic factors

Coming from a wargame perspective, more variables almost inevitably pushes things towards deterministic. I explained in another thread but you want to sharply curtail the number of variables and add a heavy RNG element via very few dice rolls or else bigger numbers almost always win.
 
This formula is just for calculating strength of troop. I do not know details of autocalculation but it is probably effected by this basic formula mostly, of course there are probably more details.

What is weird in this formula according to it 1 x tier-5 troop is equal to 3 x tier-1 troop (looter / recruit) as power, I think it should be 4x or 5x. However to find out best formula we need to run several 100 tier-5 troop vs 300 / 400 / 500 tier-1 troop battles at custom battle for both infantry vs infantry / cavalry vs infantry / mixed vs infantry and examine their results.

I do not want to change codes at auto-calc also because its not good changing examining that much areas. Its not one of my areas. I reported this situation to design team. If they want they can make a study on this.

According to some reddit user who studied the autocalc formula that's all there is to this. At start there's calculation deciding which army gets first blow than th whole calculation returns unit power based on tier plus buff if it's mounted. And here rounds are starting 1v1 randomly selected troops at each round. One is attacking one is defending. Attacker power lvl is multiplied by some constant and compared to randomly drawn HP value of defending unit. That's all. This method gives huge advantage to cav based armies because the buff is big enough that cavalry unit at T5 can kill any infantry/ranged unit up to T4 at first try.

Edit:
Link to reddit where it is explained:
 
Last edited:
well but can u change the horse charge issue??? here i am with my pureblood full geared (both) doing a charge just to be stoped by a looter with a woodhammer..like wtf..did i jut hit a 9meters concrete wall??...something not right there :grin: :grin: :grin:
 
According to some reddit user who studied the autocalc formula that's all there is to this. At start there's calculation deciding which army gets first blow than th whole calculation returns unit power based on tier plus buff if it's mounted. And here rounds are starting 1v1 randomly selected troops at each round. One is attacking one is defending. Attacker power lvl is multiplied by some constant and compared to randomly drawn HP value of defending unit. That's all. This method gives huge advantage to cav based armies because the buff is big enough that cavalry unit at T5 can kill any infantry/ranged unit up to T4 at first try.

Edit:
Link to reddit where it is explained:

Man thats just sad. Get Horse -Win Game! So basiclly an AI lord cant counter Heavy Cav with more pikeman as it takes no weapon into consideration? If its rock/paper/scissors and rock is horse -than what trumps rock?

Cmon TW -how about at least an attempt to start calculating weapon and armor types as well as terrain and weather. The World Map game already just feels chaotic -like sprite bees buzzing around a sweet can of soda. Lets give them some strategic reason for moving, attacking and defending.
 
So we've already got a ridiculously oversimplified Auto-Calc system that takes in a whopping 3 elements to determine outcomes in a battle and someone came in a just up and changed one of the variables to close the gap between a peasant and a top tier unit? Are AI Leadership and Tactics not even involved in this calculation??

Can we get an open letter to Armagon to remedy this situation? We deserve a real, robust auto-calc system or else all these armies mulling about are utterly uninteresting and makes the world strategy game paper thin

They are not changing anything, even if it makes zero logical sense. We have seen this time and time again. Wait for mods.
 
Man thats just sad. Get Horse -Win Game! So basiclly an AI lord cant counter Heavy Cav with more pikeman as it takes no weapon into consideration? If its rock/paper/scissors and rock is horse -than what trumps rock?

Cmon TW -how about at least an attempt to start calculating weapon and armor types as well as terrain and weather. The World Map game already just feels chaotic -like sprite bees buzzing around a sweet can of soda. Lets give them some strategic reason for moving, attacking and defending.

I'm not even dreaming of such complex calculation here xD. It would be a step forward if they at least separate units to range, inf, polearm inf, cav, ranged cav and apply some buffs when confronting other groups. Like cav gets buff Vs archers and inf but debuff Vs polearms. Ranged gets buff Vs polearm inf (cause they mostly don't have shields) and smaller buff Vs inf but debuff Vs cav etc.
Something like this could take into account some predefined markers for troops not changeable by player.
 
I'm not even dreaming of such complex calculation here xD. It would be a step forward if they at least separate units to range, inf, polearm inf, cav, ranged cav and apply some buffs when confronting other groups. Like cav gets buff Vs archers and inf but debuff Vs polearms. Ranged gets buff Vs polearm inf (cause they mostly don't have shields) and smaller buff Vs inf but debuff Vs cav etc.
Something like this could take into account some predefined markers for troops not changeable by player.
Be mighty pleased with that all as well
 
I'm not even dreaming of such complex calculation here xD. It would be a step forward if they at least separate units to range, inf, polearm inf, cav, ranged cav and apply some buffs when confronting other groups. Like cav gets buff Vs archers and inf but debuff Vs polearms. Ranged gets buff Vs polearm inf (cause they mostly don't have shields) and smaller buff Vs inf but debuff Vs cav etc.
Something like this could take into account some predefined markers for troops not changeable by player.
Just some programmed code I gave froggy for terrain effects.
Post in thread 'Beta Patch Notes e1.5.6' https://forums.taleworlds.com/index.php?threads/beta-patch-notes-e1-5-6.436281/post-9609968

Problem is, atm you can only get bool methods of a troop if it is an archer(bow, crossbow) , mounted, ranged(has some javelin bow or crossbow) and soldier. It doesn't take into account if it is a skirmisher, mounted skirmisher, shocktrooper(2handed), polearms. But this could be easily implemented. Like the terrain effect for some sort of those troops.
 
Just some programmed code I gave froggy for terrain effects.
Post in thread 'Beta Patch Notes e1.5.6' https://forums.taleworlds.com/index.php?threads/beta-patch-notes-e1-5-6.436281/post-9609968

Problem is, atm you can only get bool methods of a troop if it is an archer(bow, crossbow) , mounted, ranged(has some javelin bow or crossbow) and soldier. It doesn't take into account if it is a skirmisher, mounted skirmisher, shocktrooper(2handed), polearms. But this could be easily implemented. Like the terrain effect for some sort of those troops.


I saw this one. Nice soliution. As for troops what i proposed was to add a flag to every troop in the game defining if it's inf, polearm inf, ranged, cav, ranged cav. This would require to add additional information in troop definition that won't be editable in game. Than call this flag when calculating round outcome.
 
HBLtdVT.png

This is the entire GetPower used for autocalc to determine troop strength. It only care about three things:
1. Hero unit?
2. Tier?
3. Mounted?

As of a few patches ago, the mounted bonus was disabled in sieges. That changed almost nothing about snowballing because most sieges are 'overdetermined', as they put it in mil-speak. Battania does uncommonly well because it has (or had) an uncommonly high amount of cavalry in its party compositions. That was it. If you adjusted Battania's troop tree to eliminate the excess cavalry, then their performance dropped accordingly.
The wildings troop line is infantry and they remain on foot, all I did is change their range weapon. No soldiers changed their mount states. And the save where both empires dying was opened in e1.5.5, and still, both empires fked by Khuzait all way to the west.

TW still run simulation battle that simple, then why are TW keeping nerfing everyone? Now all cultures look poor, ugly, and clone. And the snowballing is still there, it is simply downgrading their game and waste their arts.
 
Was it Callum who said "thered be just a sprinkling of strategy game here"? Thats just a bizarre design plan to me at this level of the series seeing what can be done quite well with this engine without a whole new element of game design needed. Just a couple of table top nerd type smart guys could fashion out something pretty solid and it would dramatically increase the enjoyability of the game as it would now make some sense. Thats the problem right now -its kinda senseless strategy by the AI so while the first person in battle action is exciting -you start wondering why your doing what your doing after a while..
 
For me those are mostly not mistakes but variety. I find it terrible if all units have uniform equipment, it's a medieval and not 19th c. AD setting. I give my custom troops (from ATC) all different equipment as much as possible. If not all in a tier have the best armor, that's life.

There are several mistakes in the troop tree (like having a onehanded sword as sidearm, but twohanded stats) but it's not that bad.
The bastard swords are counts as one-handed swords a few versions ago. So their price is based on one-handed states instead of two-handed states, just like menavlion and glaive, as both weapons can one hit a cataphract, their price is based on their poor one-handed states, so they are much cheaper than other crazy polearms that one hit everything. The economy and polearm design are still broken, in my opinion.

And TW knows that because the voulgier and menavliton are given one-hand swords or two-hand swords to fight infantry, it makes them less powerful or useless than fight everything with their polearms. But if they fight everything with their polearm, they become a much stronger version of line breakers or palace guards. Now the voulgier have a voulge, a two-hand sword, a sword, and throwing axes, making no sense anyway.

After the e1.5.4, TW makes all recruits dressed in the uniform. This is a horrible decision, and Sturgian recruits now look like imperial recruits. Recruit now more likely spawn with only one peasant weapons that make them worse than their peasants. So I do not understand what are they doing when they are balancing
 
@mexxico Hey, I was looking at the new troop upgrade code (in UpgradeReadyTroops and CalculateUpgradeChance), and I wanted to point a few things out that might affect snowballing. I think Khuzait npcs are actually upgrading their recruits to the cavalry branch at a higher rate than they were prior to the change.

Before the change, I think how it worked is that they would just split troops 50/50 between the two upgrade branches. The problem now is that when they recruit a bunch of T1 Khuzait Nomads, this pulls down their cavalry ratio below 0.36 (because Nomads count as infantry), so they start funneling upgrades into the cavalry branch at a >50% rate. This means a higher proportion of their Nomads get sorted into the cavalry branch than the non-cavalry branch than before. Here's an example of what I mean:
Hrxdn.png
Anat already has more Khuzait troops upgraded into the cav branch than non cav branch, but since she has 71 Nomads in her party, her cav ratio is only listed as 0.233, and the game therefore calculates a ~70% chance to upgrade her Nomads into the cavalry branch vs. 30% to non-cav. If you plug in the numbers, even at a 0.3599 cav ratio, the game will still be funneling Nomads into the cavalry branch at about a 63 to 37 split. After her cav ratio rises above 0.36, the upgrade split will return to 50/50. Compare that formula to 1.5.6, where the overall split would be a constant 50/50, regardless of cav ratio.

This means Khuzait as a whole will be getting more cavalry, at a faster rate. If you look at this comparison of the troop composition of two Khuz. armies from 1.5.4 (left) and 1.5.7 (right), you can see that the 1.5.7 army has a higher proportion of troops from the cavalry branch than non-cavalry branch (especially when looking at Tribal Warriors vs Footman):
yT4QN.png
I'm not offering this as hard proof, since it's only two data points, but it helps illustrate what I mean.

Then the other point I wanted to make is that for the other factions there is a significant amount of "lag" time between when a T1 recruit gets sorted into the half of the troop tree with cavalry, and when it actually becomes a cavalry troop. Specifically for the Empire, they only have one cav troop at T5 in their main line of troops, so a high proportion of recuits get sorted into the archer branch, but relatively few of them survive long enough to become horse archers. This isn't much of an issue on its own, but it makes the tactics perk Tight Formations (Infantry deal 10% more damage to cavalry in auto-calc) less useful against Khuzait since fewer troops get sorted into the infantry branch. Here's another screenshot of an Empire army in 1.5.7 with many more archers than infantry, but relatively few cavalry (only a ratio of 0.04):
zC6AF.png

So two possible solutions:
  1. Only count T2+ troops in the cav ratio. There are no T1 cav troops in the game, but most non-bandit T1 troops have the potential to upgrade into cavalry eventually. This will hopefully prevent the game from sorting so many Nomads into the cavalry branch of Khuzait parties.
  2. Allow npcs to recruit more tavern mercenaries (specifically Watchmen and Scouts). This gives factions more abundant access to cavalry troops quicker, but currently npcs don't recruit many mercenaries because there is a high gold requirement in place that only clan leaders can meet (though make sure there are still plenty of mercs left for the player :smile:). As a side note, it seems the mercenary selection code might be bugged, because it isn't spawning any troops from the Scout branch of the merc tree that I can tell (unless that's intended).


This method gives huge advantage to cav based armies because the buff is big enough that cavalry unit at T5 can kill any infantry/ranged unit up to T4 at first try.
That's overstating the advantage a bit though, as any unit can kill any other unit first try, since it's all probability based. If you crunch the numbers from the auto-calc model, a T5 cav unit has about a 40% chance on average to kill a T4 infantry unit on any given hit, but a T4 infantry unit also has a 22% chance to kill a T5 cav unit on any given hit. If you compare T5 cav vs T5 inf, it's a 34% vs 26% chance respectively. So even though the cavalry unit has a 20% bonus applied to its power level, this only shakes out to be roughly an 8% greater chance to kill a non-cav unit of equivalent tier than vice versa.

Lets give them some strategic reason for moving, attacking and defending.
Strategic reasoning is the hard part though. You can add as many rules as you'd like to the actual auto-calc model (TW has already implemented conditional terrain and unit-countering perks in the tactics tree, for instance), but with those extra rules thrown in, making the AI understand how their party strength compares to every enemy they come into contact with before they attack isn't exactly trivial. I'm not an expert, but you'd probably have to run a bunch of strength comparisons for each of the different troop types between parties for every hostile party that comes close to every other party, or if the ruleset is too complex, just execute the auto-calc code in advance. Considering mexxico said this:
Also we have to understand what to do in miliseconds for each party in world because these calculations are done in all map (1000s of parties) so these calculations should be done so effectively means we cannot check all parties in a large area for each party
a few pages back, I think they probably want to keep that aspect of the AI code streamlined.

(Sorry for the novel, guys :lol:)
 
Strategic reasoning is the hard part though. You can add as many rules as you'd like to the actual auto-calc model (TW has already implemented conditional terrain and unit-countering perks in the tactics tree, for instance), but with those extra rules thrown in, making the AI understand how their party strength compares to every enemy they come into contact with before they attack isn't exactly trivial. I'm not an expert, but you'd probably have to run a bunch of strength comparisons for each of the different troop types between parties for every hostile party that comes close to every other party, or if the ruleset is too complex, just execute the auto-calc code in advance. Considering mexxico said this:
a few pages back, I think they probably want to keep that aspect of the AI code streamlined.

Right but we also dont want them to have EXACT calculations of enemy AI parties as thats not realistic either. Look at Sieges -every determination to siege is pure mathematics which as the other extreme is -boring. So then -they are already making some sort of strength calculation before deciding whether or not to attack or run from another party- now we are asking them to humanize them -errors and all. for instance, if a party of mostly or all archers are threatened by a nearby party of horsemen -and are in or close to thick forests terrain -let us see them (via debug or just common sense) hang in the woods waiting for either enemy to leave or ambush. This doesnt need to be exact nor perfect -but some humanistic reasons besides very base math makes warfare interesting. Even if the decision is boneheaded -hey at least they had a reason and plenty of real life skirmishes WERE BONEHEADED -makes for interesting warfare narrative.

This does not. As it is it is utterly uninteresting and lends itself to zero narrative. Can you give me any interesting AAR's of strategic Lord warfare from your game? I seriously doubt it as they are more akin to the ghosts of pac man running to and fro.

And 1000's of Map parties is an overstatement -sure maybe including every bandit and caravan but those could be simplified -the real juice of the game is Lord on Lord and that should be better illustrated
 
Right but we also dont want them to have EXACT calculations of enemy AI parties as thats not realistic either. Look at Sieges -every determination to siege is pure mathematics which as the other extreme is -boring. So then -they are already making some sort of strength calculation before deciding whether or not to attack or run from another party- now we are asking them to humanize them -errors and all. for instance, if a party of mostly or all archers are threatened by a nearby party of horsemen -and are in or close to thick forests terrain -let us see them (via debug or just common sense) hang in the woods waiting for either enemy to leave or ambush. This doesnt need to be exact nor perfect -but some humanistic reasons besides very base math makes warfare interesting. Even if the decision is boneheaded -hey at least they had a reason and plenty of real life skirmishes WERE BONEHEADED -makes for interesting warfare narrative.

This does not. As it is it is utterly uninteresting and lends itself to zero narrative. Can you give me any interesting AAR's of strategic Lord warfare from your game? I seriously doubt it as they are more akin to the ghosts of pac man running to and fro.

And 1000's of Map parties is an overstatement -sure maybe including every bandit and caravan but those could be simplified -the real juice of the game is Lord on Lord and that should be better illustrated
Well I'm not saying a little more variance in the auto-calc battles is a bad thing, but what we don't want is for npcs to make the same errors in the same direction every single time, which is what I think would happen, since npcs of a certain faction are mostly stuck with the same troop options each time they respawn. If npcs aren't able to have a reasonable (not exact) approximation of their strength vs their enemies, then their behavior will seem odd, not dynamic, when they take obviously (to us) bad fights because they don't have a true comparison of their capabilities.

Sieges are actually a good example of what I'm talking about. You're right, npcs use their troops' power level to gauge their own strength and compare it to whom they are targeting. However, the way it is currently implemented, when the AI is searching for a target settlement to besiege, they use the version of GetPower that does apply the 20% cavalry bonus to their strength, even though auto-calc won't apply the bonus in the actual siege. This actually causes Khuzait to consistently overestimate their army's strength vs an Empire settlement (because they think their cavalry is 20% stronger than they are), and the Empire to consistently underestimate their army's strength vs Khuzait settlements. This is fine though since it works out to the Empire's favor. Let's take slightly different hypothetical situation, though.

Let's say that the AI doesn't apply the cavalry bonus when determining whether or not to engage an enemy party on the field, but when they get into the actual battle, the game switches the ruleset on them and does apply the cavalry bonus. An Empire lord with the same tiers and slightly higher numbers than a Khuzait lord will estimate that they can probably win a battle between them, so they engage. However, once the cavalry bonus kicks in in auto-calc, they end up losing pretty handily. They don't know what went wrong, and once they respawn, they go recruit the same party and lose in the same manner all over again because they can only use information that's given to them and the game pulls a bait and switch with the auto-calc rules every time.

But maybe none of that matters and it wouldn't be noticeable to the player anyway ?‍♂️.
 
Last edited:
Back
Top Bottom