I heard battle size of Bannerlord is capped at 2048, but why?

Users who are viewing this thread

Yes, each troop in Bannerlord has it's own independent AI. Total War Games may look impressive, but there's a reason they don't let you actually fight, and that's because it's all visual simulation to make it look like a massive battle when infact there's not a whole lot actually happening behind the scenes. It looks great for sure, but you wouldn't actually be able to interact with those soldiers if you was down there with them.

AI in Bannerlord need to be able to fight dynamically, having freedom of movement, selecting the closest target, accessing that targets blocking direction, choosing it's own, predicting it's movement to correctly throw javelins or fire projectiles at. None of this would work with the Total War Style of AI implementation and all of these calculations can add up to be very intensive with a large amount of troops.
I know what you mean, that's why I focus on pathfinding part. Current AI do not support complex commandng, during field battle, most time we only have several big clusters of units before final charge(and fight normally end fast after that, or number of units on field reduced greatly after that, and during the fight we do not need complex pathfinding but simply find the closest enemy), so if pathfinding for units of a single cluster is computed as a whole, computational burden would be reduced greatly.
The reason they limit the troops is so the product they release is stable, if they increased the cap to 10,000, and advertised it as such, there would be a lot of backlash when people realise their machine can't handle it. There may also be some engine limitation in there, so they decided to cap it at what they thought was the highest acceptable value.
We are talking about PC, not console, common sense: select game setting with respect to your machine when playing on PC, the game can support something does not mean your machine can also support the same thing. Simple examples: DLSS/4k. Why can people understand that common sense when talking about graphical issues but cant understand when talking about battlesize? Recall Warband when we do not have such upper cap, will you further increase battlesize when you have already been suffering from significant performance loss? Your logic is really weird. DO NOT TREAT PLAYERS AS IGNORANT MONKEYS.
It's just more efficient to hardcode a number than to do various calculations related to your settings, size of the modules, available resources, etc every time the game runs.
Then at least allow players do the choice themselves. Not like hard-coded this way.
Maybe because every trooper might be described in the code with a number which will be translated as a binary symbol combination of I and 0 which seems to be 10 bits big so: 0000000001 is Trooper #1 for the engine and 1111111111 is trooper #2048. For another one you would need to make the engine understand that there are numbers greater than "10 binary digits". Might be engine-related. But it is indeed a power of 2 which might make one guess this could be an allocation thing or something hard-coded. I mean, you must explain to the program what to do with the input it gets and if it is like "there are 2048 troopers possible" because it only accepts a 10-digit number as denominator we cannot simply make it 4096 by adding another digit because then the program will be confused. Maybe something like that. Maybe they thought when making the game years ago "well, we cannot imagine that PCs will be able to handle a larger number than roughly 2000, so we use the 10-digit solution as denominator. I do not know. Maybe I just had a bad coffee and am seeing things.
That may be an explanation, but it is still weird since the limitation you described also need to be manually implemented(since this is not the upper cap of binary number machine can accept and understand). And if it were simply an allocation space issue, then it is suppsoed to be simple to alternate.(As far as i can image, like simply increase to a much larger number that no machine can actually reach, then game will crash with respect to capability of corresponding machine)
My guess is that doubling the hardcoded maximum from 2048 to 4096 (i.e. adding a bit, the smallest possible increase) would cause a significant performance drop that would make *all* battles run worse on *all* systems, raising the minimum and recommended requirements on the CPU side.

They probably already took a hit from going for 2048 instead of 1024, but did it because they didn't want to lock themselves out of offering sizes over 1000 in the future without a refactor.
That might be the case, algorithm complexity may increase exponentially. But still, at least allow players to alternate the setting themselves, at least through mod. Common sense: modify product, which is Bannerlord under this context, at your own risk. DO NOT TREAT PLAYERS AS IGNORANT MONKEYS.
Anyway, with a mod you can increase the battle size to whatever you want (in the .NET code) but the underlaying (low level/rendering) module crashes above 2k when it gets this number, suggesting that there is a hardcoded buffer/list with that maximum size, and if you give a bigger number, it overrides and corrupts memory - and crashes the whole game.
That's what I'm trying to ask: why and how is such cap implemented in the lower level code?
 
