So, what's gotten done this week?
I'm working on some of the Big Code Things. Largely this has consisted of killing game menus we won't ever want to see again and other pruning, yay rah. I've learned a lot from this process.
1. You're killing me, smalls TW.
Man oh man, there's a lot of hard-coded stuff in this game's core that's not documented anywhere; module_game_menus is chock-full of "gotcha" code (stuff that forces a certain flow, but isn't properly documented and behaves in unexpected ways).
For example, hitting the "Camp" button is actually an Encounter with p_camp_bandits. Why? I dunno; I'm guessing that it's because the Camp button was added after the Encounter / Dialog systems were in place, and it seemed easier to pass a stock Party ID to game_event_party_encounter for <reasons>. I really don't know why there isn't just a game_event_camp_button_pressed callback, because that would have been a simpler and cleaner design.
Another example: mnu_tutorial is a hard-coded integer call; move the Menu around in module_game_menus (to, say, clean things up for readability's sake) and boom, you've broken the game entirely. Same with mnu_reports and, weirdly enough, mnu_start_phase_2, which is triggered from the initial pick-the-look-of-your-character system.
I really, really, really hope Bannerlord doesn't have quite this much Kludge in it. This isn't exactly intuitive to navigate, when we want to do massive tear-out of existing code. But, hey, it's largely Done, other than adding in new features.
2. So... new features, you say?
I'm not going to talk a lot about this, because my weekend coding-time largely got eaten tracking down and killing these issues, which eventually worked itself out.
But... let's hit the major highlights of what's largely functional, at this point.
Code Flow Stuff:
Towns, Castles and Villages are all handled by one core piece of Menu code (with ancillary Menus where that made sense), well-organized and documented and not subject to hard-coded problems. This core allows for a smooth logic flow and more importantly, makes it so that Centers are generic objects we can alter without <serious hackery>.
Gameplay Flow, Loop and Design Considerations
What does that mean, for players? Basically, with a lot of the junk cleared out and something vaguely like a clean slate... it's finally time to really consider features and how the game will feel at the end of the day.
One example: you'll be able to go to the Tavern and visit Merchants and recruit troops from any location. What that means, exactly, depends on the location- for example, if it's a really poor village, then you might find just one Mercenary in the Tavern; in a wealthy city, you might be able to recruit hundreds, if you've got the money.
You'll also be able to attack any location for fun and profit. Wanna take over a village? Fine, now you can do that. In fact, that's probably how you'll want to start your first kingdom.
You'll also be able to upgrade any location so that its population will grow, leading (eventually) to it becoming a thriving city. This will take time and serious money, however. And yes, the icons will update as the location grows up, etc., although I'm not sure how fancy that'll be just yet.
But more importantly, centralizing things means I can finally clean up all the stuff that was kind of lame without huge hackery or a lot of bug-inducing headaches.
Instead of the pretty-boring Farmer Quests, etc., I'm going to code up a "quick Adventure" system, where you just ask for something to do, and voila, there's something reasonably nearby that needs doing (usually, in the form of a fight, because it's Blood and Steel). For example, let's say you're a low-level newbie adventurer and you need some money to build your first pathetic army with. You'll hit up a local village and ask for a mission, and voila, there will be a low-level enemy army generated on the map nearby, that, if defeated, will give you a cash reward, on top of the usual rewards for defeating same.
This system should get rid of the "I'm too poor and low-level to fight anything, Looters aren't generating any more and I suck too much to get anywhere" problems a lot of people complained about (which is why there's a Casual Gamer mode in the mod, frankly).
So, instead of a difficulty curve ranging from, "I'm barely competent to play the mod" to "I really understand the order system, how to fight, and what troops to use to steam-roll" like how it was before, I'm hoping for a more-forgiving feel, where players can get little battles early that help them figure things out. As they become more competent and get a better army, the challenges will move with them; a little party of Looters will become a big, scary army later on.
I've also gotten entirely rid of the "defeat means your Companions are scattered everywhere" thing from Vanilla, and a bunch of related things like that, because, frankly, it just gets in the way of the Fun.
Losing your entire army because you weren't up to the job is bad enough (and usually leads to save-scumming by the optimax players anyhow); but having to hunt down your otherwise-immortal Companions and free them from dungeons via a somewhat-lame fight sequence (or bribes, if you have the hand-eye coordination of a drunken hamster) is just a huge time-waster and is only vaguely interesting once.
Instead, if you lose, fine, your army's destroyed, and you and your Companions can now run away. Period. No more getting dragged around the map, either, because that was also sometimes not-fun and boring. Just go, already; get back to having fun.
So... yeah, I'm not going to give away all the details about how all this new stuff will work, but... I think everybody gets the idea here. About a third of it got written this weekend.
Expect a hugely streamlined, cleaner experience, where you aren't doing boring stuff and the game's loop- go out, kick butt, sell the loot, upgrade your people, repeat- is heavily emphasized, rather than being something that I'd wager only a fraction of the original players really figured out.
Obstacles
I should mention that I still have a huge piece of work to do, in the form of removing further junk from the core scripts, and at this point, I'm pretty well committed to making a lot of new content (including new maps, sigh).
A lot of the code-side stuff is done; the Lords are no more, the kingdoms are ready to behave in a way that I want, more or less, where they serve as foils to the player's actions and (eventually!) provide a framework for taking on the final series of adventures (i.e., doing something about those pesky Death Knights, or whatever they morph into, finally).
But I probably should be cautious and say that there's a lot of interlocking code I haven't totally unraveled yet, lest I create major bugs. The start of the game's one big issue; I'd really like there to be some replay value and that probably means some procedural elements; that, in turn, means that it's possible that I'll be working on that area for a week alone. I think that it's starting to move a lot faster now, though, now that I've gotten the nastiest things solved.
Content Needs
If anybody cares to lend a hand... I could use some modular assets to construct the new towns, fortresses and villages with. What I'm wanting is something vaguely futuristic, apocalyptic, modular (in the sense that I can mix and match structural elements to build larger scenery). For example, a ruined building for Scenes might be using floor unit sections, a working fortress might be a mix of some modular walls and tower units, etc., etc.
If it'd help, I can provide concept art stuff. The main issues with this side aren't skill so much as time; I want things where we're re-using texture assets constantly to keep below Warband's 32-bit memory limits (although my other changes to content have already really helped that) and I'd probably be mastering them, etc. or at least providing guidance. This is something where (ideally) I'd get excellent low-poly work designed for a texture-atlased and multi-mesh approach, because there just aren't any other great ways forward. But I'm really quite committed to the idea that all of the medieval Stuff is going bye-bye.
Anyhow, if anybody's vaguely interested, hit me up for concept roughs; I'm way too lazy to do Super Duper Concept Art, but I can give George Lucas --> Ralph McQuarrie levels of direction.