<casts resurrection spell>
Hi. I developed Blood and Steel for Warband, back in the ancient days. I've finally gotten around to buying Bannerlord... and, well, I'm feeling the same intense urge to fix things I did back then. However, I'm a lot busier IRL than I was, so... instead of burning a week randomly digging, I'd like some advice on where to start fixing things, or just tell me that it can't be fixed.
Blood and Steel didn't start off with crazy skeleton armies and the other stuff it ended up with. It started as a "fix Warband" project, where my goal was considerably different from popular projects like Diplomacy, where they wanted to fix other stuff that players really wanted dealt with.
It started with three big things:
1. Making the combat feel more fun. Since, well, it's a game that lives or dies on that premise. Bannerlord's combat isn't much fun atm. We have bows that barely shoot 50 meters and won't kill a naked guy with a shot directly to the chest, spears that feel like gentle tickles, etc., etc.- it all feels like it was geared to produce the dull, chipping-away-at-hitpoints style of combat that I dislike viscerally. Enemy commander AI also appears to be basically brain-dead, too, but I haven't fought a Lord army yet- maybe it gets better?
I've already tried some basic experiments to tweak balance, and I have some serious concerns / questions:
A. The cost of weapons and armor isn't in the relevant XML files; it's being calculated somewhere in the code, under the hood. Why? Because of the build-a-weapon forging system, which I instantly disliked, is why. Apparently each part in a forged weapon magically increases costs based on <some formula> that's tied to the stats, rather than the parts. It's absolutely insane from a game-design POV; you'll see random-rolled weapons that suck, but cost huge amounts, etc. I want to get rid of it. Can I just stick a value into the XML entries for a flat cost and reference that in code?
B. I want to just flat-out get rid of Forging entirely. Like, lock-stock-and-barrel. No forged stuff, no UI for it, no Tutorial pointing at it, nothing. I don't think I've ever seen a major mechanic in a video game I've reacted to with so much visceral loathing before, lol. Is that even remotely possible?
C. I want to get rid of a bunch of the meh weapons and armors and replace them with stuff ported forward from Blood and Steel. Yes, exporting from BRF --> FBX --> etc. will probably take forever. But I had more actual variety in the mod that anything TW ever managed to do, and all of the meshes and other files are still around.
I'm going to presume that that means that I'll have to re-rig it all, and of course the characters are probably at a different scale now, because nobody could be bothered to think about this issue or preserving our legacy assets (heck, they couldn't even be bothered to recompile the Windows builds as 64-bit to fix the vertex-buffer-overflow and other malloc-related problems in Warband due to 32-bit memory limitations, even though somebody built x64 for Linux / Mac), and that of course there isn't an auto-rig system like we had for Warband BRFs that actually works well, either.
I'll deal with the rigging and scaling problems for armors after I figure out how to port the weapons and hopefully get rid of the forging system. I have a rough plan for that, starting with "do basic port of one thing to figure out material workflow" and ending with, "figure out whether shaders can still be edited or added to support some of the cool things I did back when".
So, can I get rid of stuff in the XMLs? If so, how? I've seen that people are using XSLT files to do what looks like grep-like operations to replace things, and built a really basic "mod" where I made a vanilla bow actually hurt naked people, but I do not know how I could use that to delete XML data from the game's database / giant arrays / however that's working under the hood. Sorry if that sounds super-obvious to somebody out there who uses that all the time, but to do some of the things I want done, I need to get rid of stuff that's in Sandbox Core, which gets loaded no matter what, in XML operations that need to happen afterwards, so that I can clean the slate.
And yes, for people who played the mod, I want to eventually get firearms and hand-grenades, chunoku and rocket launchers and all that working again, if I can make it happen. I've already noticed that there doesn't appear to be official animation for pistols and rifles this time, nor a "bullet" ammo type, nor support in general for new ammo types. I'm hoping somebody here has figured out a way around that.
Back in the day, I did the special ammo types with magic under the hood where I manipulated Agent inventories a bunch when they spawned. Same with supporting pikemen / cavalry ditching their weapons, etc. I presume there are ways to do that in Bannerlord through callbacks? Or are my hopes for a decent API about to be dashed?
D. Is there any way at all to fix the ridiculous aiming systems for ranged weapons, where they take forever to get reticle zero? I've looked around a bit, and couldn't find anything anywhere. I hate it. My First Mod has a simple weapon re-stat that looks like so:
<Items>
<Item
id="composite_bow"
name="Simple Short Bow"
body_name="bo_composite_shotbow_c"
mesh="shortbow_c"
weight="0.3"
difficulty="30"
appearance="0.5"
Type="Bow"
item_holsters="bow_hip:bow_hip_2:bow_back:bow_back_2">
<ItemComponent>
<Weapon
weapon_class="Bow"
ammo_class="Arrow"
ammo_limit="1"
thrust_speed="300"
speed_rating="300"
missile_speed="300"
weapon_length="110"
accuracy="200"
thrust_damage="100"
thrust_damage_type="Pierce"
item_usage="bow"
physics_material="wood_weapon"
center_of_mass="0.1,0,-0.15"
modifier_group="bow">
<WeaponFlags
RangedWeapon="true"
HasString="true"
StringHeldByHand="true"
NotUsableWithOneHand="true"
TwoHandIdleOnMount="true"
AutoReload="true"
UnloadWhenSheathed="true" />
</Weapon>
</ItemComponent>
<Flags
ForceAttachOffHandPrimaryItemBone="true" />
</Item>
</Items>
You'd think this would produce Legolas-levels of quick firing and aiming and it would shoot a long way and be an insta-kill deathbeam. No. The reticle still takes foooooooorever to close up, reload takes forever, it doesn't appear to shoot much further or faster. My current character has somewhere around 150 Bow Skill; they should be fine, but no. It does more damage, but whatever they've done under the hood to the damage system and character hitpoints sucks; 100 damage doesn't insta-gib even Looters all the time, which is absurd. So, can this be fixed? I want reticles that close up pretty much instantly, because IRL you don't sit there like that after drawing, and I want bows that can shoot further away than point-blank ranges reliably, so that my troops will, you know, engage at real-world distances.
2. I want to get rid of all of the Obvious Dumb in the economy; simplifying systems to the bare essentials to allow players to do the fun stuff (army bashing) rather than the tedious (spreadsheet math to figure out how to make money, etc.). Bannerlord looks like it has stuff going on under the hood that make Warband's hot mess look straightforward and clean by comparison. I want to get rid of all of it and start over.
Anyhow... what's exposed, and where do I look, once I've gotten around to setting up a code project in Visual Studio, etc.?
3. I want to fix the difficulty ramp and early / midgame progression systems. One of the things that's completely obvious from playing SP for a few hours is that TW hasn't fixed one of the problems that has been present since early M&B, let alone Warband. There's still this annoying point where the player has a small army and has figured out army-bashing and survival at a basic level (hey, at least that's easier now, with unlimited carrying capacity), but there's nothing left they can fight that's fun, reasonably profitable, and doesn't start a war with the Lords.
The best thing I've found is to search for Caravan Escort missions, so that I can fight up to 40 guys who have OK-ish loot. I'm at the point in my first (and only) playthrough of Warband where I was like, "fine, I'll go take a castle, then" and discovered, to my horror, that TW coded up Warband so that the player's money collapsed as they captured more locations, instead of, you know, growing as you grew your tax base. Discovering that bit of code back in the day still makes me shake my head. That people played through it anyhow, by not starting a serious run at endgame until they had millions of denars from boring economic grinding, makes me sad.
In Blood and Steel, I completely rewrote the core systems for things like the size of the Lord armies, brigands, and other bad guys, so that they scaled largely with the player's power over time and stayed somewhat interesting to fight, and I got rid of the crushing tax penalty systems, made fortresses auto-generate decent numbers of troops and not require constant babysitting, etc.
It wasn't a perfect system- there was a point where the player could just faceroll everything that wasn't a Dark Army... but who cared, by then, that's what you were gearing up to fight anyhow. I also spent a lot of time just getting it working at all, because too many intertwined systems called each other, etc.; I'm hoping that now they're using something a little less primitive than a glorified bytecode interpreter, I'll be able to just tell some code to stop in its tracks and call a replacement that Just Works.
At any rate, if anybody's dug into what can be done with the economy, party sizes, where things spawn and how, how to give parties direct orders, etc., etc. with code, please give me a clue as to what to go look at.
One of the things that's already mystifying, though. Is there no actual, official modding API? Like, why isn't there a SLN created and tied into same, that has the core game functions, callbacks, etc. when you make a new mod? Tell me, people. That part's weirding me out, lol.
Annnnnnnyhow... yeah. There is a bunch of other stuff I'd want to do, like dismantle the initial character-creation system until it's down to, "pick starting location, pick a class, pick how you look, GO", instead of the current... thing... but I can already feel a headache coming on, lol.
Oh, and yes... if this even gets halfway started, it'll be up on a public repo, licensed so that everybody can use whatever they want, just like Blood and Steel was.
Hi. I developed Blood and Steel for Warband, back in the ancient days. I've finally gotten around to buying Bannerlord... and, well, I'm feeling the same intense urge to fix things I did back then. However, I'm a lot busier IRL than I was, so... instead of burning a week randomly digging, I'd like some advice on where to start fixing things, or just tell me that it can't be fixed.
Blood and Steel didn't start off with crazy skeleton armies and the other stuff it ended up with. It started as a "fix Warband" project, where my goal was considerably different from popular projects like Diplomacy, where they wanted to fix other stuff that players really wanted dealt with.
It started with three big things:
1. Making the combat feel more fun. Since, well, it's a game that lives or dies on that premise. Bannerlord's combat isn't much fun atm. We have bows that barely shoot 50 meters and won't kill a naked guy with a shot directly to the chest, spears that feel like gentle tickles, etc., etc.- it all feels like it was geared to produce the dull, chipping-away-at-hitpoints style of combat that I dislike viscerally. Enemy commander AI also appears to be basically brain-dead, too, but I haven't fought a Lord army yet- maybe it gets better?
I've already tried some basic experiments to tweak balance, and I have some serious concerns / questions:
A. The cost of weapons and armor isn't in the relevant XML files; it's being calculated somewhere in the code, under the hood. Why? Because of the build-a-weapon forging system, which I instantly disliked, is why. Apparently each part in a forged weapon magically increases costs based on <some formula> that's tied to the stats, rather than the parts. It's absolutely insane from a game-design POV; you'll see random-rolled weapons that suck, but cost huge amounts, etc. I want to get rid of it. Can I just stick a value into the XML entries for a flat cost and reference that in code?
B. I want to just flat-out get rid of Forging entirely. Like, lock-stock-and-barrel. No forged stuff, no UI for it, no Tutorial pointing at it, nothing. I don't think I've ever seen a major mechanic in a video game I've reacted to with so much visceral loathing before, lol. Is that even remotely possible?
C. I want to get rid of a bunch of the meh weapons and armors and replace them with stuff ported forward from Blood and Steel. Yes, exporting from BRF --> FBX --> etc. will probably take forever. But I had more actual variety in the mod that anything TW ever managed to do, and all of the meshes and other files are still around.
I'm going to presume that that means that I'll have to re-rig it all, and of course the characters are probably at a different scale now, because nobody could be bothered to think about this issue or preserving our legacy assets (heck, they couldn't even be bothered to recompile the Windows builds as 64-bit to fix the vertex-buffer-overflow and other malloc-related problems in Warband due to 32-bit memory limitations, even though somebody built x64 for Linux / Mac), and that of course there isn't an auto-rig system like we had for Warband BRFs that actually works well, either.
I'll deal with the rigging and scaling problems for armors after I figure out how to port the weapons and hopefully get rid of the forging system. I have a rough plan for that, starting with "do basic port of one thing to figure out material workflow" and ending with, "figure out whether shaders can still be edited or added to support some of the cool things I did back when".
So, can I get rid of stuff in the XMLs? If so, how? I've seen that people are using XSLT files to do what looks like grep-like operations to replace things, and built a really basic "mod" where I made a vanilla bow actually hurt naked people, but I do not know how I could use that to delete XML data from the game's database / giant arrays / however that's working under the hood. Sorry if that sounds super-obvious to somebody out there who uses that all the time, but to do some of the things I want done, I need to get rid of stuff that's in Sandbox Core, which gets loaded no matter what, in XML operations that need to happen afterwards, so that I can clean the slate.
And yes, for people who played the mod, I want to eventually get firearms and hand-grenades, chunoku and rocket launchers and all that working again, if I can make it happen. I've already noticed that there doesn't appear to be official animation for pistols and rifles this time, nor a "bullet" ammo type, nor support in general for new ammo types. I'm hoping somebody here has figured out a way around that.
Back in the day, I did the special ammo types with magic under the hood where I manipulated Agent inventories a bunch when they spawned. Same with supporting pikemen / cavalry ditching their weapons, etc. I presume there are ways to do that in Bannerlord through callbacks? Or are my hopes for a decent API about to be dashed?
D. Is there any way at all to fix the ridiculous aiming systems for ranged weapons, where they take forever to get reticle zero? I've looked around a bit, and couldn't find anything anywhere. I hate it. My First Mod has a simple weapon re-stat that looks like so:
<Items>
<Item
id="composite_bow"
name="Simple Short Bow"
body_name="bo_composite_shotbow_c"
mesh="shortbow_c"
weight="0.3"
difficulty="30"
appearance="0.5"
Type="Bow"
item_holsters="bow_hip:bow_hip_2:bow_back:bow_back_2">
<ItemComponent>
<Weapon
weapon_class="Bow"
ammo_class="Arrow"
ammo_limit="1"
thrust_speed="300"
speed_rating="300"
missile_speed="300"
weapon_length="110"
accuracy="200"
thrust_damage="100"
thrust_damage_type="Pierce"
item_usage="bow"
physics_material="wood_weapon"
center_of_mass="0.1,0,-0.15"
modifier_group="bow">
<WeaponFlags
RangedWeapon="true"
HasString="true"
StringHeldByHand="true"
NotUsableWithOneHand="true"
TwoHandIdleOnMount="true"
AutoReload="true"
UnloadWhenSheathed="true" />
</Weapon>
</ItemComponent>
<Flags
ForceAttachOffHandPrimaryItemBone="true" />
</Item>
</Items>
You'd think this would produce Legolas-levels of quick firing and aiming and it would shoot a long way and be an insta-kill deathbeam. No. The reticle still takes foooooooorever to close up, reload takes forever, it doesn't appear to shoot much further or faster. My current character has somewhere around 150 Bow Skill; they should be fine, but no. It does more damage, but whatever they've done under the hood to the damage system and character hitpoints sucks; 100 damage doesn't insta-gib even Looters all the time, which is absurd. So, can this be fixed? I want reticles that close up pretty much instantly, because IRL you don't sit there like that after drawing, and I want bows that can shoot further away than point-blank ranges reliably, so that my troops will, you know, engage at real-world distances.
2. I want to get rid of all of the Obvious Dumb in the economy; simplifying systems to the bare essentials to allow players to do the fun stuff (army bashing) rather than the tedious (spreadsheet math to figure out how to make money, etc.). Bannerlord looks like it has stuff going on under the hood that make Warband's hot mess look straightforward and clean by comparison. I want to get rid of all of it and start over.
Anyhow... what's exposed, and where do I look, once I've gotten around to setting up a code project in Visual Studio, etc.?
3. I want to fix the difficulty ramp and early / midgame progression systems. One of the things that's completely obvious from playing SP for a few hours is that TW hasn't fixed one of the problems that has been present since early M&B, let alone Warband. There's still this annoying point where the player has a small army and has figured out army-bashing and survival at a basic level (hey, at least that's easier now, with unlimited carrying capacity), but there's nothing left they can fight that's fun, reasonably profitable, and doesn't start a war with the Lords.
The best thing I've found is to search for Caravan Escort missions, so that I can fight up to 40 guys who have OK-ish loot. I'm at the point in my first (and only) playthrough of Warband where I was like, "fine, I'll go take a castle, then" and discovered, to my horror, that TW coded up Warband so that the player's money collapsed as they captured more locations, instead of, you know, growing as you grew your tax base. Discovering that bit of code back in the day still makes me shake my head. That people played through it anyhow, by not starting a serious run at endgame until they had millions of denars from boring economic grinding, makes me sad.
In Blood and Steel, I completely rewrote the core systems for things like the size of the Lord armies, brigands, and other bad guys, so that they scaled largely with the player's power over time and stayed somewhat interesting to fight, and I got rid of the crushing tax penalty systems, made fortresses auto-generate decent numbers of troops and not require constant babysitting, etc.
It wasn't a perfect system- there was a point where the player could just faceroll everything that wasn't a Dark Army... but who cared, by then, that's what you were gearing up to fight anyhow. I also spent a lot of time just getting it working at all, because too many intertwined systems called each other, etc.; I'm hoping that now they're using something a little less primitive than a glorified bytecode interpreter, I'll be able to just tell some code to stop in its tracks and call a replacement that Just Works.
At any rate, if anybody's dug into what can be done with the economy, party sizes, where things spawn and how, how to give parties direct orders, etc., etc. with code, please give me a clue as to what to go look at.
One of the things that's already mystifying, though. Is there no actual, official modding API? Like, why isn't there a SLN created and tied into same, that has the core game functions, callbacks, etc. when you make a new mod? Tell me, people. That part's weirding me out, lol.
Annnnnnnyhow... yeah. There is a bunch of other stuff I'd want to do, like dismantle the initial character-creation system until it's down to, "pick starting location, pick a class, pick how you look, GO", instead of the current... thing... but I can already feel a headache coming on, lol.
Oh, and yes... if this even gets halfway started, it'll be up on a public repo, licensed so that everybody can use whatever they want, just like Blood and Steel was.