You can use your Bluesky account to reply to this post.
(Learn how this is implemented here.)
What if I actually told people about the 19,000 word game that I dropped a week ago? Would that be cool or what?
Going into Minimalist Jam, I was floating a few ideas as to what to do, and had even outlined one. Then this idea hit me like a bullet and that was that, we were off to the races. So let’s actually talk about it now that I’ve caught my breath a bit.
I tend to come to game ideas from odd angles, and this one was no exception. Something had gotten me thinking about Demon’s Souls again, which isn’t uncommon (it’s probably the best one in the series, after all, depending what you want out of them1). This time, though, I had been thinking about two things I don’t regularly think too hard about with it, because I think they’re fairly undercooked: World and Character Tendency, two things more or less unique to that entry that were dropped like a hot rock almost immediately in the rest of the series.
World Tendency is fascinating and it’s a genuine shame that FromSoft hasn’t tried to revisit it in a better fashion than the first time around. The game is split into 5 levels, and doing various things in those levels either makes it harder or easier for you. By doing “good” things in levels (beating bosses, etc) you increase it (to “white”) and by doing bad things (dying in body form, killing people) you decrease it (to “black”). If it’s fully good or fully bad, you unlock various parts of those levels, various NPCs and NPC quests, and generally The thing that got my brain churning this time was that online, there’s a feature where every time you log in, it averages things out, which is deeply annoying if you’re not doing multiplayer because it mostly averages towards black, locking you out of a few items and quests; but deeply compelling if you imagine a version of it that isn’t implemented in a really annoying manner.
So I imagined the idea of a similar-ish setup, but in tabletop we can treat it as a kind of “living world”. There’s a big prominent kingdom who dug a little too deep and maybe did some unspecified bad stuff. Now it’s some kind of magically screwed up area full of demons. An exclusion zone, if you will. (Put a pin in that.) Each subsection gets to track this kind of thing. If you do enough good stuff (defeat prominent demons, sanctify holy places, other stuff) then it gets fully sanctified. If you do enough bad stuff (we’ll get to that) then it gets fully defiled. If it’s fully either of those things, the shadow doesn’t cause enough contrast to conceal the most secret things in a region - it’s worse for you if it’s fully defiled because it makes everything.
Ok, take that pin out. One thing I realized when looking at specifically Demon’s Souls is that you can make an easy case for it being zonecore. Oblique spoilers probably (but also it’s like 17 years old, go play it):
So I went into it thinking about S.T.A.L.K.E.R. - especially Anomaly, the open-world mod. There are various areas people delve into for various reasons with increasing levels of threat (and reward). Instead of everyone kind of doing the same storyline and affecting each other, NPCs are doing their own thing in parallel, abstracted into at least one thing happening somewhere per day: sometimes they do things good, sometimes it’s bad, sometimes new people enter or old people leave, and so on. (If you’re taking it to another level, this would slap with a West Marches-ish multiple groups approach too.)
So the kingdom is anomalous and dynamic in that respect; if you’re banking on a location staying in a particular way then you’d better hop to it. We’re hitting #1 and #3 of that zonecore list. To see about #2, we’d a way to generate PCs and NPCs who are interesting and doing interesting things to make this happen. How’s that look?
From the start I was thinking of messing with something Oddlike in construction - specifically looking at Mythic Bastionland’s setup in ways that will be detailed in subsequent posts. These tend to have a big list of Guys, and you generate some stats randomly from there. In a hard break with the soulslike formula, I didn’t intend to make everyone immortal (more on my intent for that later), so there’s going to be a bit of a churn, which fits well with that. Random generation isn’t my first impulse as a developer, but I’d like to think I can take a challenge, so I decided to lean into it. If we’re doing a soulslike-vibes thing, after all, we need a lot of Weird Little Guys™ both as player characters and NPCs; this is going to be annoying for everyone involved if it’s too manual. So how can we randomly generate characters in a way that’s coherent and interesting?
Characters have 4 attributes:
in addition to GRACE (which is the HP-equivalent)
For each of these attributes, you roll 1d6+1d12. Despite this being the Mythic Bastionland default, I tried a number of different things for this before coming back to this spread. It’s a solid combination of curved and swingy: I wanted maximums and minimums to happen more often than something like 3d6 down the line but still maintain a curve and this fit the bill; and given we’re going to be rolling under it provides a nice “the worst you can have is a 10% and the best you can have is a 90%” range.
Rolling for every isn’t balanced, obviously! And it’s not really trying to be. But I can do is use those rolls to inform a few things:
So for Title, this becomes…
| Highest Attribute | MIG | SKI | CON | KNO |
|---|---|---|---|---|
| Less than 12 | Steadfast | Furtive | Martyr | Precocious |
| 12-13 | Brigand | Thief | Devoted | Apprentice |
| 14-15 | Warrior | Hunter | Disciple | Magus |
| 16-17 | Knight | Agent | Prophet | Witch |
| 18 | Champion | Blade | Saint | Sage |
Each of these has a unique trait. At high levels of an attribute, you’re probably pretty notable going into it! But it doesn’t mean you’re bringing the same things as someone less notable to the table, and sometimes those are different enough to be more useful.
(Also, not that it fully balances anything, but each of those rows has a decreasing amount of starting GRA. The lowest row has 1d4 to start!)
And for Origin:
| Lowest Attribute | Origin |
|---|---|
| 11 or greater | Volinn, Kingdom of Shadow |
| 9-10 | Milos, the Free City |
| 7-8 | The Holy Principality of Atriana |
| 5-6 | The Radiant Empire of Lykha |
| 2-4 | The Salt Barrens |
I’ll talk about the setting in a later update but in short: Volinn is (as you might have guessed by the name) where the game takes place. From upper to lower rows, there’s a spectrum of choice-to-necessity that can be tracked: the highest row is expats who made good coming home to try to fix things, while the lowest row is people living in a terrible place who are trying to do well here out of necessity. All of those also give a little passive trait, so each character has one title and one origin trait. Each of those also has a slightly-different set of incentives as to why a character would want to be there, which is great for NPCs. (I might also add a few more elements later - early in the dev cycle I had Title and Epithet as two separate things that I couldn’t quite make vibe.)
There’s also a sixth origin, by the way: if your highest attribute is 10 or less OR the sum of your attributes is 30, you are instead from Londryl, City of Eternal Night; which makes you a very weird little guy™ indeed. But that, again, is for a later post.
Now how about #4, inevitable transformation?
Hey, remember when I said there were two kinds of tendencies in Demon’s Souls? Character Tendency is, in contrast to World Tendency, way less interesting and way easier to ignore. (It’s also the thing they’ve gone with more in subsequent entries, naturally.) Your character goes up or down depending on good or bad things you do. It affects like two things and mostly doesn’t matter. Later games in the series use Sin, which somehow matters less. If we’re gonna do this thing - and indeed, we are gonna do this thing - I want this stuff to matter without just being, like, a good guy/bad guy slider because that’s boring. I want it to be a tangible thing.
I went for the later-series interpretation, but made more meaningful. Sin is a number that goes up when you do exceptionally bad things. If you kill someone. If you steal a holy relic from a sanctuary or do something similarly profane, that’s Sin. It goes up and mostly doesn’t go down. As an intentional move, it’s not even tied to morality as such - someone who killed a lot of people in self-defense would have high Sin, for instance.
What does it do? Well, usually when you hit low (health stat, MIG in this case) in one of these kinds of games, you die, no frills. In this, however, if you get killed to a negative amount less than equal to your Sin - like if you have 2 Sin, being damaged such that you’re put to -2, -1, or 0 - your death creates a demon. The more Sin you have, the nastier a demon it makes. The rationale is that your soul being frayed around the edges makes it easier for them to slip their tendrils around it when you’re near-death. Obviously there’s a death-spiral effect here too - the more people that die, the more demons are created, which then kills more people.
This has a few fun side effects. For one, if you do care about anyone around you, you’re incentivized to find less-than-lethal solutions to problems of other people. For two, a real self-centered piece-of-work character has no incentive to care about this, because the effects manifest on everyone else, not on themselves! It only happens after death, after all. And it doesn’t manifest outside the kingdom in that way, so it’s perfectly reasonable for someone to rack it up with the expectation that it won’t matter back in the real world once they’ve made it big or accomplished what they want to do.
Next time I talk about some of the more mechanical aspects of what I did with the engine. Specifically: combat, inventory, and the “crawl” procedure.
Consider this a preview of a future post. ↩︎
You can use your Bluesky account to reply to this post.
(Learn how this is implemented here.)