Showing posts with label play procedures. Show all posts
Showing posts with label play procedures. Show all posts

Wednesday, 4 February 2026

Tick-tock-tock game design

Let's talk a bit about prototyping, i.e., creating the foundation of a game as the first step before iterating on the design.

I sometimes use a specific approach for this, which I call "tick-tock-tock game design".

The name (as opposed to tick-tock-tick-tock) is meant to evoke simplicity and granularity, procedurality and semi-predictability, and deliberate avoidance of symmetry. Specifically, tick-tock-tock game design is

  • Minimalist: The game's complexity emerges from a small set of simple, interconnected processes and abstractions acting on each other. Additional complexity may be introduced creatively by the player. For example: The game has two stats and two actions, and the gameplay state is limited to a set of five possibilities plus some numbers.
  • Clockwork: There is a core gameplay loop, precisely described, which you don't deviate from. The loop's particulars almost certainly involve randomness and player choice, but in general Z follows Y follows X. For example: The game is an escalating series of four-stage cycles where you ante up, make a bet, apply the consequences, then raise the stakes.
  • Asymmetric: Although minimalism + clockwork permits a very high level of symmetry and regularity in principle, the game deliberately leans in the other direction. For example: The game has four stats, but they aren't equally important. The game has four actions with the same magnitude of effect, but one is only situationally useful, and another one has a cost.

This combination can be a potent one for engaging play.

I'll give a few examples from my current game project, Overzealous.

This is a solo TTRPG where you (an outsider god) want to be summoned into reality, but you're mismatched with a cartoonishly bloodthirsty cult who keep getting distracted by their own horrible havoc.

