• If you are reporting a bug, please head over to our Technical Support section for Bannerlord.
  • If you are posting SP feedback without an actual suggestion, please head over to The Keep - Singleplayer section.
  • Please note that we've updated the Mount & Blade II: Bannerlord save file system which requires you to take certain steps in order for your save files to be compatible with e1.7.1 and any later updates. You can find the instructions here.

More granular unit designation + formation AI + some autocalc musing

Users who are viewing this thread


This has been going on through my mind for a while. Please bear with me, wall of text incoming but necessary. Technically it's something that would impact both single and multi-player part of the game, but eh. Don't care for the BattlEye snooping, so single-player it is.

I think it would be highly beneficial to include a more grandular unit designation to drive both formation AI and autocalc. Specifically, the distinction between several infantry roles (and infantry type) seems rather missing, and a cause of a lot of "on field" ineffective behavior.

My suggestion would be to have two "designation" categories.

The first is already largely in place - separation based on unit meta-type:

1. Light infantry - based on armor value
2. Heavy infantry - high armor value
3. Light cavalry - as above, low armor values
3. Heavy cavalry - high armor value

On top of that, have a separate non-exclusive list based on units' intended utility or equipment driving it:

1. Skirmish - throws stuffs
2. Melee - gets in close contact to whack things, no spears or "shock" weapons like the bill or glaive
3. Spear - pokes things - yes, it's also melee weapon, but if we want proper spear or pike bracing, an important distinction
4. Shield - "we will fight in the shade!"
5. Shock - Weapon/armor combination that relies on speed and/or ranged weapon avoidance to close in, generally two-hander wielders
4. Light ranged - or however you want to call them - something you send out to shoot, not melee until enemy is routing
5. Hybrid ranged - ranged units that also can effectively double as main infantry due to higher stats/equipment

Why the two separate designation lists?

Because this would allow better control over unit behavior. A "heavy infantry" "shield" unit is that much more beneficial to place in first line of a formamation than "light infantry" "shield" one, much less "light infantry" "shock" unit type (RIP in face of archers).

It would also allow the distinction between "heavy infantry" "shield" "skirmish" unit (Sturgian warrior line) and "light infantry" "skirmish" units, something to use in formation AI implementation.

Another example would be the distinction between "heavy cavalry" "spear" "shock" unit type (such as cataphracts), "light cavalry" "spear" "light ranged" Khuzait Tribals, and "heavy cavalry" "melee" "hybrid ranged" Bucellari. All three ultimately have different preferential behavior. While shock cavalry is there to straigh-up charge enemy lines (though, perhaps, not spear defenders holding formation...), pew-pew Khuzait light cavalry should NOT try to blindly charge into non-broken enemy formation (unless specifically ordered so), and generally avoid coming into contact with enemy cavalry in the first place, while the Bucellari should try to maximize the use of their bows but not shy from a cavalry furball or engaging out-of-formation non-spear enemies once they run out of arrows.

It would also hugely help if cavalry units that lose their mounts would join appropriate infantry formation BEFORE executing whatever command the formation is following itself (so, if the infantry formation the dismounted cavalryman is attempting to join is charging the enemy, that former horseman would try to rejoin the friendly group instead of solo-yolo charing the enemy).

I would really like to have better control for the latter, where I can issue a "skirmish" command and, when they run out of arrows, they reform in the spot the command was issued from rather than charge the enemy. This would be particularly handy in large field battles.

