Dangermuse is neither dangerous nor amusing

Genre ramblings

Scribbled  · PDF · ◊Pollen source

Two weeks ago, we held a Trait Vote in our game of Burning Locusts. It is well-documented hereTrait Vote Sessions in Burning Wheel, but there is a particular point I want to expand upon as it relates to something that I think role-playing games do very well, even if there is a strong trend against it in the industry. During the vote, we hit a place where the thesaurus could not help describe the changes that happened to the characters. The characters have evolved into something complex enough that we have had to resort to using phrases instead of single words. In other words, we’ve entered uncharted territory.

I’ve seen a lot of cultural changes during my trips around the sun. I’ve witnessed the birth of video games, hip-hop, techno music, computer animation, the web, smartphones, and on and on and on. These were all life changing events that we now take for granted. (I’ve also seen many things I love disappear only to be displaced or replaced by something inferior). None of these things were created in a vacuum. But all of them were paradigm shifts that required a big cognitive leap. It is easy to trace a lineage from innovation to innovation when looking backwards but it would have been impossible for someone looking forward to predict those changes. Those things might not have happened at all or they might have happened differently. In each case, someone walked off the map, and the cartographers had to append to the map to keep it accurate.

I’ve seen the maps change over and over again. I don’t want my possibilities to be limited. Strict genre emulation, re-enactment, and fan fiction don’t put me in that exploratory space. I am not interested in this kind of fan participation in genres (down to specific expressions of genre via licensed properties). This kind of participation treats walking off the map as a failure state.

Genres can serve as a familiar starting place because it is hard for us to conceive of something that doesn’t exist yet. But when we invent or discover something entirely novel, the world grows, even by an infinitesimal amount (as it did in our Trait Vote). I think that’s desirable, even when we start off in someone else’s world. Genre is a bigger unit of change than what happened in our game, but it is built upon these tiny atoms that we create when the thesaurus fails us. Repeat this enough times at the correct scale, and a new genre will emerge, even ephemerally and without an audience or critics to codify it. But I think that works better as a side-effect rather than as an explicit goal.

Like many other gamers, I have spent my whole life obsessing over books, comics, music, video games, film, television, and RPGs. If I find a place in play that I’ve never been to before, that place is bound to be pretty interesting.

I want to know where the map ends and how to recognize when that has happened. I want to know how to resist the instinct to course-correct back into familiar and safe territory. I also want to set up conditions where this exploration is allowed and not judged as a failure state.

Minimal world building I

Scribbled  · PDF · ◊Pollen source

My experience with world building in role-playing games is that it is better to underspecify the world than to overspecify it. This leaves the world open to be defined and altered in play.

So what is the least amount of world building necessary? Gene Wolfe shows here in the The Shadow of the Torturer that a few paragraphs is enough to suggest a vast world that is full of possibilities. In this scene, one character is merely describing the contents of a library, but it says a great deal about the contents of the world:

We have books here bound in the hides of echidnes, krakens, and beasts so long extinct that those whose studies they are, are for the most part of the opinion that no trace of them survives unfossilized.

We have books bound wholly in metals of unknown alloy, and books whose bindings are covered with thickset gems.

We have books cased in perfumed woods shipped across the inconceivable gulf between creations, books doubly precious because no one on Urth can read them.

We have books whose papers are matted of plants from which spring curious alkaloids, so that the reader, in turning their pages, is taken unaware by bizarre fantasies and chimeric dreams.

Books whose pages are not paper at all, but delicate wafers of white jade, ivory and shell; books too whose leaves are the dessicated leaves of unknown plants.

Books we have also that are not books at all to the eye: scrolls and tablets and recordings on a hundred different substances.

There is a cube of crystal here (though I can no longer tell you where) no larger than the ball of your thumb that contains more books than the library itself does.

Though a harlot might dangle it from one ear for an ornament, there are not volumes enough in the world to counterweight the other.

All these I came to know, and I made safeguarding them my life’s devotion.

Burning Plants

Scribbled  · PDF · ◊Pollen source


Following up on the last postRPG relationship mapping with Graphviz, I have updated the Burning Locusts relationship map to reflect developments in session four using PlantUMLPlantUML. PlantUML is a little simpler to use and has more batteries included than Graphviz. I will skip the tutorial for this post but will include the source code.

