Showing posts with label diy. Show all posts
Showing posts with label diy. Show all posts

Wednesday, February 16, 2022

How To Survive A Zombie Attack: Improvised Seige Mechanics

I recently started a new short-term campaign for some friends, using Dolmenwood and The Black Hack. At one point, they were celebrating Thistlemote's (one of the PCs, a woodgrue) birthday by having a huge bash in the Laughing Pig, their town's tavern.

Some time after midnight, a Vague began. They are in the middle of winter, and occasionally during winter in the Dolmenwood an unseason of mists and undeath occurs. They see, through the fog, a horde of horrible figures shambling towards the town. I wanted a dawn of the dead style scene where our heroes try to fend off zombies that are punching their way through the windows and doors of a ramshackle building and they have to fight to survive and protect the villagers trapped with them, franticly shoring up the walls and taking out zombies with whatever's lying around.

So I improvised some siege survival mechanics.

The tavern has 20 HP, represented by a d20 placed in the centre of the table. As the tavern took damage and was shore up round by round it was fun to change the number on the die and have tension when it went down quite low.

I rolled 3d8 (1 HD per player, in line with Black Hack's recommendation of "HD budget" for a random encounter) to determine the number of zombies that were attacking, as an abstraction. I ended up with 20 again (very Magic: the Gathering, 20 HP a side...). As PCs whittled away the number of zombies from the pool, the number would go down. I treated it as that specific number of zombies, all with just 1 HP--but 20 zombies isn't really a "horde" so I kept the number of zombies vague for the players, with occasional hints like "there's about half of them left" or "you've downed most of them".

Each round, (which I abstracted as Minutes in the Black Hack way) each PC could do one thing, as usual, with the following alterations:

If they attack the horde of zombies, they make the attempt as normal, with each point of successful damage taking out that number of zombies from the pool.

In addition, each PC could ALSO command some underlings. In this case, there were three groups of underlings in the tavern: some visiting woodgrues, some burly porters, and a few villagers. One group for each of my PCs. In order to get any given group to listen, first a commander has to make a charisma test.

If they succeed then they can either get the underlings to do something, like attack the horde, or shore up the tavern's defenses. No matter what they did, the porters had a d8, the woodgrues a d6, and the villagers a d4. So if you get the villagers to shore up the tavern they roll a d4 and add that result to the tavern's HP--but instead you can get the villagers to attack the horde, in which case they'll do d4 damage to the pool of zombies. (I improvised sensible average numbers for the underlings attacks, like 8 for the villagers, 12 for woodgrues ranged attacks, etc).

At the end of each round, the zombie horde attacked, with no chance of failure since they're just battering the side of the tavern. I'd roll a d6 for each surviving HD of zombies. So while the number of zombies was above 16 I rolled three dice for damage, when it went below I rolled two dice, and when there were less than 8 I rolled a single die. In addition, I would use a d6 for damage dice while more than half the horde was intact, but once less than half were left I used d4s.

That's it!

This simple on-the-fly abstraction led to interesting decisions being made each round, a constant juggling of taking out zombies and shoring up the tavern, while finding other ways to end the seige (Thistlemote used her pied piper ability to lead away some zombies to drown in the river, while the elf Smiles-Tolerantly snuck out with some porters to find the thing that the leader of the zombie horde was after).

If I were to use it again, the numbers could use some rejiggering as at times it felt too easy to shore up the tavern for a lot of HP -- once there were less than half the zombies left it basically was inevitable that the players would succeed, sucking much of the tension away. I also had the NPC tavern owner act on his own each round, shoring up for a d6 of HP each time, which helped the PCs a -lot-. I think maybe individuals should only be able to shore up for a d4, or not at all and let it only be an underling group ability. Maybe some sort of test for a group to successfully shore up would be good too.

One thing I wish I'd thought of was to use morale checks for the underlings. Once a PC had succeeded in their charisma check to command a group, they never had to do one again and their underlings would always do what was commanded. I would do morale checks for the underlings, probably when they fail an attack or when zombies reach a certain threshold of damage. I'd planned on making them all do morale checks if the zombies breached the walls (at which point they'd start taking out underlings)--but the zombies never got in. I think the closest they got was when the tavern was at 5 HP, but the following round three different groups all shored it up and it was nearly full again.

I should say that this all was inspired by a distant memory of a seige system I'd read about on some OSR blog that I fully can't find anymore, so if I've copied someone else's work entirely-- whoops!

In any case, there you go: an easy, hackable system for a seige!

Monday, July 6, 2020

Another Job for Penny: Detailing Jobs for Thieves, Interpreting the Value of Favours, and the Concept of Notoriety

Last time, I wrote about how hacking a sci-fi OSR mission generator for a tabletop duet game led to discovering a recursive random table that alters itself.

This time I want to flesh out in more detail how several random tables combined to generate interesting jobs for Penny the thief, and try tweaking the way some of the tables work.

The results of rolling on the job tables gives you only this information: a type of patron, a type of job, and its risk, distance, and reward. The patron table was detailed last time, but I'll include it here with the other tables (which I hacked from the sci-fi generator):

***

Thief Job Generator 0.2

Patron: 1d6
    1-2: criminal
    3:  noble/merchant
    4: government
    5: military
    6: former patron

    (if 6, roll on Former Patrons subtable. every time a job is accepted from a new patron, they're added to the Former Patrons subtable.)

Job Type: 1d10 (criminal: -1 to roll; military or government: +1 to roll)
   
    1: piracy
    2: theft
    3: confidence scam
    4: smuggling
    5: bizarre
    6: bounty
    7: escort
    8: delivery
    9: rescue
    10: disaster relief

Risk Level (ie; Number of Encounters/Challenges): 1d6

    1-2: three
    3: four
    4: five
    5-6: six

    (add Notoriety level to the roll)

Distance from Current Location: 1d6

    1: current location
    2: nearest village
    3: nearest city
    4: 1 weeks' travel
    5: 2 weeks' travel
    6: a months' travel

Reward: 1d6 & based on Risk & Distance rolls & Notoriety of thief:
        X = (risk+notoriety)*distance

    1-2: wealth worth X*40g
    3-4: favour (proportional to X)
    5: gear worth X*60g
    6: add 1 to Notoriety and roll again

***

There's a couple of things I want to point out and work on:

Changing the range of results on the Patrons table so that "criminal" happens on 1 and "former patron" happens of 5-6 would make jobs from existing patrons more likely, which can allow fleshing out those characters from interacting with them more often--which seems like it would be pretty fun.  In practice when using the table, sometimes a new patron would be generated that seems similar to an existing one, and so I'd just make it a job from that existing patron.

Shifting the range of outcomes on the Job Type table by just adding or subtracting 1 from the roll to make the extremes unavailable is a cool idea. I wonder what it would be like if it was a roll with a "normal" distribution like 2d6?  That would be a way to make certain types of jobs more likely and certain types of jobs more rare. I might do this and set "theft" to the centre of the distribution at 7 to make it the most likely kind of job.

You could make certain types of jobs -only- offered by certain patrons by assigning them an outcome outside of the normal range and using the +1/-1 trick. For example, 2d6 can give you outcomes ranging from 2 to 12. If you want only criminal patrons to offer an assassination job -and- make it really rare, you can assign that to an outcome of 1, and give the criminal patron a -1 roll modifier on the Job Type table.

The Risk Level can be interpreted differently based on the type of job. If it's a dungeon delve to retrieve an item, then the number of encounters could be the number of "interesting" rooms in the dungeon (ie a fight, a trap, an environmental challenge, etc). If it's a mission involving navigating the treacherous relationships between a number of gangs, then it could be the number of parties involved. It could be the number of locations that must be visited to collect parts of a document.  The Risk number could even be more abstract and refer to increasingly dangerous random encounter tables (ie; if it's Risk 1, roll on the Basic Encounter table, 2 roll twice, if it's 3, roll on the Challenging Encounter table, 4 roll twice, 5 roll on Deadly Encounter, 6 roll twice--or something like that). Note that the roll is added to the thief's Notoriety level--more on that later.

The Distance table is interesting. I adapted it for the kind of travel scale that made sense for a game where a thief goes from place to place doing jobs for patrons. This encourages travel from point to point on the world map, and this travel can either be abstracted away entirely, made into a ration-using navigation minigame, or turned into a full hexcrawl, as per the preference of your duet.

The Reward table needs tweaking to help with interpreting the results. I really like that it's based proportionally on the Risk and Distance results (and Notoriety--we'll get to it!). This is easy to understand for wealth and gear worth some multiple of the number, (and this multiplier should be set sensibly for the currency of your game: probably some fraction of the cost of a sword or potion, or of the debt your thief is paying off) But what does it mean for "Favour Owed"--the most interesting result on the table?

Before tackling that, I wanted to understand the way the results work. The result of multiplying Risk by Distance ranges from 1 to 36, but it's skewed--the most likely results are 6 and 12 (rather than the 18 you'd expect from a balanced distribution). On a graph, the peak is to the left and there is a long tail to the right.  This means that our thief can regularly expect low-to-middling value rewards but allows for a wide range of surprises to occur. You can get a little as 40 g, which is a job a thief probably wouldn't take just for the money, or as much as 2160g worth of gear, which could completely re-outfit our thief--but most likely you're looking in the 200 to 900 g range. However, a bunch of results just aren't possible to get, because you're multiplying two d6 rolls--you can't get 35, or 19, or 7... this results in less round numbers for currency value rewards, which is great for avoiding round numbers. Why offer a reward of 250 g when you can offer 240 g? And if you end up with 480 g worth of gear, some if it will be fun weird filler stuff because most equipment lists cost round numbers.

The question then becomes how to interpet this result as the value of a favour. An easy way to get around that is to treat it just like wealth or gear, but delayed or specific to certain context. Ie; the patron can pay off a bounty on your head worth X*50g, or source a special potion you need, or get you a specialist hireling for job you're doing, or a place worth that much to use as a safehouse, or perhaps a permanent discount at a particular merchant.

But the thing that makes favours interesting as a reward is their potential non-monetary value and their flexibility.  You can forsee our thief calling in a favour to arrange a meeting with an elusive clan leader, or to get safe passage through a warzone, or to hide in the secret basement of the shop when the royal guard is sweeping the town, or store something in the count's personal vault. And the thief will certainly come up with unexpected favours to ask of their patrons. Ultimately it might not be possible to "quantify" the value of such a favour, so probably the best we can do is ballpark the range of outcomes, provide some examples and leave it to the GM's discretion.

Lets say for now we carve out the range thus:
  
Patron Favour Value:

    1-6: Small Favour
    7-19: A Favour
    20+: Extraordinary Favour

This is probably the thing that needs the most work. It would probably be easier to just add Risk+Distance and centre this on a normal 2d6 distribution. OR I could just collapse it entirely! A result of "favour" is exactly that, no monetary value considered, and it's up to the duet to figure it out.  I kind of like the simplicity of that, but maybe there's an equally elegant way of still using the Risk*Distance number.

Finally: Notoriety.  Notoriety was my way of figuring out what "Reward Risk" meant in the original sci-fi mission generator I hacked for this. The really interesting recursive result on a 6 to "roll again and add 1 to Reward Risk for all future missions" felt like an abstraction that could be made specific and meaningful in the world of thiefy adventuring. We could take that number and store it separately from the Reward table and make it matter elsewhere. My solution was to make it a kind of reputation mechanic: as the thief does more jobs throughout the world, their Notoriety increases. As they become more Notorious, the jobs that patrons offer are more dangerous--and more rewarding. Not only that, but successfully completing a job gives a chance of Notoriety increasing, as part of the reward!

There is scope for Notoriety to interact with other game mechanics. If there are morale checks, perhaps rando bandits are less likely to stand their ground against a notorious thief. If there are recognition checks, perhaps merchants are more likely to provide a discount, or share the secret menu--but so too are town guards more likely to see through a hasty disguise. Depending on the amount of record-keeping you want, Notoriety can vary in different regions of the world based on where jobs are completed.  Perhaps certain patrons no longer want to offer jobs to a thief that everyone has heard of. And of course, depending on your particular thiefy exploits, GM fiat can award a point of Notoriety as the result of doing something particularly public. There's even the opportunity for the thief to do things to -lower- their Notoriety because it's making things difficult for them.

It turned out to be quite a meaty way to use a single number!

Anyway: here's a sample set of outcomes from rolling on all these tables:

> criminal, piracy, risk lvl 6: six encounters, two weeks travel, gear valuing 1800g

> noble/merchant, bizarre, risk lvl 5: six encounters, next village, +1 Notoriety and a favour

>noble/merchant, theft, risk lvl 1: three encounters, current location, a small favour

These starting points leave quite a bit of fleshing out to do. Who actually is the patron, and what is the specific nature of the job?

Next time: MORE TABLES



Thursday, August 1, 2019

In My *DREAMS

After some time away (during which OSR turned within and G+ died), I wanted to see what was going on, and found SWORDDREAM (which for my own reference, tounge-in-cheekly backronyms to Second Wave of RPG Design, DIY Rules Everything Around Me).

(I found this post most helpful in understanding what *DREAM is and might be and what it isn't and shouldn't. Also the splat is there because not everyone dreams of swords.)

There are nine principles that people have pinned to the door and I wanted to put them here (again for my own reference have you seen how many fucking blogs are in my roll I can't keep track of anything) and jot down some thoughts on each one if I had any.

Copied from a post on Fish in the Pot, with my notes under each one:

THE NINE PRINCIPLES OF *DREAM

1. *DREAM stands against hate & prejudice in all forms. We seek to actively oppose bigotry & harassment in gaming communities. We create kind spaces.
        The less people like Pundit and Zak in the scene the better, and the more diversity among designers and players the better. Even if this started as a kneejerk reaction to the shitheads (which it really doesn't feel like), it's important to make this value crystal clear.

2. *DREAM works to be radically inclusive. We seek support and encourage creators, GMs, Players, and organizers from marginalized groups. And we seek to get better at this all the time.
        Same as above thought. Also: how can -I- be better at this?

3. *DREAM encourages the use of sensible tools for communication and consent.
        The X Card comes to mind. Are there other tools?

4. *DREAM opposes harassment and strives for non-toxic discourse. We value best intentions, we call in before calling out, and we start discussions before we make accusations. We seek to empower everyone to curate their spaces.
        Thoughts 1 and 2 again. Curating our own spaces is important. Nobody has to listen to shitheads if they don't want to, especially not in their own house. This isn't some rationalist agora. I feel like Principles 2-4 are ways of implementing the broader value expressed in 1.

5. *DREAM values creators & their work. We support equitable pay for professional creators and fair treatment for hobbyists.
        "Fuck you, pay me." But also, fair treatment for hobbyists means that if people hack your work, or criticize it--don't go after them.

6. *DREAM values a DIY approach to creation. We question gatekeeping, we take alternative approaches when traditional publishing models fail, and we believe anyone can make great games.

7. *DREAM values experimentation in game design & world-building.
        I like this a great deal.

8. *DREAM isn’t defined by, but is interested in: anti-canons, emergent story, generative worlds, kitbashing, non-violent play options, and more. And it is fine if some of these things contradict each other.
        So much of these specific interests are my own that I really want this scene to persist (and of course I should contribute to the pile if I really mean it), but to pick out one that challenges my preconceptions: -emergent story-. I have used Fate a bunch and enjoyed many so-called "storygames", but this feels like something different. Is it in the OSRian sense, where the story comes out of what the players actually do in response to the neutral-abiter-DM's in-game situations -as opposed to- having written out a plot and characters etc? Not like to railroad the PCs but like... are emergent narratives the opposite of adventure paths and box text? This, above all, for me, warrants exploration. A delight of OSR/DIY/artpunk(and now *DREAM) is the rich, dense items in random generation tables. For improvisational purposes, a detailed-yet-brief prompt is a strong start... for emergent narrative? I have usually defaulted to very neutral items in my tables (but was I using those for generative worlds? or what even is that if I misunderstand?) and let improvisation and the depth of the setting inspire details. Anyway, there's loads of stuff to explore in this space.

9. There is no one *DREAM. Anyone who commits to these principles is *DREAMing.
        Excellent.

I look forward to seeing what comes out of the *DREAMJAM so we can see what up in this scene.