Showing posts with label mechanics. Show all posts
Showing posts with label mechanics. Show all posts

Wednesday, November 23, 2022

Le Monastère de Saint Gastronomie (Review)

A whimsical mini-campaign set in rural medieval France. Players are monks who must gain the allegiance of local monstrous factions in order to save the world. Due to the nature of the system and adventure, it will be difficult to avoid spoilers in this review.

The adventure was part of Kickstarter’s third Zinequest event, and available as a reward. I have not yet found it for sale outside of that. The PDF is 36 pages, written and illustrated by Guy Potts. It includes “standee” paper miniatures for all of the monsters and monks.

UPDATE: You can now buy the game on itch for $7.50!

The System

It comes with a light set of rules that would be easy to swap out, but it would be a shame to do so entirely. The core of these is three stats, roll-over stat checks, a neat little initiative mechanic, and so on. But it also has three key elements that make the system feel tailored to the adventure: miracles, sins, and the timeline. I would consider grafting these subsystems into any game I ultimately used.

As all the characters are monks, there are no class options, spell lists or starting equipment. But there is magic! Before starting, the GM makes a secret list of specific miracles (“create a spring,” “bring a statue to life,” etc.). Characters can pray freely, and if they happen to ask for a miracle on the list, once per monk per campaign, that miracle is granted. (14 miracles are provided to start, with space for four more.)

Similarly, the GM is encouraged to create a list of “sins” (perhaps modeled on existing religious ideas). (Even without a list, certain actions in the module are defined as sins.) Whenever a monk sins, that player marks a circle on their character’s sin-o-meter. Then, the GM rolls 3d6, re-rolling one non-6 result for each sin marked. If the result is “666,” then each character takes a permanent damage. Characters who die this way are especially dead. I think this is a fun and thematic way of handling morality. It allows for a lot of luck-pushing and emphasizes the religious nature of the characters without punishing them outright for making hard choices.

Finally, the whole game takes place over 28 days, so time taken to heal or travel becomes important. This also informs the other two mechanics in their scope: players may choose not to “save” their miracles or may be more reckless with their sins, given this limit.

The Campaign

The adventure provides a compelling amount of direction for a sandbox. The characters are summoned by a dying monk to stop the current abbot (Pierre the Pious) from summoning an angel of death to purge the world of sinners, annihilating France. To do this, they need to recreate the three traditional products of the abbey under the old abbot (Reynard the Rotund): beer, wine, and cheese. Then they must barter them with local monstrous factions in exchange for their support in the coming battle.

The adventure is seven hexes with the monastery at the center, and each hex has an overland map and an underground dungeon. Three hexes house the monstrous factions and three hexes contain the supplies and equipment the monks will need to reproduce the recipes and arm themselves. The whole map is full of connections and secrets.

The Good

The adventure exudes charm from the art, the tone, the scope. The included system is elegant, as are the mechanics found throughout for dungeon elements, puzzles, social interactions, traps, and so on. (To be sure, the art in this review is not the style of the art in the book, which all matches the cover much more closely.)

It claims to be targeted at absolute beginners, and I believe it. It’s friendly in tone and well-considered in many small ways, from using only d6s to laying out the maps in a radial manner (so that they are easily covered by simple fog-of-war effects, or even sticky notes). In particular, I appreciate that it provides many opportunities to fill in some blank spaces, but it never feels incomplete without them.

The Bad

The adventure sits in a weird place as a drop-in. Not too much relies on the players being monks, so you could drop other characters in pretty easily. (If you’re the planning type, you could even have them meet Brother Bartholomew beforehand.) But the climactic battle seems like an end-of-campaign event that would be hard to continue after, and the tight timeline doesn’t leave much room for side-quests. It’s also slightly too long to run as a one-shot.

I’d like to know more about Pierre and his ritual. The book mentions that he will be out of town if the players think to kill him. But it’s unclear if the ritual could be prevented some other way. Does it have to happen in the palace? (Then could Pierre just be kept out?) Is timing important, or is Pierre just too busy to cause the apocalypse right away? (Then could he be delayed or misled?) If this is a Watchmen scenario, why bother keeping him away on business? Ultimately I’m not too worried about this because the draw of supernatural agriculture is probably pretty good and the clues leading to it are plentiful. But I do expect these questions to come up.

For all the interweaving and jacquaying, the PDF would benefit from hyperlinks, but it is short enough that it’s OK without.

Conclusion

I was expecting a short adventure, but instead I found a small world, full of character and innovation, with well-crafted support for its unique size. I wish I could tell you to buy this, but it doesn’t seem possible at the moment. I’ll update this if that changes. (UPDATE: This has changed! you can now buy it here! I recommend it!)

Monday, July 27, 2020

House Rules in a Digital House

I've been running D&D 5e for a group of remote friends recently. These are the “house rules” that I've adopted to make things go smoother, or at least reassure myself. I'm sure I got most of these from other places, but I can only credit what I remember.

Absence

Characters of absent players will be ignored and their departure and return unremarked on. I will make no effort to explain this in the fiction, but in future sessions we can act as though they were there. So “remember that time we all burned down a fortress?” or “aren’t you those people who tried to murder my brother?” will still include characters of players who were absent at the time.

I don't plan to spend a lot of time balancing encounters, so I think “fading into the background” is a fine solution. I want to encourage roleplaying, but also a shared group identity, so this doesn't let anyone off the hook or force anyone to miss opportunities because of real-life concerns.

Experience

Experience will be awarded using the “Milestone” option. While we are in a dungeon, “clearing” a level will be worth one level of experience. Outside of a dungeon, other goals may be used. These are negotiable.

I started the game in a dungeon and expected the first level to be cleared fairly quickly (it was). So this gave us a quick level-up without math on my end, but still tied to a measurable achievement. For the first-time players in the group, the early level-up lets them engage with the rules differently and see possibilities for (mechanical) growth. Because I do not know what parts of the game this group will enjoy most, the “Milestone” option allows them to pivot away from the dungeon later.

Inspiration

Inspiration will be awarded at the end of each session by player vote for favorite moment.