What to graph

There are different ways to view the game’s people, places, and things. Instead of trying to map everything, for this iteration, I am focusing on the following types of connections because they see a lot of play from session to session:

In the case of working/contractual relationships, several agreements have been made between the player characters and non-player characters. Graphing them helps to visualize the obligations and conflicts of interest.

Currently, the working relationships are:

In later posts, I will zoom in on other types of relationships.

The graph

Source code

This source code is cribbed heavily from Jeremy at Take on RulesUsing PlantUML to Model RPG Relationship Maps.

!theme reddress-darkorange

'PCs: using the person node
person Antonius as antonius
person Ansidora as ansidora
person Frederico as frederico

'NPCs: actor/ for humans, actor for dwarves
actor/ Biagio as biagio
actor/ Maccio as maccio
actor Fiego as fiego
actor/ "Lord Jade" as lord_jade
actor/ "Lady Jade" as lady_jade
actor Vadam as vadam
actor Tumoll as tumoll
actor Ginna as ginna
actor Stavros as stavros
actor "Old Ronie" as old_ronie
actor Charles as charles
actor/ Adriano as adriano
actor Silas as silas

'Factions: using the cloud node
cloud hinterland_players as "Hinterland Players"
cloud thieves_guild as "Thieves Guild"
cloud city_council as "City Council"
cloud engravers_guild as "Engravers Guild"

antonius <-> biagio : "friends"
antonius --> maccio : "uncle"
lady_jade <-l-> lord_jade : "married"
frederico <-r-> lady_jade : "having affair"
ansidora <-> vadam : "divorced"
vadam <--> stavros : "partners in crime"
ginna <-> tumoll : "dating"
ansidora --> tumoll : "mother"
ansidora --> vadam : "runecasted"
silas --> ginna : "ex"
silas --> ansidora : "enmity"
ansidora --> silas : "oath"
vadam --> tumoll : "father"
charles --> ansidora : "father"
fiego --> antonius : "works for"
fiego --> lord_jade : "works for"
maccio --> antonius : "works for"
frederico --> antonius : "works for"
frederico --> ansidora : "works for"
antonius --> ansidora : "works for"
antonius --> hinterland_players : "member"
biagio --> hinterland_players : "member"
lord_jade --> hinterland_players : "member"
adriano --> hinterland_players : "member"
frederico --> thieves_guild : "member"
biagio --> city_council : "member"
charles --> engravers_guild : "member"
old_ronie --> engravers_guild : "former member"
old_ronie --> charles : "mentor"
vadam --> stavros : "oath"

RPG relationship mapping with Graphviz

Scribbled  · PDF · ◊Pollen source

Interrupting my train of thought

Lines of longitude and latitude

Define and refine my altitude

Wire, Map Ref. 41°N 93°W


I recently started running a Burning WheelBurning Wheel HQ game after about two decades away from GMing role-playing games. We are calling our game Burning Locusts.

The Situation revolves around a spooky mercenary company who returns every 17 years to wreak havoc (there is a joke in there if you look for it). It is set in a city called Scintallante that is modelled after Italian city states during the Renaissance period. The city resembles Milan geographically, with an ancient dwarven stronghold in the center called Hartheld. In reality it is two cities: the dwarven city of Hartheld and the human city of Scintallante.

There are three player characters in the game:

For more background, one of the players has written excellent session notes. They can be found hereBurning Locusts: Character Creation, hereBurning Locusts: Session 1, and hereBurning Locusts: Session 2.

As detailed in the Character creation post, the players created characters with a number of interesting relationships and Beliefs right off the bat. To make the most out of this, I wanted to find some way to visualize the connections and observe how they change over time.

Mapping the relationships

I am not a visual thinker so I find that I benefit from forcing myself into that mindset. I also wanted to adopt better organizational habits as a GM. My previous organizational habits from 20 years ago involved writing things down on napkins, so there is certainly room for improvement. So I created a relationship mapAFAIK, Sorcerer by Ron Edwards was the first game to introduce relationship maps as a tool for role-playing games in the The Sorcerer’s Soul supplement to better understand all of the interesting things happening in our game.

