Users who are viewing this thread

Oh no, you succumbed to peer pressure :lol:
It was like candy, I had to taste it. :lol:
HospitableOpulentKinkajou-size_restricted.gif
 
A YouTuber already made a video using this mode, Bloc. Strange he was actually informed this time, having in mind he branded "Trading Post" as the newest map, in his previous video. :facepalm:
 
A YouTuber already made a video using this mode, Bloc.
I actually don't know who that guy is but I just Googled him and watched the video. Pretty good video tho, I don't have such a fine system to prevent lags. But I'm not sure why he always referred me as they still :smile: But he was referring me and modbed probably.

And yeah I saw that Trading Post video too, but I guess he is confused because that map was really laggy and removed in early days and they just made an optimization yesterday and added it back. ( By the way that map is huge, I mean really huge. You can use freecam and see how weirdly huge that map is. Even loading takes x2 time )
 
Hello everyone, I will tell you how to add your own class to this mod.

zewIW.jpg

buMsq.png


To get started, go to
steamapps\common\Mount & Blade II Bannerlord - Beta\Modules\BattleTest\ModuleData

there are two files:
mpcharacters - data on units, their equipment and skills
allitems- item data: armor, weapons, horses, etc.
-----------------------------------------------------------------------------
open the mpcharacters file in a text editor
descriptions of each unit begins with the key <NPCCharacter and ends with a key </NPCCharacter>
Between them is a unique id, unit name, skill indicators, as well as a set of weapons, armor, etc.
copy for example the first unit "Ulfrich" and paste at the beginning of the file, immediately after <MPCharacters>
PnmEe.png
replace id = "mp_character" with a unique name that is convenient for you. Also replace name = "{= eFWJjaBC} Ulfrich"> with a name convenient for you (it will be displayed in the game
lWNJO.png

Now take care of equipment
open the table editor (in the example I use Excel 2013) and drop the file there: allitems
it should look something like this:
skt0E.png
id column - item id, we need them to add our equipment set to our unit
type column - type of items needed to find a type compatible item
at the very right edge of the table, there are id6 and crafting_template columns. they are similar to the previous ones, but apply to weapons
Now I will copy the weapon with the name (id6 column) dolabra and paste it into our mpcharacters text file, for my character, in this example instead of <equipment slot = "Item0" id = "Item.mp_sturgia_heavy_axe" />
I got <equipment slot = "Item0" id = "Item.dolabra" />
TPY1V.png
lRmHc.png
by anology, I pick up a helmet, shoulders, armor and a horse (I remind you that the id and type columns are in the left part of the table to help you)

as a result, my character block began to look like this:

<NPCCharacter id = "Apolon" level = "36" name = "Apolon">
<face>
<! - face_key value = "34.12; 0.4; 0.4568; C07C0000001; 11111211161111; 7010000100000; 11101100010100; 7600407111110; 0; 0; 180000" max_value = "68.79; 0.7253; 0.6852; 11FC0FC03C384F; FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ; 0; 309101 "/ ->
<BodyProperties version = "3" age = "20.96" weight = "0.5" build = "0.6" key = "00000C07000000010011111211161111000701000010000000111011000101000000000207111110000000000000000000000000000000000000000000100000" />
<BodyPropertiesMax version = "3" age = "20.96" weight = "0.5" build = "0.6" key = "0011FC0FC03C384FFFFFFFFEFFFBEFFFFFFFFFFFA97EF7FEFFFFEFFFFFFFFFFFFFFF000000FD20AFFFFFF000000000000000000000000000000000000000000289101" />
</face>
<skills>
<skill id = "Riding" value = "200" />
<skill id = "OneHanded" value = "300" />
<skill id = "TwoHanded" value = "300" />
<skill id = "Polearm" value = "200" />
<skill id = "Crossbow" value = "100" />
<skill id = "Bow" value = "999" />
<skill id = "Throwing" value = "100" />
</skills>

<equipmentSet>
<equipment slot = "Item0" id = "Item.dolabra" />
<equipment slot = "Head" id = "Item.merchants_hat" />
<equipment slot = "Cape" id = "Item.battania_cloak_furr" />
<equipment slot = "Body" id = "Item.monk_robe" />
<equipment slot = "Gloves" id = "Item.mp_lamellar_plate_gauntlets" />
<equipment slot = "Leg" id = "Item.mp_lamellar_plate_boots" />
<equipment slot = "Horse" id = "Item.pack_camel" />
</equipmentSet>

</NPCCharacter>
 
To add to Apolon's guide from just the post above, here are is a complete gallery (from Creative Unit Aesthetics thread) with all the armor pieces we currently have available to us, excel tabels with images, IDs and names attached under each, making choice much easier to combine your own classes.
Almost plug-and-play here :xf-wink:

Sturgia Armor Gallery , Khuzait Armor Gallery , Empire Armor Gallery
Battania Armor Gallery , Vlandia Armor Gallery , Looter&Neutral Armor Gallery

Would be nice if people who made the beautiful combinations using 100% Taleworld items (no photoshop), and kept the edited mp_characters.xml files, were to share those files, along with the images of the complete armor set, as they posted the images in the original thread.
 
Last edited:
I haven't :smile: I'm waiting to see if there will be some changes in the armor pieces available to us before EA, only to do some visual testing of the panoply, not battle formations, nor siege equipment usage, i want to be pleasantly surprised by polished versions of those by the official release. I try to leave the best for last, klind of like i always eat yolk from an egg last ?
 
To clarify these two concerns, Battle Logic is heavily played around which impacts the optimization of the mod. This probably won't be same in real game so don't worry.
Let me give an example and technical detail for techjunkies. Battle-winning or running away is controlled in every game tick (around every ms) which definitely changes game smoothness because Agents ( either ally or enemy ) doesn't have onAgentDead or onAgentFlee event. Therefore in every tick, I have to check every agent in the game, to see who's actually winning or not.
Bannerlord doesn't have good event mechanism or OnTick system. Or perhaps I just don't know how to handle those events, maybe they have an extra system that eases the pain.

Ahh that would explain why the fps tanks at the last few seconds before the battle is concluded. Good to know.
 
Yeah, you had a very limited amount of options when working on this. I'm still impressed, despite the technical issues that the mod has. I am really looking forward to seeing what the community can make Bannerlord into.
 
Hello everyone, I will tell you how to add your own class to this mod.
Cheers. I was too lazy to explain that. I will add it to the first post.

Yeah, you had a very limited amount of options when working on this. I'm still impressed, despite the technical issues that the mod has. I am really looking forward to seeing what the community can make Bannerlord into.
My only concern is this, some of the technical problems are not happening because of my implementation. Some of them are happening because of the poor AI or design choice which already embedded in-game which might be still there when the game is done. Let me give you an example. Might be mildly technical though.
Sun in the scene is static. Therefore in the current shape, you won't have a battle that started at dawn and ended at mid of the day. Same goes with rain. You won't have heavy rain in the middle of the battle. Because there is only one location to change this right now. That is OnTick method which refreshes itself every ms. When you move sun slightly with delta time, usually you should get a smooth moving animation. But in Bannerlord, that's a dream. Because every single change you do on the light source is impacting already baked lightmap and making your screen shaking for at least 4 seconds to calculate that first move. And when you do it many times to achieve smooth sun rise, you are ending up with an almost unplayable game. But as you can see, whatever I do, this is not possible to achieve. This might not even be achievable for Taleworlds team unless they want to change something in the RGL. ( I'm assuming this is deep embedded in RGL ) And sometimes it's not possible to set winter OnCreate . That's why they have two maps for two different seasons right now. Although, for seasons, they are at least trying their best to add some atmosphere templates that might be applicable to every scene. ( For example Ruins in winter is quite lovely )
 