This is something I borrowed from DIE TRYING, although I've seen similar things in other systems. The practical effect is a moment of reflection at the end of the session when players can say what they liked best and what they're looking forward to most. It also reminds me that inspiration exists.

Quorum

We will not play D&D with less than half the party. To keep the appointment, we can play other games with however many people we have.

It feels bad for the players who do show up when there aren't enough people to play, so I really wanted to get in the habit of playing even if we can't play the main game. Games under consideration for backup have to be lightweight. So far they include:

Timekeeping

Generally, I will assume an “exploration turn” of 10 minutes, which is enough time to fully explore a room and interact with all of its contents (excluding combat etc.). After 8 hours (48 turns) without rest, characters will take a level of exhaustion.

I didn't find timekeeping rules that I liked in 5e, and as long as we were in a dungeon I wanted to build expectations around that procedure. In practice, the biggest effect of this change is that ritual casting now carries some cost. It does seem like 48 turns is unlikely to be an actual concern.

Encumbrance

I haven't adopted these rules yet, but I'm considering something like Electric Bastionland (paraphrased):

Some items are [bulky]. You can carry two [bulky] items: one on your back and one in your hands.
The hope is that these rules are just enough to make looting things complicated, but not enough that I have to worry about weight or spreadsheets. The worry is that with six characters, this just still doesn't matter.

Hexcrawling

These are also rules still under consideration:

Travel 3 hexes (6 miles each) per day, walking 8 hours per day.
Roll a d6 2x every day of travel, once during the day and once during camp.
On a 1, an Encounter occurs (something interesting).
On a 2, an Omen occurs (signs of something interesting).
Difficult terrain (mountain, swamp) counts as 2 hexes.
Travel -1 hex to explore for hidden locations in one hex.
Travel -1 hex to forage, gaining 1d4-1 rations per forager.
Travel +1 hex on a road.
Travel +1 hex if everyone has fast mounts.
Travel +1 hex over another 4 hours but [take a level of] Exhaustion.
I didn't find any hexcrawl rules in 5e, so I stole these ones wholesale from Moonhop. Because we have new players, I'm trying to fit as many “modes” as I can into the game, to showcase it a bit. At the same time, I'd like to minimize the overhead of learning a hundred new subsystems and then abandoning them later. I might have to make it two levels of exhaustion though, in order for it to matter.

Other Notes

I've observed some other things about the group in particular and online play in general.

  • Playing on a weekday evening, and given the limits of engagement online, 3 hours is about as long as I can go.
  • Some players fare better than others with “theater of the mind”. There has been a request for a VTT system of some kind, which terrifies me, but I'm considering it. On the other hand, I'd like everyone to be on the same footing, so maybe I can strike a balance with a whiteboard of some kind or some more defined abstractions (“Zones” from Fate or “Abstract Distances” from The Black Hack).
  • None of the players has actually used their inspiration yet, so I'll have to be better about reminding them when they can. The post-game ritual seems to go over well though.
  • D&D is actually fun! This should be obvious, because why else would be be here? But it's always refreshing to play.

Tuesday, March 24, 2020

7d6, split between two attributes

On 20 Feb 2020, PlanetNiles (Ey/Em) NB on the workshop channel of the OSR Discord asked1:

7d6, split between two attributes

What values are even possible?

One way to think about this is not in terms of the values themselves, but in terms of the difference between the two paired attributes. The maximum difference is when all dice are allocated to one attribute, leaving the other empty. This is then equivalent to the sum of the dice.

The minimum difference between the two is a form of the well-studied partition problem: given a set of numbers, can it be split into two sub-sets with equal sums? A heuristic method that can usually2 find the smallest difference between our two subsets (and therefore if they can be equal or not) is called the Karmarkar-Karp method, which works as follows:

  1. Take the two largest numbers in the set. Assume that these will go in opposite partitions.
  2. Because they will go in opposite partitions, we subtract them from each other.
  3. Instead of now deciding which partitions they will go in, we return the difference between them to the set. This is effectively deferring that decision until later.
  4. Repeat steps 1-3 until there are only two numbers left. The difference of these last two numbers is the smallest difference we can make with this set.
Note that we didn't actually find what the partitions are, only what the difference between them is here. I hope this is clear enough, but I'm also sure that clearer explanations can be found with minimal searching.

With some wrangling, we can produce this lovely chart, where a heavier hexagon is a more likely pairing.


Hexagons are elegant, as odd/even combinations that cannot occur are skipped naturally.

From this, it looks like the system gives a lot of flexibility in assigning scores to your attributes.

What Values are Likely?

I have a concern about this mechanic though: if you give someone a range of numbers, and tell them to pick one, they will tend to pick in the middle3. If a player is dead-set on being boring, how boring can they be?

It might not be exactly true, but we can show the distribution of all the high stats and all the low stats together, and then compare them to the distribution of 7d6 literally divided in half (which is approximately normal).

This doesn't look great, but PlanetNiles has actually already got us covered here:

Of course. I'd further consider including subsystems where the difference between attributes had some sort of effect. So favouring one over the other would prove beneficial in some way, or at least open up different options.
The strength of this mechanic then will rely on the strength of the system. Given the range of the first figure though, I have confidence that an interesting system could be built here.

What about other mechanics?

Suppose we were looking for a similar mechanic, except that it would force a difference between the attributes where possible. We might expect intuitively, that fewer dice and larger dice are harder to partition effectively. This table gives the probability of a forced difference (although does not consider the size of that difference).

From this table, I thought I would look at 3d20, because it forces a difference the most often. The figures below have the same interpretations as the similar ones above, but for 3d20 instead of 7d6.

Python

This was my first project using Python, and I think it's an all right language. It'll probably displace Octave in my repertoire, but I'm sure I'll be right back at Perl if I start doing string stuff again. The code's a bit janky, but you can take a look here.


1 “Asked” a little more directly this time, if only because I asked first.back

2 According to Wikipedia, this method is “bad for instances where the numbers are exponential in the size of the set,” so like, probably fine?back

3 I only know this anecdotally: if you tell a plant operator to keep some process temperature between a high limit and a low limit, without fail they will control it to the middle of the two. It makes sense to a person, but the optimal temperature is provably at one of the two extremes. Possibly, this is an extension of the anchoring effect.back