These designations (and I'm not saying this is the best way to implement them, as long as we get more detailed distinction between the units) feel essential to implementation of good formation AI. Why?

You don't want your shieldless light infantry in the front of the line. You don't want your spearmen all the way in the back, while recruits with one-handed swords take the brunt of a cavalry charge. Sure, you can use separate formations and spend the fight constantly re-aranging positioning and unit facing, but making at least some of that process automated would mean you have more time to do the fun thing in Butterlord - bash heads.

With the above in mind, it should be much easier to ensure that "heavy infantry" "shield" "spear" goes in the front line. If not enough, "heavy infantry" "shield" and "heavy infantry" "spear" fills the gaps, the overflow being placed in the second line. After that, whatever order of "light infantry shield" and/or "spear" and "heavy infantry" "shock" is deemed preferable, with the lightest non-shield infantry and skirmish/ranged units hanging all the way in the back. It won't save them from concentrated arrow barrage, but majority of that should hit the first lines, especially when the entire formation closes in and the enemy is shooting on a flatter trajectory.

Also use similar ordering for pure skirmishers and archer lines, where heavier armored units (much less "shield" skirmishers) are placed in the front of the formation, with lighter and/or shieldless ones behind.

Likewise, it would be extremely beneficial to have a skirmish option (which right now is "advance", but that doesn't really work well for horse archers if you want them to engage without resorting to melee after running out of ammunition) for foot ranged units that takes the above distinction under consideration.

So, a "light infantry" skirmish" unit would actually try to skirmish, and after expanding their throwing weapons return behind your main infantry line before merging with the primary "light infantry" formation, or general "infantry" formation if exclusive "light infantry" formation is not designated, and position itself according to a preference order like one described above. A "light infantry" "light ranged" archer group would move up, expand their arrows, then get behind the main infantry line unless exclicitly ordered to "charge."

It would be extremely beneficial if a mixed infantry formation (so shield and no shield units and/or "shock" type) would advance maintaining placement order discussed above, as well, rather than rely on athletics value that ultimately sends light-armored no-shield units ahead to greet the inevitable arrow response.

Basically have unit groups act more or less as a single entity maintaining their desired formations. As example, the extended Cantabrian circle line for horse archers, a tighter formation with specific placement depending on unit designations for infantry (also, "shieeeld wall!" for very close spacing, possibly with immediate inclusion of "spear" and "shock" infantry right behind in second line!), a line, half-circle, or wedge formation for cavalry, looser formation for archers/skirmishers, and the like. Would be really nice if, as a commander, we could specify those with a single (pre-set custom "macros" configurable outside of battle itself?) hotkey, rather than work with right-button dragging or combination of "move here" and "loose formation."

There is a lot that could be done to improve things, although I am not certain how much of it is feasible without putting undue calculation strain on the players' computers.

But, one important aspect of this type of reclassification would be a greater ease of autocalc implementation without going so far as to look up weapon and armor values of each unit.

I would really like to see autocalc at meast attempt to simulate formation fighting before breaking into "mano-a-mano" individual matchups (and have those far more elaborate than current RNG-deterministic method. With unit tagging with something similar to the scheme above, it would be possible to quickly establish preferable opening tactics.

For instance, an army with majority of "heavy infantry" "spear" "shield" units should not really have much issues handling predominately "light cavalry" "shock" and/or "light cavalry" "skirmish" enemy. On the other hand, a "light cavalry" "shock"-heavy army should absolutely get a major performance bonus when matched against an army that is majority "light infantry" "skirmish" and/or "light infantry" "melee", and "heavy cavalry" "shock" type should absolutely cream that kind of enemy with limited, if any, losses.

Obviously I have no idea how Taleworlds wants to handle autocalc implementation, and to what level of detail, so this could be a very handy abstraction driving some general code determining autocalc bonus/mallus to each side in battle based on army composition alone - something that is completely missing right now.

It would be even better if there was some kind of simulation of battle flow based on their presumed behavior. The above example of heavy shielded spear infantry opposing cavalry would make them a stationary formation, which also means that any ranged units accompanying them would have that much lower chance of being immediately put into combat calculations against the cavalry (imagine that the infantry forms in circle, with ranged units inside the protective area). Ultimately, this would preferably also include some calculation on tactics skill difference between the commanders. At extreme disadvantage, a low-tactics commander in charge of the infantry-heavy formation in this example could, in fact, end up having all their ranged units killed FIRST (they don't go into defensive formation, enemy cavalry splits up, main force feints at the infantry line, smaller swipes the ranged units of the opponents lined up behind their infantry line off the field).

Lastly, having this kind of more detailed designation should also help with individual combat AI. An infantry "spear" unit should be coded to try to maintain a greater distance from an infantry "melee" opponent. A "shock" infantry (units with two-handed weapons, including non-spear type polearms) should demand more space around it from friendly units and try to maintain most effective weapon reach distance from the enemy.

Welp, this was a doozy, hope I wrote everything I intended clear enough.
Top Bottom