To create the map, I evaluated a few options but I didn’t want to use a graphical or a web-based application to do it. I also wanted something relatively easy to use. I settled on GraphvizGraphviz, open-source graph visualization software. Graphviz includes a programming language called DOT that can be used to describe a graph in plaintext using any text editor and turn it into an image.

The graph


A minimal amount of background knowledge is needed to start using the basic features of Graphviz. The lines on the graph are called edges. The lines connect nodes or vertices. That’s all we need to know to begin.

The Graphviz DOT language provides a simple shorthand for expressing connections:

graph G {
    ansidora -- charles [label = "family"]

I have chosen to use an undirected graph for our relationship map because it is easier, ie: the edges do not point in any direction, they are just connections between nodes. In the code example above, this choice is denoted by the keyword graph. A directed graph would use the keyword digraph instead.

If this were directed graph, we would use "->" instead of "--" to express these connections. The label tag should be obvious but to further elaborate–we are labelling this connection as a family connection. Family is not a special concept in Graphviz, it is just an arbitrary label for our relationship map.

Please refer to the documentationDOT Language documentation for information on how to use the language.


When I made the graph, I decided to put each player character in a subgraph to represented who is inside or outside of that character’s circle. This also had the benefit of showing that the marriage between Lord Jade and Lady Jade crossed different character subgraphs via the affair between Lady Jade and Frederico.


I wanted colors to represented the following:

I chose a set of Brewer colorsGraphviz Brewer colorschemes to have a range of colors that will stand out from each other. The particular set I chose is puor11.

The following is a minimal example to demonstrate coloring and styling nodes in a graph:

graph G {
   node [colorscheme=puor11 color=4 margin=0.2 fontsize=12 width=0.5 shape=box style=filled];
   lord_jade -- lady_jade [label = "married"]

There are the attributes from the code example:

Generating the graph

Graphviz can be installed on Windows, Mac OS X, and Linux. Instructions can be found on the website that is linked above.

Any text editor can be used to create a graph file in DOT and some code editors provide extensions to automatically preview the source code.

There are also a few online Graphviz editors such as this oneGraphvizOnline.

This is the complete dot source code for the Burning Locusts relationship map (burning-locusts-1.dot):

graph G {
  size = 10.5;
  node [colorscheme=puor11 color=4 margin=0.2 fontsize=12 width=0.5 shape=box style=filled];

  subgraph cluster_1 {
    antonius [color=8]
    antonius -- maccio [label = "family"]
    antonius -- biagio [label = "friend"]
    antonius -- fiego [label = "teaching"]
    antonius -- hinterland_players [label = "member"]

  hinterland_players [color=2]
  biagio -- hinterland_players [label = "member"]
  lord_jade -- hinterland_players [label = "member"]
  lord_jade -- lady_jade [label = "married"]
  fiego [color=3]
  fiego -- lord_jade [label = "work"]
  thieves_guild [color=2]

  subgraph cluster_2 {
    frederico [color=8]
    frederico -- antonius [label = "teaching"]
    frederico -- lady_jade [label = "affair"]
    frederico -- thieves_guild [label = "member"]

  subgraph cluster_3 {
    ansidora [color=9]
    ansidora -- charles [label = "family"]
    ansidora -- tumoll [label = "family"]
    ansidora -- vadam [label = "divorced"]
    ansidora -- frederico [label = "work"]
    ansidora -- antonius [label = "work"]
    ansidora -- silas [label = "oath"]
    ansidora -- silas [label = "enmity"]

  vadam [color=3]
  silas [color=3]
  tumoll [color=3]
  charles [color=3]
  vadam -- tumoll [label = "family"]
  charles -- tumoll [label = "family"]
  tumoll -- ginna [label = "dating"]
  ginna -- silas [label = "ex"]

To generate the relationship map, run the following command:

$ dot -Tsvg burning-locusts-1.dot -o burning-locust-1.svg

Other work

PlantUMLPlantUML can also be used to the same effect. Jeremy at the Take on Rules blogTake on Rules blog has an example for another Burning Wheel game that I am playing in hereUsing PlantUML to Model RPG Relationship Maps.