Monday, February 17, 2020

5d6 but only count straights and matching

On 7 Feb 2020, diregrizzlybear on the GLOG channel of the OSR Discord asked1:

5d6 but only count straights and matching.

One solution might be to list all the rolls and score each one. This is probably feasible with a script. Instead, I enumerated the “hands”, and then found the probabilities of each of those.

Hands with No Degrees of Freedom

Run of Five

There are only two runs of five: ⚀⚁⚂⚃⚄ and ⚁⚂⚃⚄⚅. There is only one way to “make” each of these hands (“Count”), but because each die has a different face, there are 5!=120 possible orderings of each hand (Permutations).

HandScoreCountPermutationsOdds
⚀⚁⚂⚃⚄151120120
⚁⚂⚃⚄⚅201120120

Quintuple

There are six possible quintuples, and again, there is only one way to construct each one. While there are 5! possible orderings of five dice, because five of them are interchangeable, there is only one possible ordering of a quintuple (5!/5!=1), which makes a quintuple much less likely than a run of five.

If this seems counter-intuitive, consider rolling one die five times in order. If your first roll is a ⚀, to eventually score quintuples, the next roll must also be a ⚀ (1/6 odds). To eventually score a run of five, the next roll must only be not ⚅ or ⚀ (4/6 odds).

HandScoreCountPermutationsOdds
⚀⚀⚀⚀⚀5111
⚁⚁⚁⚁⚁10111
⚂⚂⚂⚂⚂15111
⚃⚃⚃⚃⚃20111
⚄⚄⚄⚄⚄25111
⚅⚅⚅⚅⚅30111

Run of Three + Double

There are 24 ways to score a run of three + double: 4 runs of three and 6 doubles. Depending on the doubled number, it may be possible to score this as other hands (run of four, triple), but this is never advantageous.

Because of the doubled number, there will be fewer ways to order this hand than a run of five, but more than a quintuple. If the doubled number is in the run, there are 5!/3!=20 possible orderings, and if it is not, then there are 5!2!=60.

HandScoreCountPermutationsOdds
⚀⚁⚂⚀⚀812020
⚀⚁⚂⚁⚁1012020
⚀⚁⚂⚂⚂1212020
⚀⚁⚂⚃⚃1416060
⚀⚁⚂⚄⚄1616060
⚀⚁⚂⚅⚅1816060
⚁⚂⚃⚀⚀1116060
⚁⚂⚃⚁⚁1312020
⚁⚂⚃⚂⚂1512020
⚁⚂⚃⚃⚃1712020
⚁⚂⚃⚄⚄1916060
⚁⚂⚃⚅⚅2116060
⚂⚃⚄⚀⚀1416060
⚂⚃⚄⚁⚁1616060
⚂⚃⚄⚂⚂1812020
⚂⚃⚄⚃⚃2012020
⚂⚃⚄⚄⚄2212020
⚂⚃⚄⚅⚅2416060
⚃⚄⚅⚀⚀1716060
⚃⚄⚅⚁⚁1916060
⚃⚄⚅⚂⚂2116060
⚃⚄⚅⚃⚃2312020
⚃⚄⚅⚄⚄2512020
⚃⚄⚅⚅⚅2712020

Triple + Double

There are 30 ways to score a triple + double: 6 ways to score one and then 5 remaining ways to score the other (to exclude quintuples, which are already accounted for). As with run of three + double, we must account for duplicated numbers when counting orderings. There are then 5!/(3!*2!)=10 permutations of each.

HandScoreCountPermutationsOdds
⚀⚀⚀⚁⚁711010
⚀⚀⚀⚂⚂911010
⚀⚀⚀⚃⚃1111010
⚀⚀⚀⚄⚄1311010
⚀⚀⚀⚅⚅1511010
⚁⚁⚁⚀⚀811010
⚁⚁⚁⚂⚂1211010
⚁⚁⚁⚃⚃1411010
⚁⚁⚁⚄⚄1611010
⚁⚁⚁⚅⚅1811010
⚂⚂⚂⚀⚀1111010
⚂⚂⚂⚁⚁1311010
⚂⚂⚂⚃⚃1711010
⚂⚂⚂⚄⚄1911010
⚂⚂⚂⚅⚅2111010
⚃⚃⚃⚀⚀1411010
⚃⚃⚃⚁⚁1611010
⚃⚃⚃⚂⚂1811010
⚃⚃⚃⚄⚄2211010
⚃⚃⚃⚅⚅2411010
⚄⚄⚄⚀⚀1711010
⚄⚄⚄⚁⚁1911010
⚄⚄⚄⚂⚂2111010
⚄⚄⚄⚃⚃2311010
⚄⚄⚄⚅⚅2711010
⚅⚅⚅⚀⚀2011010
⚅⚅⚅⚁⚁2211010
⚅⚅⚅⚂⚂2411010
⚅⚅⚅⚃⚃2611010
⚅⚅⚅⚄⚄2811010

Hands with One Degree of Freedom

Run of Four

There are three possible runs of four: ⚀⚁⚂⚃x, ⚁⚂⚃⚄x, ⚂⚃⚄⚅x, where x is our “unfixed” die (our degree of freedom). If x is equal to either the highest or lowest element of the run, then we instead have a run of three + double. If it is equal to a number after either end of the run, then we instead have a run of five. So for ⚀⚁⚂⚃x and ⚂⚃⚄⚅x, x has three possible values, and for ⚁⚂⚃⚄x, x has two possible values. We will also consider the cases where x is “inside” the run and “outside” the run separately, as the number of permutations is different.

HandScoreCountPermutationsOdds
⚀⚁⚂⚃x;x∈{⚁,⚂}10260120
⚀⚁⚂⚃x;x=⚅101120120
⚁⚂⚃⚄x;x∈{⚂,⚃}14260120
⚂⚃⚄⚅x;x∈{⚃,⚄}18260120
⚂⚃⚄⚅x;x=1181120120

Quadruple

