Can These Things Be Fixed? <Long>

Users who are viewing this thread

xenoargh

Grandmaster Knight
<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.
 
Well, I've got the first mesh converted:

xeno_grom_new.png


Only a bazillion left to go. Talk to me, people.

Took a look at the current mess w/ shaders, and it's a mess, all right. Every shader's a massive clump of dependencies, amongst other problems. Getting a version of PBR that explicitly supports additive is going to be "fun", but it's probably doable once I figure some things out. Meanwhile, I think I'm going to get me and Mackie's stuff done first, since he was the first person here who really helped out (and, well, the weapons are really cool).

One of the questions I have is whether it matters much whether textures use their own uniques or not. In Warband, this was of some importance bc of RAM requirements; I built a bunch of custom atlases back then just like Taleworlds did. I don't quite understand how multipart meshes work in this engine, though; guess I need to figure this out.
 
Mackie's work is starting to be alive again; I'm sure they'll get a kick out of seeing screenies of all this. The conversion process isn't too bad, now that I've got the hang of it. I'm mainly having to do edits to support PBR semi-properly, fixing little stuff in the normalmaps I couldn't be bothered to deal with a decade ago, and so forth.

I've figured out LODs, and after a few stupid mistakes, figured out how to get a fast workflow from OpenBRF --> Blender --> BL. I really wish BL could just, you know, import OBJ, since it's like, the most-ubiquitous and supported mesh format on the planet, but whatever.

When I get a few more in, it's time to do the code side, see if it's AOK to have a hand weapon that's using a single mesh and isn't, er, forged. I'm guessing that using the same XML structure as bows do should work. If that works and there aren't major problems, I'll finish Mackie's stuff and see what, exactly, can be done in terms of making an OSP.

mackie_weapons_in_BL01.png
 
Yup, turns out that single-mesh weapons are fine and the XML works; this mode's supported for HTH weapons properly, so far as I could determine.

And I've gotten at least one of my gripes fixed! In the XML files, there's a variable called, "value"; if this exists, then the item has a base price that doesn't reflect its stats. There are still shenanigans with the price reflecting some internal code probably related to Trade skill in the party, etc., but at least I'm in the ballpark for a proper fix for that issue.

For anybody who's thinking of going down this path and helping to rescue the perfectly-good content we made a decade ago that still looks awesome, here's some documentation about specific settings and all that.

1. In OpenBRF, export your mesh and LODs as OBJ. Bear in mind that, unless you're exporting something from a terribly-optimized mod, that you probably just need LOD2 or LOD3; typical Warband weapons had 1/3 the tricount of BL's weapons (but, as you'll see in the screenshot, our old stuff looks great if it was made at all well, even next to BL's meshes, which bodes well for armors).

2. Import the OBJ files into Blender. You'll want to use the following settings, to ensure the content is rotated properly for the export stage.

mackie_weapons_in_BL03.png


3. You should now have several meshes in Blender, called something like "your_nifty_sword", "your_nifty_sword.lod1", etc. If there's anything trailing a name other than ".lod" plus a number, you need to rename the mesh.

4. Now it's time to export to FBX. Use these settings:

mackie_weapons_in_BL04.png


This will ensure that the mesh is rotated into the way Bannerlord wants it. There's probably an easier way than the double-rotation I've shown here, but this works perfectly for weapon BRFs.

5. Drop your FBX and the textures for the BRF Material into your mod's AssetSources folder.

6. Start up the Bannerlord editor.

7. Open the Resource Browser and go to your mod's Assets folder on the left. You should see your mesh and the textures.

8. Make a Material for the weapon / item, by right-clicking in the Resource Browser's main window.

9. By default, the Material will be using pbr_metallic, which is what you want. You'll almost certainly need to make some adjustments to the Material settings, though. We'll get to that in a second.

10. The Material needs you drag your three DDS textures onto the appropriate settings: diffuse, normalmap and specularmap, like the picture below, and then save.

mackie_weapons_in_BL05.png


NOTE: If you're importing some BRF that's really ancient and doesn't have a normalmap, you'll want to create a fake one- a DDS with red and green values of 255 and blue set to 128. It can be tiny; the engine doesn't appear to care if the textures aren't all the same size, etc. But frankly, if the BRF is that old, you'll want to do more work than that to make it look halfway-decent in BL, lol.