Last edited:

Grank

Sergeant Knight at Arms
WBNWVC
Then at least allow players do the choice themselves. Not like hard-coded this way.
Why? It's really not important from an engineering perspective. What benefit will a higher number of troops at a battlefield at once give you? You will feel pretty much the same thrill with 2048 troops at once. Those troops are not even real players. The only one experiencing the battle is you. There's no importance to that number like it would in an MMORPG or a vcon app.
 

GMBarak

Regular
Why? It's really not important from an engineering perspective. What benefit will a higher number of troops at a battlefield at once give you? You will feel pretty much the same thrill with 2048 troops at once. Those troops are not even real players. The only one experiencing the battle is you. There's no importance to that number like it would in an MMORPG or a vcon app.
It's not only the number of troops in the battlefield, it's them spawning after other troops were killed at bad locations. it ruins the experience of large battles and disturbs the ability to apply tactics that will get better battle results, troops I invested hours in training get killed because of it, in other words, it just ruins the game. and if I want to spend thousands of dollars to have a strong PC which will allow me to enjoy even slightly bigger battles (1500 instead of 1000) Taleworld should support it in my opinion.
 
Why? It's really not important from an engineering perspective. What benefit will a higher number of troops at a battlefield at once give you? You will feel pretty much the same thrill with 2048 troops at once. Those troops are not even real players. The only one experiencing the battle is you. There's no importance to that number like it would in an MMORPG or a vcon app.
I do not understand what you mean by "engineering perspective". But as a video game, from player perspective, it did affects gaming experience. Reinforcement issue has been discussed above. Another example I can come up with is tactics. With a small battlesize like 500 each side(which is the current cap), tactics and commanding troops won't affact battle much(players can barely have reserved/mobile forces that is effective enough to do something by themselves, so most battles are just one-wave rush and that's it, choice of tactics has been narrowed down)
Wait, seems I got a point. Did TW put the upper cap to give themselves a reason for not implementing a better command/squad system and better tactic AI?
By the way, if your so-called "engineering perspective" concept is true, why did TW put effort to increase availiable battlesize so that with same hardware, Bannerlord can support much larger battle than Warband? Any explanation?
 
Last edited:

Grank

Sergeant Knight at Arms
WBNWVC
I do not understand what you mean by "engineering perspective". But as a video game, from player perspective, it did affects gaming experience. Reinforcement issue has been discussed above. Another example I can come up with is tactics. With a small battlesize like 500 each side(which is the current cap), tactics and commanding troops won't affact battle much(players can barely have reserved/mobile forces that is effective enough to do something by themselves, so most battles are just one-wave rush and that's it, choice of tactics has been narrowed down)
Wait, seems I got a point. Did TW put the upper cap to give themselves a reason for not implementing a better command/squad system and better tactic AI?
By the way, if your so-called "engineering perspective" concept is true, why did TW put effort to increase availiable battlesize so that with same hardware, Bannerlord can support much larger battle than Warband? Any explanation?
As of now it's widely assumed that it's an engine limitation. It's not worth tinkering with that just to have a bigger number to potentially fix those little problems. There's no guarantee that increasing the battle size beyond 2048 will fix them, and yes they're little problems. When are you ever gonna have a battle with more than 2048 troops at once? How often are you going to have such encounters? How many players have the machine to handle it? It's neither a bug or a missing feature. It's best for TW to invest their resources to fix actual bugs and complete the game. Engineering is not done by implementing every single hopes and dreams of every human being on earth.

And here's your explanation. Warband has a different engine from Bannerlord, and it's extremely inefficient at rendering an increasing number of troops beyond its standard limit. An engine is not entirely made from scratch by whoever is developing it. It imports a whole lot of libraries made by other parties, especially to do low-level functions like rendering, and usually you don't have power over the development of those libraries. If something sucks, you either stick with it, pray there's a better alternative you can find, or waste a bunch of resources to reinvent the wheel. Warband's engine uses older libraries, as it was made way back, and those libraries were written with old hardware in mind. Hence the inefficiency. Bannerlord being newer naturally gives it more capacity than Warband. They put effort to implement and test up to their current battle size, and that's enough. It's good enough.
 
Top Bottom