Hello everyone, I will tell you how to add your own class to this mod.

zewIW.jpg

buMsq.png


To get started, go to
steamapps\common\Mount & Blade II Bannerlord - Beta\Modules\BattleTest\ModuleData

there are two files:
mpcharacters - data on units, their equipment and skills
allitems- item data: armor, weapons, horses, etc.
-----------------------------------------------------------------------------
open the mpcharacters file in a text editor
descriptions of each unit begins with the key <NPCCharacter and ends with a key </NPCCharacter>
Between them is a unique id, unit name, skill indicators, as well as a set of weapons, armor, etc.
copy for example the first unit "Ulfrich" and paste at the beginning of the file, immediately after <MPCharacters>
PnmEe.png
replace id = "mp_character" with a unique name that is convenient for you. Also replace name = "{= eFWJjaBC} Ulfrich"> with a name convenient for you (it will be displayed in the game
lWNJO.png

Now take care of equipment
open the table editor (in the example I use Excel 2013) and drop the file there: allitems
it should look something like this:
skt0E.png
id column - item id, we need them to add our equipment set to our unit
type column - type of items needed to find a type compatible item
at the very right edge of the table, there are id6 and crafting_template columns. they are similar to the previous ones, but apply to weapons
Now I will copy the weapon with the name (id6 column) dolabra and paste it into our mpcharacters text file, for my character, in this example instead of <equipment slot = "Item0" id = "Item.mp_sturgia_heavy_axe" />
I got <equipment slot = "Item0" id = "Item.dolabra" />
TPY1V.png
lRmHc.png
by anology, I pick up a helmet, shoulders, armor and a horse (I remind you that the id and type columns are in the left part of the table to help you)

as a result, my character block began to look like this:

<NPCCharacter id = "Apolon" level = "36" name = "Apolon">
<face>
<! - face_key value = "34.12; 0.4; 0.4568; C07C0000001; 11111211161111; 7010000100000; 11101100010100; 7600407111110; 0; 0; 180000" max_value = "68.79; 0.7253; 0.6852; 11FC0FC03C384F; FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ; 0; 309101 "/ ->
<BodyProperties version = "3" age = "20.96" weight = "0.5" build = "0.6" key = "00000C07000000010011111211161111000701000010000000111011000101000000000207111110000000000000000000000000000000000000000000100000" />
<BodyPropertiesMax version = "3" age = "20.96" weight = "0.5" build = "0.6" key = "0011FC0FC03C384FFFFFFFFEFFFBEFFFFFFFFFFFA97EF7FEFFFFEFFFFFFFFFFFFFFF000000FD20AFFFFFF000000000000000000000000000000000000000000289101" />
</face>
<skills>
<skill id = "Riding" value = "200" />
<skill id = "OneHanded" value = "300" />
<skill id = "TwoHanded" value = "300" />
<skill id = "Polearm" value = "200" />
<skill id = "Crossbow" value = "100" />
<skill id = "Bow" value = "999" />
<skill id = "Throwing" value = "100" />
</skills>

<equipmentSet>
<equipment slot = "Item0" id = "Item.dolabra" />
<equipment slot = "Head" id = "Item.merchants_hat" />
<equipment slot = "Cape" id = "Item.battania_cloak_furr" />
<equipment slot = "Body" id = "Item.monk_robe" />
<equipment slot = "Gloves" id = "Item.mp_lamellar_plate_gauntlets" />
<equipment slot = "Leg" id = "Item.mp_lamellar_plate_boots" />
<equipment slot = "Horse" id = "Item.pack_camel" />
</equipmentSet>

</NPCCharacter>
How to add a new weapon slot and use it
 
Cheers. I was too lazy to explain that. I will add it to the first post.


My only concern is this, some of the technical problems are not happening because of my implementation. Some of them are happening because of the poor AI or design choice which already embedded in-game which might be still there when the game is done. Let me give you an example. Might be mildly technical though.
Sun in the scene is static. Therefore in the current shape, you won't have a battle that started at dawn and ended at mid of the day. Same goes with rain. You won't have heavy rain in the middle of the battle. Because there is only one location to change this right now. That is OnTick method which refreshes itself every ms. When you move sun slightly with delta time, usually you should get a smooth moving animation. But in Bannerlord, that's a dream. Because every single change you do on the light source is impacting already baked lightmap and making your screen shaking for at least 4 seconds to calculate that first move. And when you do it many times to achieve smooth sun rise, you are ending up with an almost unplayable game. But as you can see, whatever I do, this is not possible to achieve. This might not even be achievable for Taleworlds team unless they want to change something in the RGL. ( I'm assuming this is deep embedded in RGL ) And sometimes it's not possible to set winter OnCreate . That's why they have two maps for two different seasons right now. Although, for seasons, they are at least trying their best to add some atmosphere templates that might be applicable to every scene. ( For example Ruins in winter is quite lovely )
Theoretically, is there no way to implement the sun changing location without relying on delta time/framerate and pre-rendered lightning?
I know that movable light sources in Unreal are updated in real-time, so you need to build the lighting only once.
Since both UE4 and Bannerlord engine are using C++ it should be possible, right?
What would it take to make a similar implementation in Bannerlord?
Would the modder have to make a custom RGL or is this similar to hardcoded design decisions we saw in Warband?
Keep in mind that I am approaching the problem from a purely theoretical standpoint, as my knowledge of programming is still at a beginner's level.
 
