Is there an actual feasible way to allow >1000 battle sizes with modding?

Users who are viewing this thread

Taleworlds has said that they designed Bannerlord to be moddable in virtually every aspect. I am wondering if this also means we can up the Battle Size scale to 1500, possibly 2000 for systems that can support it.

Yes the maximum possible size is 2048 with no cavalry, so it currently does not technically support more than 1023 men.

Any modders been successful in "cracking the code"?
 
The 2048 agent limit is in the engine, not in the dlls so nothing modders can do about it.

Why they have this specific limit is unknown, I see no reason why it couldn't be 4096 or even dynamic letting the users performance be the main limiter. Afaik the developers have been asked this question many times and not answered.
 
The 2048 agent limit is in the engine, not in the dlls so nothing modders can do about it.

Why they have this specific limit is unknown, I see no reason why it couldn't be 4096 or even dynamic letting the users performance be the main limiter. Afaik the developers have been asked this question many times and not answered.
When the game came out you were able to edit the files to go uo to 2048 but even with the most high end PCs at the lowest graphics you could not run anymore then 1800 max idk if its still possible anymore but you were able to do that and it did not work well as the AI would also break more times then not
 
When the game came out you were able to edit the files to go uo to 2048 but even with the most high end PCs at the lowest graphics you could not run anymore then 1800 max idk if its still possible anymore but you were able to do that and it did not work well as the AI would also break more times then not

Im not sure why they simply wouldn't give us the option to set a higher max. Those with i9 10900k run 1000 battlesizes well under 50% CPU utilization.
 
Im not sure why they simply wouldn't give us the option to set a higher max. Those with i9 10900k run 1000 battlesizes well under 50% CPU utilization.
Well that cpu usage is mostly due to updates and im pretty sure you can still do it mabye i never saw that it was changed in the notes but i am gonna have to check and most likely because that limit is there for a reason maps would get way to cluttered just fully breaking the AI
 
Yes AI, balance and performance would probably be horrible at huge battle sizes. But they could still have the normal limit be 1000, balance and develop with that size in mind, and then let people use mods to go above it. Cpu and gpu are always improving, in a couple years we might have computers that could handle 2000 (4096 limit to account for horse) no problem. I can't see a reason why they would need to hard code a limit.
 
Yes AI, balance and performance would probably be horrible at huge battle sizes. But they could still have the normal limit be 1000, balance and develop with that size in mind, and then let people use mods to go above it. Cpu and gpu are always improving, in a couple years we might have computers that could handle 2000 (4096 limit to account for horse) no problem. I can't see a reason why they would need to hard code a limit.
I dont think its hard coded though since im pretty sure it isnt its probably because they would have to make like twice the map sizes
 
I dont think its hard coded though
While I have not tested myself, from what I've seen every one that increases battle size report reduced performance pretty much linearly until the combined agent count (human + horse) reaches 2000 (most likely 2048 due to programming conventions) at which point the game immediately crashes. Some have very playable performance close to the limit but then crash as soon as the agent count goes over the limit.
 
While I have not tested myself, from what I've seen every one that increases battle size report reduced performance pretty much linearly until the combined agent count (human + horse) reaches 2000 (most likely 2048 due to programming conventions) at which point the game immediately crashes. Some have very playable performance close to the limit but then crash as soon as the agent count goes over the limit.
Yeah that is definetly true i dont think that has anything to do with the PC so it might be hard coded but im gonna have to test this myself
 
I tested using my tournament mod, battle size in options is set to 200 but since I ignore the setting (and other mods increasing it beyond 1024 get the same issue) it doesn't change anything. Spawning exactly 2047 agents (the crowd isn't agents) works with playable performance at max graphics 4k. spawning the 2048th agent causes a crash. I would suspect the tournament master is spawned taking up 1 agent slot so the true number is 2048 works, 2049 crashes.

I if I were to guess I would assume the engine has allocated resources (probably an array) for 2048 agents, the options unless modded limit the game to never try spawning more than 2000 agents so there is no need to check if the game is trying to spawn too many and then allocate more resources. Why a dynamic array cannot be used allowing modders/users to be limited purely by performance I do not know.
Screenshot-181.png
 
I tested using my tournament mod, battle size in options is set to 200 but since I ignore the setting (and other mods increasing it beyond 1024 get the same issue) it doesn't change anything. Spawning exactly 2047 agents (the crowd isn't agents) works with playable performance. spawning the 2048th agent causes a crash. I would suspect the tournament master is spawned taking up 1 agent slot so the true number is 2048 works, 2049 crashes.

I if I were to guess I would assume the engine has allocated resources (probably an array) for 2048 agents, the options unless modded limit the game to never try spawning more than 2000 agents so there is no need to check if the game is trying to spawn too many and then allocate more resources. Why a dynamic array cannot be used allowing modders/users to be limited purely by performance I do not know.
Screenshot-181.png
I dont know either and can you send me that mod link i juat came back home and im gonna try it out and rest it first hand of course i trust but another test would not hurt
 
Why a dynamic array cannot be used allowing modders/users to be limited purely by performance I do not know.

I can think of a few possible reasons:

One reason could be that they want to prevent the amount of byte shifting that occurs when you insert elements to large arrays. This is very unlikely though because arrays are extremely fast and you can shift megabytes of data in a fraction of a second, and there are easy workarounds to using insert and remove in the first place, so long as you don't care about the order the elements are in. I had to avoid byte shifting in my own game, but my arrays are about 10,000,000 entries long.

Another reason could be that the troop class data is stored on the stack rather than the memory heap so it has to be organised and limited in size. I planned to do something like this with my own game but the performance gains weren't really worth it, however in the bannerlord engine maybe the skeleton and physics data is all stored in individual classes, which could add up to enough that they have to limit it to prevent it from overflowing to the heap or whatever.

A related reason might be the animation rendering system they're using for meshes, I can't remember the specifics in this regard but from what I remember the system pushes skeletal mesh data to the GPU via a render target (a dynamic texture) per frame and then renders the whole thing using this data. This would mean they would be hard limited by the size of the texture, and there wouldn't be an easy way to dynamically upscale it for larger systems.

I might be talking out of my ass but this third one seems the most likely to me, especially with the specificity of the number 2048 which isn't in line with the normal primitive type limits you run into while programming, like uint8 (256) or int16 (65536)
 
I do think that we should gradually increase battle sizes over time. Keep in mind that Mount and Blade was around for over a decade.

Over time, core counts in CPUs has been going up, especially with the release of AMD's Ryzen and Threadripper CPUs. GPU power is also going up.

I'd be interested to see if 2048 is actually the limit? Right now my CPU can run ~1600 without too much issue, and I'm planning to upgrade next year.
 
Im not sure why they simply wouldn't give us the option to set a higher max. Those with i9 10900k run 1000 battlesizes well under 50% CPU utilization.
I guess it´s related to the engine. Try to play Warband with a good rig and use the battle sizer, you won´t have fun if you turn it up too high.

Also 1000 units are really much, but they should handle reinforcements better. The engine is the smallest problem the game has, it´s pretty good.
 
Be happy we even got 1000. Before we were barely able to get 150 without problems. 1000 is PLENTY. Besides having a larger reserve of troops that spawn in after others die or flee causes the engine to struggle and eventually crash. Learned that right quick with Enhanced Battle Test and even just using cheats in the campaign.
 
Back
Top Bottom