An incremental, biased, generative engine
An incremental, biased, generative engine
My cleric of the tempest domain needed a way to keep track of changes in the weather because their damage increases when there’s lightning or a storm.
What we needed was a persistent, incremental, biased, generative engine.
Persistent: A low priority consideration for the actual system, to be honest. I’m going to have the player keep track of the current weather however they want to.
Incremental: I want changes in the weather to be incremental and to feel natural. For the most part. A clear day should be expected to maybe lead to a cloudy day, with a chance of evolving into rain, and then into a storm.
Biased: Severe weather events should be rare. Most weather should be mild or moderate.
Generative Engine: Some system that generates the weather conditions for us.
The solution ended up being the Hex Flower engine from goblinshenchman.
It’s fiendishly clever in its simplicity and flexibility, and it satisfies all my requirements perfectly.
The core component is a hexagon, and 2d6 which will determine which side of the hexagon you exit.
Given the bell curve of likely outcomes from rolling 2d6, if you arrange your hexagon exits like this:
10,11 / \ 2, 3
8, 9 \__/ 4, 5
…then you get a strong bias for down and slightly to the left.
One requirement satisfied!
This means, given a grid of these hexes, I can place more mild and moderate weather at the bottom, and more severe weather at the top. And I can be confident that the generator will favor more mild weather.
Not to get into advanced features of this system right away, but one thing that might be immediately apparent to you at this point is the fact that you can influence the bias of the system at the design stage or at play time by changing this “legend hex”.
More on that later.
The engine is a grid of hexes, keyed however you like, with a few additional rules.
Here’s the one I made for my storm cleric.
And its key:
DOWNLOAD: If you would like to grab this hexflower as is, complete with key and instructions, you can get it as a single image here.
I like the idea of adding consequences and mechanics to the weather. We just had our first session of heavy constant rain (hex #13) and the stealth bonus and the perception penalty changed the way the game was played. It also obviously changed role play elements like how I narrated the scene, and how the players interacted with their environment.
There are two emergent features of the hexflower at this point:
Chaotic Leaps: Exiting off the edge of the map causes you to enter through the outer edge of the hex opposite the current hex. Like in Pac-Man. This introduces some delightful chaos and randomness into the system. It also begs caution and requires a few guardrails. e.g., I don’t want it to be possible to exit out the bottom of the most mild weather hex into the top, most severe weather hex. So that exit is blocked.
Lobes: When you are designing your engine to be incremental, you might have a couple of hexes of a similar kind that you want to group together. These can form regions of “lobes” or “rings”. You may then want to have transitionary hexes between regions.
After this design phase, my hexflower is reliably incremental, with occasional chaotic leaps. This satisfies another requirement!
It’s up to you!
I had my cleric start on the bottommost hex. They get to roll for weather once per session, or once per in-game day.
They’re in charge of keeping track of the current weather between sessions.
I adopted the optional rule that the center hex represents no change in the weather. Entering this hex means whatever the previous weather was continues.
As I mentioned earlier, you can easily change the bias of your hexflower grid by adjusting the legend.
I’m not sure why you would do that with a weather engine, unless you’re purposefully steering your players toward some kind of cataclysm. Or perhaps you’ve wandered into an elemental plane where severe weather is the norm.
But I’ve seen other engines put this feature to great use, sometimes including two legends, inverses of each other.
12 6, 7
10,11 / \ 2, 3 4, 5 / \ 8, 9
8, 9 \__/ 4, 5 2, 3 \__/ 10,11
6, 7 12
For example, one engine I saw determined the attitude of the villagers toward the player characters. At the discretion of the DM, the villagers could be inclined to favor them if they have been acting heroically and kind. Or they could be inclined to fear and loathe them, eventually running them out of town, if they have been acting like murderhobos.
Other applications I’ve seen that I like include:
I love the engine, and am excited to find new ways to use it in my games.