11. Now, go to your mesh and right-click on it: select "reimport <mesh name> with settings..." Select the drop-down menu for "convert to unit" and select "m" (the default is mm, which will make your weapons a kilometer long when imported, lol).

12. Select each LOD and drag the Material onto the appropriate spot:

mackie_weapons_in_BL06.png


13. Now you should be able to double-click your mesh and see it textured and lit in the Meta Mesh Editor window (why this is called an "editor" when it barely has any actual editing features other than an obscure vertex-painting feature that's probably mainly meant for bows and flora... is somewhat beyond my understanding. Dear TW, at least put in the basics, like transforms and rotations, checking the object vs. BO colliders, getting the length value, etc., so that it's something more like an actual editor).

14. To get it to look good takes a few more steps:

A. The specular texture needs to be edited so that the surfaces respond properly to PBR. A nice, easy edit is to open the DDS, create a new layer, fill it with RGB 220,220,220 and then use Additive layer blending on top of the old-style specular. Adjust the translucency of the layer a bit- I start around 70%. Then re-save the specular. This, essentially, fixes up most speculars to look reasonably good in the PBR shader; without getting into mountains of detail, PBR requires specular values > 60 for most real-world objects to look OK (and usually higher, bc it's a game and a little more specular glint helps the audience read things better), and wants values closer to 200+ for metals. Bannerlord's PBR is fairly standard in this regard; if you want polished metal to look right, it needs to have all its values high enough, but not too high- you don't want 255 on all the metal parts unless they've meant to be absurdly clean and polished looking.

B. You'll want to tweak the values in the Texture Settings for the Material and save it. Without getting too long-winded, this will help things look better, especially on lower-poly objects. Here are some settings that worked fairly well for me.

mackie_weapons_in_BL07.png




Voila, now you're done. Write your XML to get it in-game. Here's what I used for my first attempt:
<Item
id="xeno_grom"
name="Grom's Axe"
is_merchandise="true"
body_name="bo_mace_a"
recalculate_body="true"
mesh="xeno_grom"
culture="Culture.empire"
value="1000"
weight="0.2"
Type="OneHandedWeapon"
item_holsters="sword_left_hip">
<ItemComponent>
<Weapon
weapon_class="OneHandedAxe"
weapon_balance="100"
thrust_speed="78"
speed_rating="97"
missile_speed="0"
weapon_length="65"
swing_damage="60"
swing_damage_type="Cut"
item_usage="onehanded_block_shield_swing"
physics_material="metal_weapon">
<WeaponFlags
MeleeWeapon="true" />
</Weapon>
</ItemComponent>
</Item>

With that part done, go in and use Cheat Mode to give yourself your brand-new weapon. Walk around a Village or something and test that everything's looking and behaving like you want, like so:

mackie_weapons_in_BL02.png
 
100 views, and zero responses? I release an OSP and... crickets?

Has the community utterly collapsed?

I see mods on Nexus from a small handful of people, but IDK how we're supposed to build what we had with Warband if it's like this, lol.

Thus far, code-wise... I've tried out the BUTR template. At least here, on the Beta branch, I have yet to have anything that actually works. It all crashes during the loading screen. I've just tried known-good code (RBM's git repo) and built it, same.

None of the crashes are what I'd call, "useful crashes", either. The game doesn't helpfully report, "hey, tried loading that DLL, but it's referencing <foo> and that didn't work, try <bar> instead".

So... I can revert the game to 1.1.5 and try that, I guess? IDK, kind of running out of ideas here, lol.

Also, the "API"... sigh. DLL-poking with reverse-engineering tools? Having to do reflection with a third-party tool? Really?

Release the source for the gamecode DLLs that modders need to change in-game behaviors, Taleworlds. That, and an official git repo for "my first mod" that is set up and ready to actually deploy, with clearly-written, step-by-step directions. What exists... it's not really up to snuff. If somebody like me is feeling frustrated after a week, you're losing 99.9% of potential modders.
 
Has the community utterly collapsed?

Yes, lol.

Also the stuff you're talking about requires peoples to know the intricate details of both warband and bannerlord modding, and i don't think any of those people are on the forums. Maybe try the modding discord but that's also pretty dead, for a lot of the reasons you mentioned in your last post.

From what I've seen i would strongly advise against overhauling bannerlord right now.
 
That makes me a bit sad. I held off buying this thing for ages, largely because the Modding Tools weren't released at launch as promised and I wasn't going to try my hand at anything until that was available. Then it fell off my radar because I was modding other stuff or too busy IRL.

I figured by the time I bothered looking around here, there'd be people trying to build Skyrim in it, lol.
 
Modding is generally dying out nowadays, modern games require too much manpower and individual skill to create assets on remotely the same level as the rest of the game, and if such a team did exist they could easily run off make their own game in unity or unreal. Not really a bannerlord issue per se.
 
Hi there, xeno! Good to see you around. A bunch of us are still doing Warband and 1.011 stuff, with some mods like TLD and a bunch of tools and WSE2 still receiving updates, but it seems like after the forum got moved into Xenforo (and got reorganized) people started to use the M&B Modding Discord server more and more, so that's where most of the chatty people are. I think. Kids like that more, even if it's terrible for searching questions.

I'm currently working on improving Warband scene editing with a new tool suite, and we can now do pretty advanced stuff that would blow anyone from 2015 away, so pay us a visit there. Things are fun. :party:
 
Modding is generally dying out nowadays, modern games require too much manpower and individual skill to create assets on remotely the same level as the rest of the game, and if such a team did exist they could easily run off make their own game in unity or unreal. Not really a bannerlord issue per se.
That hasn't been my experience thus far. The content we made back in the day could probably all be ported forward. I presume you haven't looked at the weapons in-engine yet... trust me, they look great.

The graphics assets aren't a major issue anyhow; it's the gameplay. Nobody played Blood and Steel for its amazing production values, lol.

I'm currently working on improving Warband scene editing with a new tool suite, and we can now do pretty advanced stuff that would blow anyone from 2015 away, so pay us a visit there. Things are fun. :party:
That's awesome, glad to see you're still chugging away!

The main reason I quit modding Warband, besides IRL being too busy, was that the 32-bit memory issues (RGL_VERTEX_BUFFER errors, etc.) never got fixed, so I hit various walls.

The 64-bit builds coming out, for Mac / Linux, but not for Windows, kind of broke me, in terms of interest. It was clear that things weren't going to get better until Bannerlord came out. Now it's here, and I'm like, "uh, where is all the stuff", honestly. I thought I'd be just doing some "old-timer shows up and dumps old content" modding, maybe fix the obvious in a minor combat-overhaul, etc. IDK whether I have the stomach to do that if I'm going to be operating in a complete vacuum, though.

One of the few things Bannerlord has going for it over Warband is that, with memory less of a real issue and some genuine improvements to how well it's using CPU / GPU in the core engine, it really can run 1000 Battle Size on High graphics settings (well, on my hardware, anyhow, lol). That made doing a modernized version of Blood and Steel, or at least the core experience of fast-paced, deadly combat with genuinely huge numbers of Agents, somewhat attractive.

As for the rest of the issues w/ modding Bannerlord, I'll make a new post for that, to see if TaleWorlds is still paying any attention. I get the impression that they're still working on the engine and doing maintenance, and I see no clear signs a sequel's on the horizon yet, so... maybe?
 
That's awesome, glad to see you're still chugging away!

The main reason I quit modding Warband, besides IRL being too busy, was that the 32-bit memory issues (RGL_VERTEX_BUFFER errors, etc.) never got fixed, so I hit various walls.

The 64-bit builds coming out, for Mac / Linux, but not for Windows, kind of broke me, in terms of interest. It was clear that things weren't going to get better until Bannerlord came out. Now it's here, and I'm like, "uh, where is all the stuff", honestly. I thought I'd be just doing some "old-timer shows up and dumps old content" modding, maybe fix the obvious in a minor combat-overhaul, etc. IDK whether I have the stomach to do that if I'm going to be operating in a complete vacuum, though.

One of the few things Bannerlord has going for it over Warband is that, with memory less of a real issue and some genuine improvements to how well it's using CPU / GPU in the core engine, it really can run 1000 Battle Size on High graphics settings (well, on my hardware, anyhow, lol). That made doing a modernized version of Blood and Steel, or at least the core experience of fast-paced, deadly combat with genuinely huge numbers of Agents, somewhat attractive.

On the Warband side, I'd check out K700's engine work on WSE2, it's basically a forked, standalone, reverse-engineered RGL engine. Instead of hooking and patching the original .exe, it works like OpenMW or Freeablo, except the source code for the game is not public. Which hopefully will be a thing soon enough.

And he has planned 64-bit support. So you may want to look into it, apart from the performance profiler and extended modding support: https://forums.taleworlds.com/index...hancer-2-v1-1-0-1.384882/page-52#post-9855632

In any case it's good to talk to other modders from a while ago. We had a lot of fun in the Forge. I remember your shader work threads along with all the hacky stuff we cobbled together.

I don't see myself starting again and picking up Bannerlord, there's plenty of interesting loose ends to finish here.
 
I'd check out K700's engine work on WSE2, it's basically a forked, standalone, reverse-engineered RGL engine.
That's officially nuts, lol. A 64-bit version that Just Works would be pretty amazing to see. One with multithreaded Agents, even better. Pity it's not been open-sourced, though; what if they're hit by a bus tomorrow?

I don't see myself starting again and picking up Bannerlord
I don't blame you a bit. Frankly, I just kinda came back out of pure curiousity; I wanted to see if it was the train-wreck I was expecting after all the delays, or I'd missed the greatest release of 2020.

Turns out, after three years of patches, it's neither. It's an OK-ish translation of Warband, with modern-ish graphics that are "totally fine, but surprisingly bland" (seriously, I feel like they should've leaned into the fantasy aspects a bit more, the world lacks color and every armor feels samey due to the muted color palette, etc.) and a bunch of features nobody really needed, like the Build-A-Sword system, that looks like something you'd see in a mobile app to force players to either pay money or grind for decades. It's not terrible, but have no urge to play it past the early part.

It feels fixable, but not easily; to get anything serious done, like fixing the current damage mechanics (which, imo, are worse in every way) means code, hence why this feels crucial; I got to that part and it felt like I missed the last step on a flight of stairs, lol.
 
So, as it turns out, I can do the additive tricks used in the last couple of builds of Blood and Steel.

1. The new shader / material system, while still rather limited in terms of prebuilts (I haven't tried building my own quite yet) is considerably easier to work with than Warband's. I got these old things working correctly very easily. That bodes well for bringing some of the other old stuff back to life.

For all of the younger folks reading the thread: every one of these uses a shared 1024 map for diffuse, specular and normals. It's a bit hard to achieve amazing levels of detail at that resolution, and nowadays I'd use a 4096 atlas that I could pack with fun detail bitz, probably do every blade as a custom zone, and so forth. But back when we made this, saving memory and GPU bandwidth was considerably more important than it is now and I had to improvise solutions, including writing a shader.

wheene_weapons_in_BL01.png


2. Code. Ohhhh boy. I started off by modding some code that I already knew worked. I'm not going to name names, but it was horrible spaghetti with zero documentation and a bunch of functions that didn't do what they appeared to. After a few dozen experiments, I've gotten something basic working; a rewrite of the Bannerlord damage system using very simple, straightforward rules.

A few thoughts on code for Bannerlord, and why things appear to have gone awry.

A. Taleworlds, there is zero reason why anybody should be using a reflection library. If Mod A overwrites Method A, and Mod B also wants to overwrite Method A, then fine, one of them has to win. As it is, using Harmony, that happens anyhow (see: Harmony's documentation for Prefix) but this behavior is hidden from the end-user, rather than providing an opportunity for the engine to tell them.

Reflection is Generally Bad, though, because of the effects on bug-reporting and so forth. What we should generally be getting is a detailed stack-dump of function / method calls when there's a crash, leading up to the offending code. Instead, what I'm generally seeing from this engine is "oops, I need to close, would you like to send an entire stack-dump to Taleworlds?". While that's useful for you internally, it's not genuinely useful for leveraging all of the people outside your offices who, given access to the gamecode and decent stack-traces in the log, could actually report bugs with proposed fixes. Plus it'd make mod debugging much less annoying.

B. Would it have been so hard to let people write their C# to modify methods and then let the engine import said source, as source, to be runtime-compiled, in mod-load order?

Then we'd just teach the newbies to take your API (well, if you'd bothered releasing a proper one) find the function they wanted to change with a grep parser or other search utility and get going, instead of having to poke your DLLs in Visual Studio, and write their first code without having to even set up an IDE. It'd be almost as easy as the old days, when we gave them magical Python scripts.

"Hello World" would consist of finding the save-loading callback, writing an extension that posted "hello world" into the Game Log when a save is loaded, and boom, newbie has written functional code. That's how this should have gone.

C. I really, really want a TC flag for mods, to deliberately exclude everybody else's stuff. I don't even want to release anything if it's going to have to fight everything else and I have to take bug reports from people trying to use Popular Mod Number Three with my projects, etc. I want a whitelist where I can say, "I'm pretty sure these things will work with this" and a blacklist for "no, it really will not work with this at all".

D. There are some weird things in mods on Nexus, but there's a dearth of good sourcecode. I feel like we're back at the bad old days when nobody released anything... except there's no real interest in pushing back.

E. There's prolly some confusion about what a "proper API" might look like. I'd suggest strongly that it's:

The contents of every gamecode DLL (i.e., all the non-proprietary stuff that should be overridden, rather than reflected, or all the stuff we're told in your extant documentation to reference), packed in a zip file, with comments, etc., intact. It's OK if the comments are in Turkish like the olden days.

For a very good example of how to do this properly, I'd suggest looking at Starsector. It ships with a modding API that's easy to use and start coding for.
 
Last edited:
Glad you're entertained.

Man, I'd forgotten just how cool some of these things Wheene made were; all I remember about getting these done is what a lot of work they were; they needed a lot of mastering and minor fixes, IIRC.

But some of these look good even by modern standards. Especially now that I'm not shaving hard edges to reduce vertex count, lol.

wheene_weapons_in_BL03.png
 
Something like 20 to go.

One major problem has arisen: apparently, somewhere along the road of OBJ --> FBX, vertex colors get lost. Not the biggest issue.

It's nice to not really worry much about adding one more 1024 to do something that minor.
wheene_weapons_in_BL04.png


Meanwhile, I took a brief look at the problem of armors. Oh boy.

Here are the issues:

1. There is no pose available in OpenBRF that matches the new default pose. That's solvable... if I have a known-good example mesh from BL to squint at. I.E., a FBX file I can look at in Blender.

2. However, Taleworlds, in its infinite wisdom, doesn't allow FBX exports of their content, only a format called TRF, which looks like a textfile version of BRF.

However, the link to the TRF importer for Blender appears to be long-dead.

So, there's a bit of a loop; I need to see things to make information available, but they cannot be seen.

Yes, I've read about TPACTOOL. I've also read that apparently it's largely broken now. I guess we'll find out?

Probably I'll have to poke all of the extant mods that have human meshes in them to see if there's something I can salvage. With luck, somebody shipped a mod with the FBX files intact.
 
Well... hmm. After various shenanigans, I've got a SMD animation built, to get BRF armor into roughly the right pose automatically. It's been ported into reference.brf for ease of use; if I ever get this working properly, I'll share that.

There are obvious problems. Knees and elbows are in roughly the right spots, but it looks like the model's considerably shorter in the torso. Position's slightly wrong in the Z, and a few other things like that. Still, this is maybe doable, and I could probably use this right now as a rough start for mesh fixes.

pose_matching_smd_animation_frames.png
 
Last edited:
pose_matching_smd_animation_frames2.png
pose_matching_smd_animation_frames3.png
pose_matching_smd_animation_frames4.png
pose_matching_smd_animation_frames5.png
I must say, of all the things that happened here, the Blender auto-rigging part was by far the most insane, in that it was actually pretty painless.

Need to get the LOD ported and do some UV work, but whatever, this went far better than I hoped it would, lol. I will say that I'm looking forwards to the ones that don't need to show skin much or any, and I dearly wish I had the Native female mesh FBX, complete with head, feet and hands.
 
Last edited:
Back
Top Bottom