11 July 2018

LoSt this month: Petrichor

Fame is the worst thing that could happen to your reputation.
   – Kate Tempest, «These things I know»
LoSt's loyal fanbase never lost faith.
When May turned to June, I decided to push my so-called monthly update ahead of me, just a few days, to make some progress that I could report (May had been another slow month). Well, here we are squarely in the middle of July already!

Since last, I did sink some hours into character advancement (≈leveling up). It's hard to fit it into the game at this moment, since it would rely on some more content to get the right scope. At the moment, I scrapped the original idea (described in an earlier post) of letting the player influence skill advancement by presenting them with story options (à la «choose your own adventure» books, reminiscent to how they did it in Shattered Planet). A system like this may come at a later date ;) What I did keep, was the idea of tying up character advancement with a resting mechanism, that also encompasses healing long-term wounds and amassing reputation. I got in place a very rough system, that just looks at the player's recent conduct tracker and decides how/if to modify character traits. The current design will need a lot of refinement, but the bare bones may still be deemed enough to cut it for release #12.

Goals and Achievements

A long term plan I've been having for LoSt, is to have a rather involved system for renown and faction relations. I have now added a reputation stat, which is a step in the right direction. The new mechanism builds on an existing framework of «causes», data plugins dictating critter behavior, which I've also been using to simulate a faction system, by giving each cause a list of other causes and flags that they have a particular bias towards. Favor between critters is a simple positive or negative integer that's set randomly each time a critter sees another critter for the first time, and the cause-related modifiers work by simply adjusting the (min,max) range. Thus, predatory animals attack prey more or less on sight, because the «predator mentality» cause has a (-2,-2) favor modifier to any critter tagged as «prey». Likewise, shticks like «Animal friend» and «Musky» work by flagging the player so that animals get an extra modifier of (0,+1) or (-1,0), respectively.

The main addition to this in #12 is that individual critters can now have a dynamic reputation stat. It works by listing a set of causes and assigning each cause a modifier. Reputation is modified between missions, whenever the player rests at the saloon (or other resting hubs that will appear). The game tracks and stores the player's conduct as «karma», so I have info about who @ has interacted with and how, which tools/shticks have been used, success/failure at missions, places visited, etc. Reputation is currently modified by looking up the causes of critters @ has pleased or annoyed, and making a few random checks to see if @'s reputation should be modified with one or more causes. It can be fleshed out later, especially as I'll want to flesh out a more detailed system for factions, which could be much more than just glorified AI plugins, as is currently the case.

Related, a sketchy system has cropped up for something I call «boons», tangible achievements and missions the player can fulfill. Currently, the main mission is to bring down a wanted bandit, and I'm testing with some minor boons, including collecting the bounty on any random mudfaced goon, visiting a new place, or drinking milk (perhaps the first in a series of boons related to abstinence, for careers like ascetics and abolitionists). At the moment, boons cheesily yield a kind of experience points, which at certain intervals trigger a «levelup» function that improves the player's stats upon resting. It's at least fun to test, since we now get characters that scale up and gain new shticks (skills) as time passes.

Defining boons as the source of coveted experience points may be hard to balance, in that it could easily encourage grinding to collect'em all. I might offset this by tying shtick acquisition more directly to what you do on the map: as instantaneous rewards for collecting particular boons, through books or paid tutoring, etc. Another system I've been thinking about, is to introduce a stat like decrepitude. (The term is ripped from Ars Magica, where wizards become slowly more old and gnarly and in danger of drifting away from the world). In LoSt, decrepitude, or whatchammacallit, would work to impose a soft time limit by amassing over time as new foibles and negative stats (trauma, wounds, addictions, bad reputations, etc). I think a system like that might work well, especially in conjuncture with some other long term ideas about the option to retire your character, and other ways characters' legacies can have an effect across several playthroughs.

Be that as it may, I'm trying to restrain the todo-list for the upcoming release #12. It's better to put out some crude implementations, and hopefully getting player feedback that can inform further development. It's really high time for the new version to come out, and it's going to be a meaty one, even though it may end up as a short interim before #13, if I can quickly turn around and fine tune some of the bugs that will undoubtedly become apparent upon release. There are some minor things I will definitely (hope to) fix before #12 is ready, but nothing too big, mostly just tying up loose ends.

Ugly bugly.
☞ Fix flickering text bubbles when the map scrolls. In fact, there are a bunch of graphical glitches that I'm loathe to fix one by one, simply because the whole display engine needs an overhaul; small patches now would be a waste of time in the long run, but this exact bug is so disturbing that it's probably right to label it release critical.

☞ Brush up AI: This is another topic I don't want to do too much with at the moment, but changing the combat system around did leave a few bugs. In particular, I need to fix some causes/beings that won't enter their attacking states properly.

☞ Make boon system release ready: To get some more to test with, I might define a few more minor boons. And although I am happy to leave the character advancement system as a prototype, some fine-tuning would still be in order there. I may also have to look into the UI department, for instance whether the player should receive a notification when they collect a boon. It's tempting to start adding more places and missions, of course, but I'll try to save that for later versions. Regarding the prototype boss fight/starting quest, I have it working from a technical perspective, but the actual fight/encounter is a bit uninspired, so maybe I should fire up my content editor to give that particular challenge a bit more zazz.