There are 6 possible quadruples, with 5 ways to construct each one (again, to exclude quintuples). There are 5!/4!=5 permutations of a quadruple.

HandScoreCountPermutationsOdds
⚀⚀⚀⚀x45525
⚁⚁⚁⚁x85525
⚂⚂⚂⚂x125525
⚃⚃⚃⚃x165525
⚄⚄⚄⚄x205525
⚅⚅⚅⚅x245525

Two Doubles

There are 15 ways to score two doubles (half as many as triple + double, because it doesn't matter which number is the first multiple and which number is the second). The unfixed die (x) can take any of the four remaining values2. A hand of two doubles has 120!/(2!*2!)=30 permutations.

HandScoreCountPermutationsOdds
⚀⚀⚁⚁x6430120
⚀⚀⚂⚂x8430120
⚀⚀⚃⚃x10430120
⚀⚀⚄⚄x12430120
⚀⚀⚅⚅x14430120
⚁⚁⚂⚂x10430120
⚁⚁⚃⚃x12430120
⚁⚁⚄⚄x14430120
⚁⚁⚅⚅x16430120
⚂⚂⚃⚃x14430120
⚂⚂⚄⚄x16430120
⚂⚂⚅⚅x18430120
⚃⚃⚄⚄x18430120
⚃⚃⚅⚅x20430120
⚄⚄⚅⚅x22430120

Hands with Two Degrees of Freedom

Run of Three

There are 4 runs of three: ⚀⚁⚂xy, ⚁⚂⚃xy, ⚂⚃⚄xy, ⚃⚄⚅xy. However, x cannot equal y (else we have run of three + doubles), x and y cannot both equal numbers in the run (else we have two doubles), and neither of x and y can equal a fourth part in the run (else we have a run of four).

For a run of three with no duplicates (for example, ⚀⚁⚂⚄⚅), there are 5!=120 permutations. For a run of three with one duplicate, there are 5!/2!=60 permutations.

HandScoreCountPermutationsOdds
⚀⚁⚂xy;x∈{⚀⚁⚂},y∈{⚄⚅}6660360
⚀⚁⚂xy;(x,y)=(⚄,⚅)61120120
⚁⚂⚃xy;x∈{⚁⚂⚃},y=⚅9360180
⚂⚃⚄xy;x∈{⚂⚃⚄},y=⚀12360180
⚃⚄⚅xy;x∈{⚃⚄⚅},y∈{⚀⚁}15660360
⚃⚄⚅xy;(x,y)=(⚀,⚁)151120120

Triple

There are six possible triples, each with two degrees of freedom (x,y). x cannot equal y, neither of x and y can equal the tripled number, and x and y cannot form a run of three with the tripled number. There are then (52-5)/2-R=10-R ways to make each triple, where R is the number of runs of three containing the tripled number.

HandScoreCountPermutationsOdds
⚀⚀⚀xy3920180
⚁⚁⚁xy6820160
⚂⚂⚂xy9720140
⚃⚃⚃xy12720140
⚄⚄⚄xy15820160
⚅⚅⚅xy18920180

Hands with Three Degrees of Freedom

Doubles

There are six possible doubles, each with three degrees of freedom (x,y,z). None of x, y, and z can equal each other, none of x, y, and z can equal the doubled number, and x, y, and z cannot form a run with the tripled number. There are then 5!/(3!*(5-3)!)-R1-R2 =10-R1-R2 ways to make each double, where R1 is the number of runs of three (4) and R2 is the number of runs of four containing the doubled number.

HandScoreCountPermutationsOdds
⚀⚀xyz2560300
⚁⚁xyz4460240
⚂⚂xyz6360180
⚃⚃xyz8360180
⚄⚄xyz10460240
⚅⚅xyz12560300

Other Hands

Other hands are not possible with 5 dice, but I did not bother to prove this more formally. Instead, I can show that all hands are accounted for: there are 6^5=7776 possible rolls (in order), and the sum of all the “Odds” of the above hands is 7776.

Results

Now we can sum the odds by score (instead of by hand) and normalize them. This gives us the following distribution.

ScoreOdds
10
2300
3180
4265
51
6940
710
8355
9330
10741
1180
12915
1340
14620
15791
16405
17100
18760
19140
20296
21140
22160
2330
24105
2521
2610
2730
2810
290
301

The minimum score is 2, maximum 30, mean ~12.4, median 11, and mode 6. My spreadsheet is a bit messy, but you can see it here. Let me know if anything here seems off.


1 “Asked” is a strong word. Nobody asked for this.back

2 In the case of ⚀⚀⚁⚁⚂, both run of three and two doubles would score 6. For convenience, we will consider it as two doubles, because restrictions to exclude it are already part of the math for a run of three.back

Tuesday, December 17, 2019

Secret Santicorn 2019

Sky Seeker asked:
Dear Santicorn,
Please bring me

New ways to mess with time/space/fate, be it mechanics, spells, worldbuilding or beyond. If pokemon can reboot the universe to patch in a baby god we can do better: https://youtu.be/GxC1kXm_AVs

The Slipsoul – a Character Option

Infinite parallel universes teem around us, multitudes branching out with every decision and movement. Normally, these worlds are inaccessible and inhospitable. But when you die, your mind does not go gently into the night, but casts about wildly to find purchase on any reality that will take it. When you’re lucky, it’s relatively close to the world your remember.

These rules assume a D&D-ish game, but could be easily adapted to others. Mechanical effects, if any, are left as an exercise for the referee and the effects of further re-rolls are left open to negotiation.

Whenever you fail a death save, roll on the slide table and appear stabilized, but in a different reality. That this reality is different is apparent only to you. For example, if you roll “No eyes” the wound is old, and your companions may remember how you lost them. If you later re-roll the same number, you find yourself instead in the universe the next column over, as your mind reaches for further and further branches of reality. For example, if you roll a “1” a second time, then you still have no eyes, but find yourself able to see spirits.

The Slide Table

d12 First Second Third Fourth
1 No eyes. See spirits. See the past. Something else sees what you see.
2 Covered in tattoos. Know and can cast random spell. Spell casts itself when you take damage. No one else can cast the spell.
3 Dave loyally follows you everywhere. Davinia also follows you everywhere. Dave & Davinia are retired in the city. Nobody has ever heard of Dave or Davinia.
4 Pockets full of money. Warrant for your arrest. Owe a criminal favor. Run a small gang.
5 Forsaken by religions. Resting grants no benefit. There are no stars. Free from the wheel of death and rebirth.
6 No fingers on off hand. Off-arm is a tentacle. +d6 tentacles. You are an octopus.
7 Lycanthropy. Contacts despise you. Covered in scars. +d6 wolf companions.
8 Slide on any failed save. Slide instead of save. Optionally, slide instead of skill check. Roll twice when sliding.
9 Super nice clothes. Parents look for you. Assassin targets you. Inherit a small estate.
10 Require double rations. Do not need sleep when you rest. Cannot heal naturally. Begin to rot.
11 Very short. Darkvision. Stonecunning. Ancestors will aid you.
12 False leg. Key hidden in leg. Compartments in limbs. Need regular maintenance.

Printout

I also made this printout of the table, so that you might have the satisfaction of striking the universes you've already rolled.

Licking the Bowl

Taking the prompt as "petty uses of cosmic power", I also sketched out two other ideas.

Fold Self – a GLOG Spell

When you rest to heal, you can choose not to heal any number of HP, instead leaving part of yourself (astrally) in that location. When casting the spell, roll [dice] over (max HP - HP at that location) to transport yourself and your carried objects to that location. This isn't really teleportation, it's more like squeezing a four-dimensional water wiggly.

Johnny Luckturner – an NPC Outline

Recently broke off from a larger organization and they're not happy about it. All their best people have returned broken or not at all. Maybe a bunch of bumbling patsies could get the job done?

Whenever multiple dice are rolled against Johnny, only the worst value is used (even if they would normally sum). Sneak attacks, advantages, fireballs, etc. all fall flat before his absurd luck. He doesn't know how this works though, and he's a pretty average combatant.

Sunday, August 18, 2019

Black Ships and Bad Hydrodynamics

I was going to make a quick fun game about boats. Treasure Island, The Odyssey, One Piece. I wasn't going to get caught up in the details of how boats work. I told myself this at the outset, and believed it. I was going to borrow liberally from other, nicer rulesets, and not worry about realism. Now I'm writing about boat hydrodynamics.

When Viking explorers found new lands, they were usually about a week's sailing away. More distant lands were reached by following a chain of smaller stops. This is because they could survive for about two weeks at sea, so one week was the point of no return1. Rather than start with existing historic boats, we can take this type of exploration as our goal, and then work out how best achieve it.

Some Rules

I haven't playtested these, they're just draft rules.

  • Every week, the crew2 rolls against mishaps. An undercrewed ship rolls with disadvantage.
  • An overburdened ship moves at half speed.
  • When there are fewer sacks3 of supplies than people, the ship is at half rations. At half rations, all ability checks are rolled at disadvantage. For each additional week at half rations, an additional die is added to the disadvantage (e.g. on two weeks of half rations, an ability check is the worst result of three dice). This assumes some kind of subsistence fishing, scavenging, rationing, etc. This doesn't kill you directly, but you're going to die.

Mishaps

  1. 1d4 sacks of supplies lost or spoiled
  2. ship damaged - move at half speed (rigging, rudder, etc.)
  3. you are lost
  4. injury among the crew
  5. disease among the crew
  6. stowaway found
  7. becalmed for 1d6 days
  8. ill omen - next mishap check at disadvantage unless the crew makes appropriate supplication

Encounters

Encounters at sea are never by surprise excepting with beasts, and evasion is down to chance (1d4 to evade: on a 1, success, on a 2, success but off-course or lost day).

  1. Global Faction
  2. Local Faction
  3. Foreign Faction
  4. Unaffiliated
  5. Wild
  6. Flotsam or sign

Exploration Sailing

Going back to "islands are a week away", we can interpret this two ways, which I will call the "dense ocean" assumption and the "sparse ocean" assumption. Given the distances and speeds involved, the classical 6-mile hex quickly becomes more hindrance than help, and instead everything is worked out in points and lines. Obviously all these assumptions are different for large ships with large crews, but I don't think those are conducive to the game I'm trying to make here. It's also worth noting that I'm explicitly fitting the geography to the type of game I want to run here, not to any kind of reality.

Visibility

A person can see d km away on a clear day at sea, where:

d = 13 h d = sqrt {13h}

and:
d is distance seen (km) and
h is the height above sea level (m).

This means:

  • A 2-meter person standing at roughly sea level can see 5 km.
  • A person standing atop a 30 m crow's nest can see 20 km.
  • In ideal conditions, smoke rises to a mixing height of 518 m, so can be seen from 82 km away.
  • A bird flying at 4000 m can see and be seen from 228 km.

The Dense Ocean

On average, there is an island one week's travel in any direction.

This means that each day of exploration, there is a 1-in-7 chance of finding an island. Call it 1-in-8 and be done with it.

The Sparse Ocean

On average, the nearest island is 1 week away.

This means that in a circle of radius one week's travel, there will be an expected two islands (start and destination). Here I will make a series of poor assumptions which allow me to simplify my calculations: Assume that the ship will sail in a straight line each day in one of eight directions, and that it will see everything there is to see in that direction. The area seen in one day is then:

A day = 1 8 π ( 1 7 r ) 2 A_day = {1} over {8} %pi ({1} over {7}r)^2

where:
Aday is the area of ocean seen in one day, and
r is the distance traveled in one week.

Then the probability of finding an island in a week is roughly:

P week = 2 × 7 ( 1 8 Ï€ ( 1 7 r ) 2 ) Ï€ r 2 = 1 28 P_week = 2 times {{7 (1 over 8 * %pi(1 over 7 r)^2)} over {%pi r^2}} = 1 over 28

and the probability of finding an island on any given day is:

P day = 1 7 × 1 28 = 1 196 P_day = {1 over 7} times {1 over 28} = 1 over 196

Exploration sailing is terrible using a sparse ocean.

What about Vikings?

The Draken Harald HÃ¥rfagre has a top speed of 14 knots or 25.928 km/hr. If the crew never rests, then the ship could travel 4356 km in a week. If they use birds to find land, then they explore a swath of ocean 4356 km x 2(228) km in one week. The probability of finding an island is then:

P week = 2 × 2 d × r Ï€ r 2 = 2 × 2 ( 228 ) × 4356 Ï€ ( 4356 ) 2 = 912 4356 Ï€ 0.0666 P_week = 2 times { {2d times r} over {%pi r^2} } = 2 times { {{2(228)} times {4356}} over{ %pi(4356)^2}} = 912 over { 4356 %pi } approx 0.0666

and

P day = 1 7 P week 0.01 P_day = 1 over 7 P_week approx 0.01

This is about twice as good odds as with worse assumptions, but still doesn't seem great. I'm sure that realistic exploration sailing had any number of other factors going for it and the math here is all wrong, but for my purposes the Dense Ocean seems more fun anyway.

How Much?

Assume a party of 5 people. We'll say that a week's supplies for one person is a sack, and in addition each person has a sack of tools and gear. So our small ship must now carry 20 sacks of weight (5 people, 10 supplies, 5 gear).

Old ships are measured in tonnage4, the number of tun-casks the ship could fit. From this random image I found, a tun cask takes four people to carry, so is equivalent to 4 sacks. Therefore our small ship is 5 tons.

How Fast?

An early limitation on ship speed is the "hull speed", where:

V hull = 1.34 L WL V_hull ~= 1.34sqrt{L_WL}

and:
Vhull is the hull speed (knots), and
LWL is the length of the ship measured at the waterline (ft).
Strictly speaking this isn't a "limitation", but I must stress that we're talking about terrible boats here.

From the tonnage, we can back-calculate the length of the ship using the Builder's Old Measurement:

T = ( L OA 3 5 b ) × b × b 2 94 T = {(L_OA - 3 over 5 b)times b times {b over 2}} over 94

where:
T is the tonnage (tons burden),
LOA is the over-all length of the ship (from stem to sternpost, ft), and
b is the beam, or width of the ship (ft)
and also using a random rule-of-thumb found on Wikipedia somewhere:

b = L OA 2 3 + 1 b = nroot{3}{ L_OA^2 }+1

(LOA and b in ft.) Finally, we must assume that, for our purposes, the waterline length is equal to the overall length. This isn't a great assumption, but it's not terrible if our boat is built more like a bathtub than a canoe.

With all of this, I wrote a quick ocatve script to generate the following table:

T (tons)LOA (ft)Vhull (knots)
19.52554.1357
212.8374.8011
315.2945.2404
417.3195.5766
519.0745.8523
620.6396.0876
722.0616.2939
823.3726.4782
924.5936.6453
1025.7396.7983

At this point, I started to think I might have lost track of where I started, so I stopped. When someone asked "how fast do boats go" on a Discord server, I just pointed them at this table from Labyrinth Lord:

Underdark-Ocean Island Generator

One more in a continuing series.

Where to get it

The Manse

What is it

Six tables, d6-d12, giving approach, material, monster, hazards, treasures, and inhabitants (1-in-6).

Sample Output

Island 1

  • Well developed. Tons of range markers, buoys, shark nets and docks. If the island is inhabited, there is a steep dock fee. If the island is uninhabited, then this place is long abandoned.
  • Island of bones and insect shells; discarded for centuries as flotsam.
  • Dark-Elf Spellcaster. Very powerful, but water burns her like acid.
  • Glass Dog. It's lonely, but every time it jumps or licks you it deals 1 damage cause it's made of glass. If you managed to catch it and bring it to the mage's guild you'll get a hefty reward.
  • Pearl & Diamond Earring. The matching pair is lost at sea. Worth a few thousand gold.
  • Uninhabited

Island 2

  • Unnaturally calm. Feeling of dread. Roll a random encounter.
  • Island of bones and insect shells; discarded for centuries as flotsam.
  • Ogre Zombie, dressed head to toe in very thick armor. There's actually 1d8+1 of them, they're just all identically dressed, so rumors only ever speak of one.
  • There is a fairy grove on this island, unsual mushroom and lichen instead of trees and grass. But the fairies still play tricks on you, steal your map, make time pass faster, etc.
  • Magic warning sign. If a creature can read any language, then reading this sign forces them to make a morale check to proceed if they aren't in combat or chasing you or something.
  • Uninhabited

Island 3

  • Filled with dark, spooky seaweed. If you fall overboard, they pull you down and drown you.
  • Standard rocky island affair. Mushroom forest and lichen bog; very verdant for a place in the underdark. Elves probably lived here once.
  • Dark-Elf Spellcaster. Very powerful, but water burns her like acid.
  • Poisonous berries and fruits, tainted fresh water. No chance for resupply.
  • Bag of a hundred silver coins. If you spend an exploration turn tapping coins, you have a 1 in 6 chance to find a fake coin that's actually gold underneath a silver paint. About 20 of them are fake.
  • Uninhabited

Notes

I like these ones, they're detailed and evocative. They're definitely tied to a setting, and they might be just specific enough that it's weird to re-use one on a second island. I also think that only 1-in-6 islands being inhabited means the inhabitants table doesn't get enough use, similar to the "exotic materials" table on other generators.


1 This is what the tour guides of The Draken Harald HÃ¥rfagre told me, but I might be misremembering.back

2 Following from UVG, a "group" check rotates throughout the crew.back

3 Sacks are another useful abstraction from UVG. A sack is: as much as one person can carry unencumbered; all of a person's prefessional gear; one unconscious human; one unit of trade goods; or enough food, water, and consumables for one person to survive for one week.back

4 These are tons burden (a volume measurement), as opposed to tons displacement (a weight measurement). As an engineer, it distresses me the number of meanings that "ton" can take, but here it is unavoidable.back

Thursday, February 7, 2019

I think I might know someone...

When I first moved to Buffalo and didn't know anyone in the area, I ended up staying with my girlfriend's roommate's mother's friends in the area (they were great people). When someone on the OSR discord was asking for a good contacts system I thought I would try my hand at one that reminds me of that connection. I figure this is probably half a solid contacts mechanic, so I hope someone gets use out of it.

Draft One

RollRelation (1d20, 1d10)Ability (1d6)Strength (1d8)Weakness (1d12)
1classmatefence itemloadedowe them money
2roommatecarry stufftrustfuladdiction
3friendemploy partyrespectedsnitch
4fiance(e)get informationloyalhunted
5drinking buddyget itemmannersdumb
6exteach skillcautiouscowardly
7landlordlearnedunwashed
8tenantstronghidden
9coworkerbad blood
10bosscursed
11brothermad
12sisterbusy
13cousin
14uncle
15aunt
16niece
17nephew
18mother
19father
20grandparent

This is what I made initially, and you can see it with a little more in the Google doc. When you have a chance to meet new contacts, you can roll up a contact at two removes (e.g. 1d20 and 1d10 under "Relation"). If that contact doesn't work out for you, add another d10 to relationship, then another d20, and so on each time you need a new contact before you can naturally make more.

Draft Two

Then I thought I'd try automating this process, because that's trendy these days. This generator owes a lot to Betty Bacontime and Spwack's work, but I had to rework it to make it do what I wanted it to.

Wednesday, February 6, 2019

DIE TRYING

I have had the pleasure to play in two of Spwack's DIE TRYING playtests. While I'm only talking about the DIE TRYING rules here, these can be difficult to separate from Spwack's play style. I can also only discuss the rules that I've encountered so far.

antifa flag logo with "No Classes * No Levels" encircling
Click for the DIE TRYING rules. (Image credit: "Bogeyman")

The rules start with 7 pages of character generation. This is garbage unnecessary1. You need two links to make a character:

This is the first great innovation in DIE TRYING: to automate character generation without loss of interest. It's 1% of the effort of rolling an OD&D character with all the nuance of a million pounds of Pathfinder splatbooks. I recommend making one now, just to see what I mean.

And yet, for all the tricks and abilities your new character will have, they will still be lacking. One of my characters started with a spell, but no magic dice. Both of my characters started with the eye of a malign entity upon them. Another party member started with a mystery egg, and no way to hatch it. Every character is very weak and readily dismemberable.

This is the core of it: DIE TRYING is a game of want. I'm sure you can starve to death in the game, but mere hunger and encumbrance and exhaustion are not its motivating factors. Instead, DIE TRYING presents a world full of interaction and interest. Then it gives you characters that have abilities, but not power, and an immediate need to fill that gap in order to survive. Where the rules shine is the lists of ways to get more power and learn new abilities. Because you will need those to live.

This leads to the other major innovation in DIE TRYING: the X system. Characters get ad-hoc Xs instead of experience. Xs are awarded for achieving things or failing terribly, for good plans and bad ideas. Xs are awarded out-of character for things like attendance, character portraits, or this review2. And Xs aren't some nebulous investment in an eventual "level", they go directly towards meeting immediate needs. You can add an X to anything on your character sheet that needs more oomph behind it. I had a crowbar on its last legs, but with an X I shined it up good and now I have an acid-resistant crowbar. I appeased an ancient king, and now I have a little more leeway when dealing with it. After three Xs, my colleague's egg hatched, and now his "son" is a helpful slime that he carries with him.

In case I've been unclear (and even were I not being "compensated" for this review) I've had a genuinely great experience with the system. Especially if you're in Spwack's timezone, I believe he's still playtesting on Discord, and I recommend it.


1 The main reason I favor "OSR" type systems is that I find character generation to be a chore. The main thing I miss about more "bloated" systems is the bizarrely specific characters you could build, like a mutant half-elf blind seer/assassin. If this were my system, I would do it like Perl: the generator is the rules, and then relegate the whole 7 pages to an appendix.back

2 Missed opportunity for a hot take: "DIE TRYING is a transmedia storytelling project that blurs the line between platform and experience and transcends traditional narrative frames." For real though, the same colleague with the egg got an X for opening a door with a big red "X" painted on it. We knew in advance that he would, but I'm not sure if it's because it was an obviously bad idea (it was), or if it's because it had an "X" on it.back

Wednesday, January 23, 2019

The Frenchman's Curse

A parasitic spell for LotFP or similar.
The death of a Frenchman, if not "the Frenchman" of my notes.

When the Frenchman dies, all who witness his dying breath save or catch the curse.

Spellcasters

The curse lives in a spell slot. It prefers high-level spell slots, but can be persuaded to take a lower-level slot temporarily. You cannot cast the curse, it just lives there.

When another spellcaster witnesses you casting a spell, they must save or catch the curse also. This is how the curse "reproduces". If you are cunning, you may be able to coax the curse onto a scroll, or convince it to allow itself to be "cast" into another host (without leaving a copy behind). It knows that the target will get a save in both of these cases, so it needs to be a good deal.

When you die, the curse dies with you.

Others

The curse cannot "reproduce" properly if you can't cast spells, so instead it seeks out spellcasters. Intermediate hosts have disadvantage on saves vs. magic, and their skin is covered in crawling tattoos that are offensive, enraging, insulting, confusing, distracting, and profane. Fortunately, these tattoos are only visible to Read Magic, True Seeing, or those with second sight.
"The Op Tattoo", Robert Williams, 1993 (not public domain or anything like that)
On a 1-in-6, the intermediate host has some innate magical potential, and instead carries the curse asymptomatically.

When you die, the curse will pass into all who witness your death. If you manage to otherwise rid yourself of the curse, it will leave behind an empty spell slot.

References

Talking to your spells:
Parasites with intermediate hosts:
Memetic diseases:

Sunday, January 13, 2019

Being Useful

Always feels good to help people with things. Sometimes this is just recommending resources, but sometimes I get to flex my slowly-dying engineer muscles. These are two things I got to help people with recently on some Discord chats, but Discord is temporary so I'm writing them down here for posterity.

RPS Mechanics in Play-by-Post Games

Image source: wikimedia.

Rock-paper-scissors only works in person because you can throw more-or-less simultaneously. In a play-by-post environment, someone has to go first. Here's how:
  1. Alice generates a random number and appends it to her choice.
    Example: "paper04"
  2. Alice takes a hash* of the result and shares it.
    Example: "md5:fbe1a7f5e0330c5cf5a986d40065a21e"
  3. Bob shares his choice.
    Example: "scissors"
  4. Alice shares her original string.
    Example: "paper04"
  5. Bob checks the hash of the original string.
This is not a protocol focused on security. For example, given that the salt is a number 00-99, Bob could generate a rainbow table of all the possible checksums and guess Alice's answer before she revealed it.
It could be automated in some ways if you ran the forum, for example, a bot could automate the final check.




Weighted Selection from a Compact Table

It's common for a table in a book to be formatted like:
1-10. Very common result
11-15. Less common result
16-19. Slightly less common result
20. Very rare result
This is useful if you want to mimic a specific type of distribution given a flat input curve. The theory is that if you use this table a lot, then it will make the results feel more natural.
This presents a problem if you would like to automatically roll on the table in a spreadsheet. A naive way to do this is the format it like:
(A1) Very common result
(A2) Very common result
(A3) Very common result
. . .
(A20) Very rare result
But this is time-consuming and annoying to change. Using VLOOKUP, you can format it like:
(A1) 10 (B1) Very common result
(A2) 15 (B2) Less common result
(A3) 19 (B3) Slightly less common result
(A4) 20 (B4) Very rare result
And then roll as normal. There is a (rough) proof of concept here. There's a couple mistakes in it, but if you play around with it you can see how it works.
Cols A & B are the actual table, while Cols C & D are for illustrative purposes and aren't necessary for the table to function. Cols E & F show how an automated roller might function.
* = I use DuckDuckGo as my default search engine. If you search "md5 [term]" it will auto-suggest the md5sum of "[term]", which is neat. Wolfram Alpha also does this.

Tuesday, March 12, 2013

Cladogram and Notes

I embark upon a new project and shortly thereafter abandon it to the winds, and collect up some random notes I've taken.

An RPG Cladogram

Someone on G+ made the comparison between the proliferation of retroclones and the many distributions of Linux. Inspired by the GNU/Linux Distribution Timeline, I started one for gaming:
It has a couple of problems: one, it's horribly incomplete, and two, it doesn't handle child nodes born after the parent's death very well at all. I think it's a solid idea, and if anyone wants the sources I can send those along (it's just a csv file), but I think I'll let it go until I can work out the child nodes thing.
There is some precedent for this:

Notes

  • An impromptu mechanic I was proud of: you have a keyring. Each round, you try a key. Roll 1d12 on a 1, it fits. Next round, on a 1-2 it fits. The round after on a 1-3, and so on.
  • A pop-o-matic should be a very fair way of rolling dice. If it isn't though, it might be modelled best as a Markov process.
  • I've been playing Bang! with some people. Our group tends to be small though, so that any weapon will do just as good as another. To fix this, I propose that people can only fire in one direction, like an M. C. Escher staircase.
  • Mr. Sivaranjan comments that it's about a 50% probability to roll under a random ability score. I had thought it would be exactly 50% to roll under an ability score (inclusive), but AnyDice says 52.5%. I'll have to figure that one out when I've got more time. Unsurprisingly, the distribution of wild talents follows an inverse normal curve, shown below.

Friday, November 23, 2012

Miscellaneous Mechanics & Ideas

I haven't had a whole lot of time recently, but there's still some ideas kicking around in my head.

For making an alien in Samurai Jack:
Roll 1d6 for number of eyes.

For characters from large families:
Roll 2d12:
  • The higher number is the number of children.
  • The lower number is your birth order.
For halflings, use 2d20.

For steel-boned corsets:
Use AC as splinted mail, with a bonus to Cha, and penalties to Dex.

Tell me these are really so different.
For patent medicines:
I saw "Dead-Sea Moisturizing Face Serum" at Ocean State Job Lots. Not only does this sound truly terrifying, but it's fodder if I ever revisit my generator.

For a wierd nightscape:
Consider a pitcher plant that catches moths using an anglerfish's bait. It obviously grows on trees. Possibly consider fat squirrels with anglerfish-bait-tails filling a similar niche.

Dream fragments:
  • Babylonian guardian demons that take the form of either giant awakened naked mole rats or riderless motorcycles. They enforce the rule that "nothing is free".
  • Helium jellyfish that float around like plastic bags roost in trees. They have a complex lifecycle. Possibly they have propellers.
  • Staircases that are difficult to use the other direction. They require a will save to go the "wrong" direction. They aren't railroads, but make circular navigation necessary.

Monday, September 17, 2012

Non-transitive Dice with Cards

Non-transitive dice are a fascinating phenomenon. However, I don't really want to buy more dice*, especially dice that look, at a glance, like all my other dice. So I've been trying to think up a way to have non-transitive dice without actually needing new dice.

Example of non-transitive dice (opposite sides are same) (Image Source: Wikimedia Commons).

By far the simplest thing I've found, is to make each "die" from a stack of playing cards. This has several advantages:
  • If all piles are the same size, then they will appear identical when face-down. This means that each pile can be chosen with incomplete knowledge or assigned at random.
  • As cards are played, they may be discarded by some rule. Thus, while the stacks may initially be non-transitive, their relation can change over the course of a game.
  • Playing cards are readily available, and can be used to emulate any set of dice that doesn't need numbers higher than 13.

I don't personally have a use for them yet, but if you come up with one I'd love to know.

* = This is a lie.

Tuesday, August 21, 2012

Modular Dice

I've been using "d50"s without noticing for some time. You can get huge, strange 50-sided dice, but that's not what I'm talking about. Instead, I roll d% and if the tens-place is greater than 5, I "wrap around". I'm sure this is something that's not uncommon, it saves re-rolling if the die is an even multiple.

I decided to investigate this further. For a uniform distribution it's not that interesting, but starting from a normal distribution it's a neat way to get two peaks. Figure 1 shows the effects of different moduli on the 3d6 distribution.

Figure 1
If you'd like to play with this in anydice here's the function I've written:
function: A:n mod B:n {
    if A > B {result: [(A - B) mod B]}
    result: A
}