Dear Taleworlds, Is there any way you can remove the 2048 unit cap on battle size for the game?

Currently viewing this thread:

Not sure why there is a 2048 cap on battlesize. If it were hard-coded like this
Code:
if battlesize>2048:
    raiseerror and exit
then it woule be very simple to remove this cap.
If this cap were resutled from algorithm and structure of engine, then the reason behind would be very interesting topic to discuss. Like it's very weird to have a specific number common for every machine being the break point
I don't know anything but somehow I don't think it's as simple as it being a cap that can be removed like that, if it were I suspect someone would have done it by now. Maybe it's hidden idk. Hopefully someone can explain.

My computer isn't anything special:
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
nvidia geforce 1660 16gb ram

But I can run a siege battle with 2000 troops involved at once with all the highest graphics settings and have no issues apart from reinforcements not spawning.
 

Fate

Regular
It's an engine limitation, not some hardcode that can be removed.

We won't get more than the 2048 unless they update their engine and that's certainly not a priority for them (nor do I think it should be even though my rig can also definitely handle more than that with max settings).

I doubt they'll ever push this limit as only select players would even benefit, not worth the time for them this late in the game especially with the mountain of issues and missing content they're trying to deal with
 
It's an engine limitation, not some hardcode that can be removed.
Then it's very weired why this cap is exactly the same for everyone and every machine. Normally if crash is induced by engine, through memory leak or something like that(since this crash is related to increased amount of computation required), the break point is supposed to be higher for better machine.
 

Fate

Regular
Then it's very weired why this cap is exactly the same for everyone and every machine. Normally if crash is induced by engine, through memory leak or something like that(since this crash is related to increased amount of computation required), the break point is supposed to be higher for better machine.
The game engine is the same for everyone regardless of machine and it's an entity cap. More than likely because going up another power of 2 would have been too intensive for even the most powerful machines.
 

Fate

Regular
(since this crash is related to increased amount of computation required)
The crash is not due to increased amount of computation. The crash is because you've surpassed the game engines limitation.

Use a mod which allows you to increase this cap and watch your CPU when the game crashes. I doubt it'll be maxing out
 
The game engine is the same for everyone regardless of machine and it's an entity cap. More than likely because going up another power of 2 would have been too intensive for even the most powerful machines.
It may not be able to go much higher than 2048, but then the performance is supposed to drop differently for differnent machines. Not like now, it suddenly crashed after passed an identical point for all machines no matter how the game perform before the point. In Warband, if you keep increasing battlesize, performance will drop gradually to some point you can not actually play the game (for example, super-low FPS)before crash. But in Bannerlord, the machine may perform normally before the break point and suddenly crash after the point has been passed. Most video games works in the Warband way.
The crash is not due to increased amount of computation. The crash is because you've surpassed the game engines limitation.

Use a mod which allows you to increase this cap and watch your CPU when the game crashes. I doubt it'll be maxing out
Wait, did you say it's not hardcoded? Now you are saying it is hardcoded.
What do you mean by "engine limitation"? If by that you mean developer manually implement that limitation in engine, then it is hardcoded.
If by that you mean the algorithm and structure of the engine is not efficient enough and induced this limit, then this is due to increased amount of computation.
I have tried, and obviously my CPU is still capable when the game crashed
 
Last edited:
What do you mean by "engine limitation"? If by that you mean developer manually implement that limitation in engine, then it is hardcoded.

If by that you mean the algorithm and structure of the engine is not efficient enough and induced this limit, then this is due to increased amount of computation.

It's probably neither. The fact that it's a power of two suggests that it's due to a limitation of how the code uses hardware and memory directly. Performance usually isn't linear or gradual, for example in warband a texture of size 2048 would load and be rendered about 10 times faster than a texture of size 2047.
 
The crash is not due to increased amount of computation. The crash is because you've surpassed the game engines limitation.

Use a mod which allows you to increase this cap and watch your CPU when the game crashes. I doubt it'll be maxing out
Picture attached. The CPU and GPU occupation drops suddenly when I tried to load the battle scenes, which suggests the game has even not at least tried to do the job when the point has been passed.
1QRXtyA.png
 
It's probably neither. The fact that it's a power of two suggests that it's due to a limitation of how the code uses hardware and memory directly.
The power of 2 cap suggests that kind of guess, and that's also what I have originally thought. But a year has passed and still no official interpretation released, regardless of so many similar forum posts.
Performance usually isn't linear or gradual, for example in warband a texture of size 2048 would load and be rendered about 10 times faster than a texture of size 2047.
Normally not linear, but normally gradual. I don't quite understand what you are saying in the second sentence, do you mean "slower" instead of "faster"?
Also you can take a look at the picture and comment I posted above
 
Last edited:

Fate

Regular
I have tried, and obviously my CPU is still capable when the game crashed
I think it's fantastic you're interesting in how this works, but I unfortunately can't put more time into explaining it out. I'd recommend looking up gaming architecture and what goes into a game engine and how it works with your computers resources