I don't know if whether @Murat Türe is checking this threads or not, but if he is, he can give us more clear explanations, expectations and perhaps a small "Can do and can't do"s list.
Theoretically, is there no way to implement the sun changing location without relying on delta time/framerate and pre-rendered lightning?
Well yes and no. In theory, you are always redrawing the frame anyway. For animations, and non-static objects, shadow layers etc. However, from what I have played around, current Bannerlord RGL is really great at handling this which I'm surprised a lot. Let me give an example about this as well, currently, in RGL, only important pixel regions are getting updated in sense of lightning. Meaning that, let's say you have 1024x1024 resolution, if we divide that into 4, you will have 16 different regions each have 256x256 pixel region. If let's say, nothing is moving in region 1, then region 1 stays same and only polygon data getting drawn onto the screen ( which based on the camera frustum obviously )Which is really logical since you don't need all those areas to get recalculated over and over again, you can just redraw that. But when you change the sun, this affects whole scene which puts a heavy calculation problem on RGL's shoulders. I think to overcome this, they have a flag in scenes saying "IsInterior" which basically tells the engine to chill and not calculate the sunlight effect since it shouldn't matter.
know that movable light sources in Unreal are updated in real-time, so you need to build the lighting only once.
Bannerlord does have moving light sources, the however sun is different in this sense because the sun's location also effects HDRI, overall ambient colour, AO maps ( I'm assuming that's also getting calculated on runtime with SSAO) and so on. That's why changing this is problematic and every split second, engine has to recalculate all these.
Since both UE4 and Bannerlord engine are using C++ it should be possible, right? What would it take to make a similar implementation in Bannerlord?
It's not that simple, unfortunately. UE4 is whole another topic. Just because they are both written in C++ doesn't necessarily mean that they can do the same. In theory, they can. But in practice, that's not possible. You don't have to go that far and just compare Uniity vs UE4 for example. Both C++/C and there are clear differences in between. I haven't read the RGL source code - and its not actually open source, therefore I can't comment on that. But I can say that, don't wait anything like this. It's just hard.
Would the modder have to make a custom RGL or is this similar to hardcoded design decisions we saw in Warband?
As far as I know and see, RGL is Monolith as hell. So you can't do custom changes on that. But why would you? I mean that's the graphics engine anyway. But you can always tier up your game with changing shaders, postfx implementations. For example, moving sky wasn't part of Warband and handled quite well with Shader implementation. Same can be applied to Bannerlord in the future. Or perhaps its already implemented by Taleworlds.
 
Thanks for indulging my noob questions man @Bloc. I am starting to see, so to speak. Will probably try my luck at modding Bannerlord one day soon. In the meanwhile, thanks again for your mod. It's been fun testing it out, even though the game decides it wants to go full on derp from time to time. But that's a Beta for ya, I suppose.
 
Back
Top Bottom