Poster titled Overzealous. The letterforms are superimposed on silhouettes of cultists. An abstract humanoid form looms over fire and candles. Text reads: A band of fanatical cultists. A vexed would-be divinity. Too many gleeful stabbings. Will they complete the ritual? Will they break open reality? Your cult has no chill!!!
Poster by me. Art credits: Evlyn Moreau. Gordy Higgins. Adobe Stock. Lorc, CC-BY (https://creativecommons.org/licenses/by/3.0/), modified.

 

Overzealous is Minimalist. There are five stats. The two 'good stats' are Cultists and Imminence. The three 'bad stats' are Fervour, Divergence, and Monstrosity. You want to get your good stats high and keep your bad stats from creeping up too fast.

All the game's additional mechanics (random weekly events, the actions an outsider god can take, ongoing problems like your cultists turning into cannibals, etc) revolve around these essentials. It is very easy to understand the fundamentals and everything hinging off them aids further comprehension.

Overzealous is Clockwork. Stats matter at the values 0 and 13 (as starting points, points where you win or lose, etc). Stats change iteratively, each turn, with a random factor. The actions available to you have precisely specified outcomes.

After setting up, play proceeds in a tight game loop in which a turn begins, developments happen, actions are chosen, random events are rolled, and consequences are suffered. The loop only ends in a victory or a loss, with a little extra gameplay associated with either, much of the complexity of which is driven by player creativity.

Overzealous is Asymmetric. You want 13 Cultists and 13 Imminence so that you can win, but you need more Cultists than that if your cult has too many heretical ideas. Also, having high Cultists increases the rate of increase in all your other stats.

Fervour, Divergence, and Monstrosity are all bad, but Divergence is the worst because it can passively make it harder to win the game. All three stats can make you lose the game if they reach 13, but Fervour and Divergence matter more before that because they result in worse effects from the random rolls you make for cult shenanigans.

Ongoing problems in your cult can cause stat penalties over time, and there are 25 possible combinations for this, but in practise you only face a subset of ten problems the cult can bring upon themselves, with stat penalties appropriate to the nature of those problems. There's a wide variety of actions that you can choose between to trade off your stats, but they don't all have quite the same expected value or magnitude of effect, some are random, and some effects you might want aren't encoded as actions.

Why tick-tock-tock game design?

Minimalist and clockwork approaches are easy to learn and play and well suited to casual and solo gaming. The flip side is that they can be boring, and the kind of complexity they create can be limited in various ways, such as predictability or lack of verisimilitude.

But small deviations from a pattern feel meaningful (whereas pure unpredictable randomness circles all the way around to pablum).

To put it another way, wielding asymmetry means setting up expectations – the player can envisage a huge gleaming clockwork machine built on these simple bones, a game where a player is barely needed because everything proceeds in so orderly a fashion – and then subverting them. Having things go in different directions. Hiding better solutions amidst worse ones. Presenting a damaged machine to play with. Making things messier and more interesting in the process.

The earlier the better

I think it's best to bake this sort of thing in at the prototyping stage, where it will necessarily affect the end result, rather than try to get it right in later stages of design.

Accidental symmetries are possible, and in my experience if you're not careful when you are designing to thread the needle between symmetrical and chaotic, you can end up e.g. creating trap choices or areas of game-space which never get reached because the better path is so obvious.

This is all part of the game design vision where you avoid having equilibrium states or necessary actions or unavoidable penalties or slow death spirals. Early in the design of Overzealous I switched from ongoing problems causing a stat change of 1 to a 50% chance of a stat change of 2. It should be obvious why. It's less fun to just go around in circles, tick tock tick tock tick tock.

 

Update: Overzealous is now available!

Available at itch!
Available at DriveThruRPG!

Saturday, 10 January 2026

A simple treasure table system

Here's a classic problem: The characters find some treasure – let's say there are diadems, gilt-framed paintings, jade figurines, and various other art objects. The GM describes them so that the players can write them down. The objects may not be sold for many sessions, before which many other treasures will be acquired from various sources, including different modules and the GM's improvisation.

The characters shouldn't generally know how much the art objects are worth when they find them. That should be GM-facing information. On the other hand, the GM shouldn't have to remember where every item came from, or transcribe each one and then try to hunt for it on the big list when the characters eventually try to sell it.

The typical solution is usually to bite the bullet: give out sale values along with treasure, or make it a hassle for the GM. Or perhaps compromise by giving out an indication of a treasure's worth and then rolling randomly based on the indication at the time it is appraised or sold.

 

A better solution:

I'm proposing a system which I've never seen in a TTRPG before, but it's so obvious that I bet I'm reinventing the wheel. It's similar to how item values work in the video game Dwarf Fortress.

We express each treasure as a phrase containing {class, descriptors}, where class is a type of item with a baseline monetary value, and descriptors are adjectives with multiplicative value modifiers. These are on big lists that are privileged GM information.

So the GM has a list of item classes coupled with base values that looks something like

Amulet   2 gold

Beads    1 silver

Cutlery  5 silver

Diadem   20 gold

Ewer     12 gold

Figurine 4 gold 

...

Then there's a list of descriptors, or possibly separate lists of positive and negative descriptors, each with a fractional modifier. Perhaps

Antique     ×5

Cracked     ×3/4

Gold        ×12

Half-rotten ×1/4

Jade        ×2

Large       ×

Rusty       ×9/10

Shattered   ×1/20

...

The GM has these lists at their fingertips. They are lookup tables, but of course if you did have a nice number like 20 or 66 or 100 entries, they could pull double duty as dice tables for treasure generation.

A fancy green goblet carved with dwarves.
Illustration by Zed Nope

 

How do we use the tables?

A zillion sessions ago, the GM let the players know that they found an antique gold diadem and a large cracked jade figurine.

Perhaps they were described more fully (what does the figurine depict?) originally, but the GM made sure to communicate which were the key words, so that's what the players wrote down. The players weren't told the value, just the description.

Now time has come to sell these art objects. The GM doesn't need to remember anything about the treasure – where in the world it was found; what published adventure it came from or whether it was rolled or improvised; what rough-and-ready valuation the characters were given by a passing tinker.

The GM only has to do a couple of table lookups.

Diadem: Base price of 20 gold pieces. Antique: ×5. Gold: ×12. Actual value: 1200 gp. 

Figurine: Base price of 4 gold pieces. Large: ×3. Cracked: ×3/4. Jade: ×2. Actual value: 18 gp.

And that's all you need. The lookups are trivially easy; they're in alphabetical order and should fit on one piece of paper. The maths ain't hard.

 

Joseph Gandy (1771-1843) painting of museum treasure hoard. Yellow light plays across the surface of miniature models and paintings.
Joseph Gandy (1771-1843)

 

The benefits:

There are seriously so many.

1. Hidden information stays hidden.

Players don't get information on value which should be secret. If they've found something made of 'ebonshell' and they've heard in passing that ebonshell is valuable, the word is a descriptor on the table and the players won't find out if that means "buy another round" or "buy a castle" until they seek out a valuation in-world.

Prior valuations stay consistent, too. If the GM allows a skill check for valuation, they can look up the true value, give an approximation (or a false answer if the check fails), and then completely forget they've given out that information whether or not the players go on to sell the item.

2. Descriptions correlate nicely with values.

Assuming you have a good set of tables, you're buying extra verisimilitude. The "cloudy garnet ring" you find in one dungeon and the "dull garnet necklace" you find two dungeons later have similar values, both are vastly less valuable than the "hundred-faceted ruby amulet", and that's exactly what players will expect.

Things that would otherwise 'just' be flavour start to matter more to the players. We can only take so much stuff back with us. Is the one-of-a-kind altarpiece cracked or just chipped? What's our best guess about how that compares to this sack of obsolete silver coins? Speaking of which,

3. There are learning opportunities.

We're all big fans of rewarding player skill, right? With this system, attentive players can begin to infer what words matter most for treasure values. This reflects the learning their characters would be doing.

On the other hand, the tables are

4. Easily reset.

If you want to start fresh in a new universe, or with new characters, or change GMs, it's trivially easy to just cross out a bunch of values for base items and modifiers and write in slightly different ones.

Players no longer know what to expect but the whole thing stays internally consistent, because you only tweaked the values. For the same reason, it's

5. Easily customisable.

Let's say you decided in this world, jade has mystic properties which make it worth more than gold. Cool, change ×2 to ×15 in the table and you're done. Any treasure you've already put out there is immediately converted.

If you're using treasure from a publication, when you go to convert an item you'll notice that it's described as "jade", check "jade" in the table, be reminded of your modification, and decide whether this particular thing is massively more valuable or whether you'll keep the value and change the material.

It's easy, because in general, this whole system is

6. Compatible with published treasures.

It's not much effort to start with treasures described by value and work backwards to create the descriptive {class, descriptors} phrase.

Suppose an adventure says "the bag contains three opals worth 300 gp each". What does that convert to? Well, you start by finding the "opal" class base value (or maybe "gemstone" is a class and "opal" is a descriptor), then flick around looking for more descriptors that will get you to 300 gp.

Maybe huge + dazzling + round + opal = 300 gp? Perfect. You've acquired more information about what the treasure is actually like. Or maybe it doesn't fit that they're "huge" so you try a few other descriptors and find that small + flawless + fashionable + opal = 320 gp? Close enough.

7. Simple calculations.

It's easy to price something up. We can put both decimals and fractions in the tables, so that people who are less proficient at mental maths can use a calculator. It wouldn't be hard to make a spreadsheet or online tool that calculates values very quickly.

8. Adaptive.

This single framework should work for most systems and settings. Only the tables will need to change.

Once published, individual GMs could hack further as they pleased. Have as many or few base object classes and modifiers as you want. It's easy to simplify or expand, because

9. You can hang stuff off the system. 

Let's say a character comes from a clothier background, and makes alterations to a "silk sash". Now it's a "tailored silk sash" and its value changes accordingly. A fighter is able to repair the "ragged rusted mail hauberk" enough that she can wear it, and now it's a "patched mail hauberk".

Want to get more out of jewellery and gemstones? Have a subsystem for inset jewels, which might add to or multiply an item's value.

Want to get into meticulous detail regarding some setting-specific fine arts? Add a whole extra table of modifiers referring to specific artists and times and trends and students and suspected forgeries.

Want collectors to be interested in specific things? Express that as custom modifiers. The antiquarian pays ×7 instead of ×5 for the "antique" descriptor. The archivist ignores penalties from the keywords "old" or "repaired" on books. The vizier only wants jewellery in good condition, so will pay double for any items without any negative modifiers, half otherwise.

Have item valuation and haggling skill systems? This framework just establishes the ground truth / base price, so those should sit neatly on top without you having to lift a finger.

10. No tracking.

It really bears repeating that the GM doesn't need to track any extra information, or resort to improvisation when they can't find the item they gave out months ago.

Wilhelm von Kaulbach (1805-1874). An anthropomorphic beast brings armfuls of treasure out of a subterranean door. Sound familiar?
Wilhelm von Kaulbach (1805-1874)

So there's my idea! Do something cool with it. I've added "make a whole little book for this stuff and possible extensions" to the ideas pile.

Tuesday, 30 December 2025

Complications! Serendipity! Action resolution twists

An envelope gets tugged out of your hand by the wind. You kick your desk and slosh coffee everywhere. You bump into a friend in an unexpected place. A bird lands on your shoulder. The pen runs out of ink when you try to sign.

Because of how our own world works, we expect fictional worlds to be full of lots of little chance things which individually happen rarely. Pieces of serendipity. Unwanted side effects. Unexpected interruptions. Unforeseen complications.

Characters in the fictive world of a tabletop game should expect to encounter little surprises here and there. Not all the time; perhaps not as much as they do in the real world, because of the focus on exciting impactful play — but enough for verisimilitude.

Character desperately vaulting over a pit. Art by Gordy H.

Twisting outcomes ad hoc

TTRPGs often have rules for very consequential rare outcomes (critical hits, spell mishaps, fumbles, etc). But (especially in rules-light games) it is often down to the referee to come up with any smaller "twists": the complications and bits of serendipity we expect to happen not-too-infrequently when someone attempts to do something.

There are two problems with having the referee add twists to action outcomes on the spur of the moment.

  1. The imagination is a resource. Thinking requires time and effort, a referee has a lot of mental overhead, and adding twists to action resolution begins with remembering to actually do it. Even an experienced and confident ref likes to have tools at their disposal to reduce mental effort.
  2. If it's not a formal procedure, it can feel arbitrary. If the referee just tells a player "your sword hilt catches in the reins of the knight's horse as it gallops past and is ripped away, pinwheeling across the battlefield" it may feel unfair, even punishing. Why them? Why now? Why misfortune instead of fortune? This naturally leads to the ref only adding complications in low-risk environments, which is less interesting.

So here's an approach you can bolt on to any game to add more twists.

Character seizing the magical ring, and rotting hand, from a decrepit lich. Art by Gordy H.

 

A procedure for twists

I was reading some older blog posts about (1) spark tables (Bastionland), (2) GM intrusions in Numenera (Alexandrian), and (3) the habit of rolling for complications (Necropraxis), and they got me thinking. We can put together some simple tools for adding twists.

The design goal is to create a procedure that is

  • quick, simple, and useful to a referee,
  • neither too game-specific nor too vague,
  • open-ended and flexible. 

We just need a few dice tables and a basic rule for rolling on them. 

Here's the simple procedure I came up with:

1️⃣ The referee (or designer) should decide on the mechanical trigger for adding a twist to an action outcome. This will be system-dependent, e.g., "when the margin of success or failure is 10 or more", or "when a 01-03 or 98-00 is rolled on percentage dice", or "when rolling with (dis)advantage", or "when anyone spends a luck point".

2️⃣ Ideally it's something that players and referee alike can notice, so that it gets remembered, and eventually comes to be expected.

3️⃣ Now if this trigger applies during action resolution, the referee rolls 1d10 twice and consults the following dice tables, picking whichever of the two outcomes is more plausible for the context. Reroll if absolutely necessary.

(If there's no appropriate trigger for your system, you might roll 1d12 before each action adjudication and give a positive twist on a 12 or a negative twist on a 1. Or if you want lots of serendipity/misfortune and fewer dice rolls, just extend the following dice tables to 1d20 size and roll a pair of d20s for every action adjudication, one for a positive twist and one for a negative twist, ignoring results higher than 10.)

Character fighting a giant, their weapons clashing. Art by Gordy H.

 

Dice table #1: Combat-specific twists

In a fight, one side's boon is the other's bane. The table entries refer to a "combatant" who should either be the character acting, or the opponent they are focusing on, as appropriate for the trigger. (This should work even for games without symmetrical combat mechanics, with a reasonable choice of trigger.)

  1. Exposed. Combatant is drawn out of position, surrounded, or put on bad footing.
  2. Toppled. Combatant is knocked down.
  3. Lost grip. Combatant drops their weapon, gets it stuck in something, or loses their grip.
  4. Disoriented. Combatant is blinded, dazed, scared, or demoralised by a combat event.
  5. Jostled. Combatant is trampled, grabbed, or knocked aside.
  6. Extra injury. Combatant suffers an additional incidental wound.
  7. Ally harmed. Combatant accidentally causes harm to (or disrupts) one of their allies.
  8. Armour broken. Combatant's shield or a piece of body armour breaks, is removed, or is rendered useless.
  9. Weapon breaks. Combatant's weapon is made useless: a blade breaks, string snaps, gun jams, etc.
  10. Impeded. Combatant is tangled or otherwise hampered by terrain or their own armour.


Character climbing a wall, looking scared. Art by Gordy H.

 

Next we'll look at random tables for general actions. We can't expect there to be a zero-sum symmetry like there is in combat, so we'll need separate misfortune and benefit tables. Choose the appropriate one for the trigger.

(Depending on the trigger, negative twists might still occur for successful actions and positive twists for failures. I think this is a good thing.)

Dice table #2: General action twists (misfortune)

  1. Incidental damage. Whatever the character is working on or with (a rope, lock, computer, tool, weapon, etc) is damaged.
  2. Extra time. The action takes longer than expected (the character may choose to abandon the task early when this becomes clear).
  3. Costly. The action will take more resources than expected (the character may choose to abandon the task instead when this becomes clear).
  4. Loud or unimpressive. A mistake or coincidence causes the action to get everyone's attention. This may be laughable, socially objectionable, distracting, or dangerous.
  5. Minor injury. The character suffers some small harm in the course of attempting the action.
  6. Crudely done. The action is performed clumsily or its effect is crude and sloppy, in a way likely to have later repercussions.
  7. Unwanted side effect. Attempting the action also causes a problem, likely related to the method used and the circumstances.
  8. Hidden step. Attempting the action reveals a new challenge which must be overcome before the action can actually be completed. *
  9. One shot. Attempting the action reveals circumstances which mean the task can't be tried again following this attempt. *
  10. Tougher than it seems. Attempting the action reveals something about the situation which makes the task harder than anticipated. Adjust it for others and for future attempts. *

* Note the last three entries may necessitate changing the details of the world. This approach might not work for everyone.

Dice table #3: General action twists (benefit

  1. Skill increase. The character performing the action learns something along the way. This may be as diegetic or game-mechanical as you please.
  2. Mastery. The character can do this specific action again (in this same context) without any chance of failure.
  3. Positive side-effect. Performing the action also causes an unexpected helpful outcome.
  4. Good return. The action takes fewer resources than expected to accomplish, and/or yields more of some measurable outcome than it normally would.
  5. Quick. The action takes half the time it normally would.
  6. Quiet. The action is accomplished stealthily and subtly, or there's a distraction elsewhere that takes attention away from it.
  7. Impressive. The character performs the action in a way that's inspirational, smooth, culturally appropriate, or garners public approval.
  8. Stacking. The way this action changes the world makes it easier for allies or harder for foes to accomplish some related thing(s). *
  9. Discovery. The character performing the action finds something (information or an object) when they attempt it. *
  10. Easier than it seems. Attempting the action reveals something that makes the task easier than anticipated. Adjust it for others and for future attempts. *

* Again, the last three entries may require changing the details of the world. You'll need alternatives if you don't like that.

Character discovering a secret door behind a tapestry. Art by Gordy H.


The benefits of table-based twists

There are three main benefits to this approach.

  1. SALIENCE. The simple procedure means easy referee decisions. It reminds the ref of various outcomes that should be possible. And it's a quick way of selecting between side effects.
  2. PLAUSIBILITY. The tables are fairly general. Rolling twice and picking the more plausible twist is easier than having to think of a particularly suitable possibility, but is quick and flexible.
  3. PERMISSIVENESS. When a game system doesn't overtly empower the referee to intervene in small ways, adding a defined procedure feels less arbitrary. The one I've written up is neutral with regard to the player characters; in games where characters are more skilled than their opponents, it may even be a small advantage.

You no longer need as many specific rules for monsters, traps, etc, because it all works inside the established fiction of the world. Now if a monster is described as having a hard shell, whenever "Weapon breaks" is one of the rolled options you'll instinctively pick that one without thinking too hard about it.

Alternatively, you can hang stuff off the procedure to extend it.

  • A cursed sword might always favour the "Ally harmed" twist when rolled as an option, and doubles the effect when it happens.
  • A sticky jelly monster always permits "Lost grip" as a third option to choose between, so that more and more swords end up stuck inside it.

The procedure can be completely player-facing if you want. In story-telling games you could even make the choice of twist a collaborative decision.

You could also use the twist procedure to simplify rules-heavy games, turning their specialised action outcomes into simple table entries and then discarding their complex action resolution mechanics.

Finally, you could build your own tables to come up with task-specific results. If your game is mainly about tracking, you probably want a tracking-specific table of twists.

A potential drawback: Combat asymmetry

This will give you different ratios of good and bad side-effects depending on the number of combatants involved. If a dozen characters fight one giant, or fifteen minions fight one player character, there's a risk of the solo combatant being buffeted by constant 'bad luck' due to the sheer number of rolls the other side is making.

Ultimately this comes down to choice of trigger. Some possible adjustments: Only accept the first two twists that get rolled each round (for combat systems with initiative). Only take the biggest margin of success from each side (for combat systems where everything happens at once). Identify one-vs-many situations and change the trigger to benefit the one. Give boss monsters the power to ignore the first negative twist they would suffer each round.

And of course you can codify rule zero. The referee should simply reject a twist if none of the possibilities rolled seem suitable for the situation. That way a mob of gnomes can't keep knocking the giant over, making her drop her club, etc.

Character being strangled by snake. Art by Gordy H.


Finally

I should note that this procedure is untested, but I hope to give it a go at the table in the future. I'd love to hear if you have thoughts or feedback. Leave a comment or let me know on Bluesky or Mastodon!

 

The art in this post is by Gordy Higgins. Used with permission.

Saturday, 25 January 2025

'Reasons for reactions' to improve random encounters

You don't want your encounters, especially random encounters, to be susceptible to is-this-a-combat-or-do-we-ignore-it thinking.

Plenty has already been written about giving encounters extra contextual details (where are the creatures, what are they doing, what are they hiding, etc).

But it's also important to give the encountered characters the appearance of agency by varying their reactions. The orcs don't always attack on sight. The halflings don't always ask you to join them in a meal.

So how do they feel about you?

Different games go to different lengths with this.

🟩🟩✅ Varied reactions: The rules randomly modify how aggressively a particular set of encountered creatures react, in some way. Most games do this.

🟩✅✅ Default reactions: The rules specify a creature's or group's default reaction (friendly, suspicious, wary, indifferent, curious, issues challenges, hostile, fearful, neutral...), and modify this with a dice roll.

✅✅✅ Motivated reactions: The rules provide plausible reasons for encountered creatures deviating from the default reaction (in case the GM struggles to tie it all together).

That last approach, motivated reactions, is a very useful tool but few games do it. So here are some appropriate options you can roll or pick.

1d10 possible reasons the encounter is unusually friendly:

  1. unusual individual/leader
  2. need a favour
  3. recently sated
  4. intimidated and trying not to show it
  5. hiding a secret
  6. smell food on the party
  7. recent festival, harvest, windfall, or celebration
  8. hoping to steal / other deceit
  9. feeling secure after recent victory
  10. party is a reminder of old friend(s)

1d10 possible reasons the encounter is unusually hostile:

  1. on high alert after recent attack
  2. mistaken identity
  3. resource-starved and desperate
  4. rabid or maddened
  5. hiding a secret
  6. already in bad mood
  7. subject to tyrannical orders
  8. party inadvertently breaking taboo/custom
  9. fear of reprisals from a greater threat
  10. bandits, soldiers, hated nemeses sighted in area
Minotaur with cobwebbed horns. Artwork by CDD20 via Pixabay.
"The minotaur is trying not to disturb a spider's web by moving, and settles for glaring at you balefully."

It's infamously difficult to get across motivations, secrets, and motivations at the table, so signal the reasons as clearly as you can to the players. Your encounters will have more verisimilitude, be more engaging, and be easier to improvise.

Meggs' history of graphic design: Reviewed

For the last couple of months I've been reading Meggs' history of graphic design (fifth edition) . Philip B. Meggs & Alston W. P...