Simply put increasing this limit is much farther reaching and complicated than it sounds. Like Kentucky said it has to do with how the software uses memory and processing directly

I'm extremely cynical of TaleWorlds, but I don't judge them at all for not trying to work on this even as much as I'd like to see larger battles
 
I think it's fantastic you're interesting in how this works, but I unfortunately can't put more time into explaining it out. I'd recommend looking up gaming architecture and what goes into a game engine and how it works with your computers resources

Simply put increasing this limit is much farther reaching and complicated than it sounds. Like Kentucky said it has to do with how the software uses memory and processing directly

I'm extremely cynical of TaleWorlds, but I don't judge them at all for not trying to work on this even as much as I'd like to see larger battles
I come from CS background so I do know about how the machine works(though not familiar with game design major). And from what I know, this kind of crash does not look like induced by incapability of computing resulted from complexity/structure issues, as explained above.
 
The power of 2 cap suggests that kind of guess, and that's also what I have originally thought. But a year has passed and still no official interpretation released, regardless of so many similar forum posts.

There's some stuff here and there posted by the developers on the modding discord, but nothing conclusive. Seeing as this question keeps coming up I'll ask through my [[secret backchannels]] and hopefully get an answer.

Normally not linear, but normally gradual. I don't quite understand what you are saying in the second sentence, do you mean "slower" instead of "faster"?

Nope, I mean faster. Hardware is weird and performance is often completely unintuitive. Someone on the modding discord even suggested that it might be physically impossible to make 2000+ battles run acceptably well even with 2000 core CPUs. I highly doubt that in the future you'll be able to run 10000+ or even just 2000+ battles even if your hardware is hundreds of times faster. RAM is usually the bottleneck these days anyway.

CurtisLloyd30/12/2020
I believe I just figured out why Taleworlds hardcoded a 2048 limits on bannerlord. Cuz according to the amdahl's law and based on 75% parallelism computing of bannerlord gameplay, no matter how many cores you scale up like 512 or 1024cores,, the frame rates of running 2000 units would always be less than 27-28fps.. This is talking about 512 or 1024cores and still hardly playable for any real gameplays. not to mention all we can achieve now is far less than 64 cores. So any games with more than 1000 moving units of independent AI can never ever run smoothly in this physical universe.

That might not be the reason, but it highlights the problem, that you can't just throw faster hardware at a problem and expect it to go away. Older games often run worse on newer hardware which is 100s of times faster.

My guess regarding the limit is that theyre passing lots of data between the GPU and CPU to allow all the cloth physics etc, and since this is one of the few areas in modern programming where every kilobyte you can save matters, they've only assigned 11 bits (0-2047) to the mesh ID and then the other 6 or 22 bits to something else. As I said I don't know exactly how it works yet, but since 2048 isn't a power of two that really shows up that much in programming, it suggests the ID being packed in with other values. Raising the limit to 4096 might not be possible without removing another bit that might do something important.

Picture attached. The CPU and GPU occupation drops suddenly when I tried to load the battle scenes, which suggests the game has even not at least tried to do the job when the point has been passed.
1QRXtyA.png
Don't get fixated on this. Games can crash in a trillion different ways and it could be something as simple as the different threads calling an exception due to an overflow before they calculate anything.
 

GMBarak

Recruit

These work. You will get crashes and bugs like reinforcements not spawning though, no matter how good your PC is.
The BattleSize mode is currently NOT working with latest patch. This is the suggested fix:
Enable somehow "Max" number of troops, this will count the number of agents "troops+horses" on both size and will start a battle with Max number who will not cause crush. Then reinforcement should work... Hope Taleworld listen to this and will fix it, Thanks :smile:
 
The BattleSize mode is currently NOT working with latest patch. This is the suggested fix:
Enable somehow "Max" number of troops, this will count the number of agents "troops+horses" on both size and will start a battle with Max number who will not cause crush. Then reinforcement should work... Hope Taleworld listen to this and will fix it, Thanks :smile:
Where are you enabling the Max number? Or do you just mean the native settings? Or is that a suggestion for TW?
 

GMBarak

Recruit
just downloaded and set max troops to 1500 with the BattleSize mod. I get an error when Bannerlord loads saying: "cannot load..." and the path to the battle size dll.
 
just downloaded and set max troops to 1500 with the BattleSize mod. I get an error when Bannerlord loads saying: "cannot load..." and the path to the battle size dll.
You need to unblock the dll files in the mod folder.
I just run this whenever I install a new mod:
 

CrazyElf

Veteran
I have a pretty powerful gaming rig and have found that I can run a modded battle size of 1500 extremely easy and probably even break 2000. However, due to the 2048 unit hardcoded limitation plus the fact that cavalry and horse archers are counted as two units for the purpose of this limitation, I am finding as a Khuzait with a lot of horse mounted troops, that I have to dial everything back down due to the game crashing when I try to fight any large battles.


I agree - if CPUs today can handle 2048 units, then what will happen 10 years from now between now and when M&B3 is in beta?
 
Top Bottom