I did a thing! I'm proud to present my own set of TTRPG tools. Although it did take a bit longer than expected.
It all started because I wanted to create Site graphs that looked similar to the ones in Mystic Bastionland. Up to that point I was always "handdrawing" them, and they didn't look that great. Apart from that, it also took me quite some time. And I could imagine that other people might have a similar "problem". Although you could be totally fine, by just sketching them out on a piece of paper.
I still choose the option to overengineer this and create a little tool to generate them.
My initial idea was to just play around with GraphViz. I used it in the past to generate generic graphs, so that would be a good fit. It is flexible enough to make graphs that look pretty similar. The only issue was, that the nodes were not aligned to a hexagon.
So I took the base syntax of GraphViz and modified to my needs. Instead of writing 1 -- 2 [style=dotted]
for a secret path, I could abbreviate this as 1 .. 2
. In the end the syntax is very close to GraphViz but I added a lot of "syntactic sugar" to make it very fast and easy to create Sites.
Take this example:
site MySite {
1 -- 2
2 -- 3
3 xx 4
3 -- 5
3 .. 6
5 xx 6
1 [entrance]
2 [type=danger]
3 [postern]
5 [type=danger]
6 [type=treasure]
}
This would lead to the Site as presented in the core rules of Mythic Bastionland.
It does not exactly the same as in the book, but it is the same (they're isomorphic).
The biggest challenge was actually to align everything to the hexagon. I'm currently using a very brute-force approach by just trying out every permutation of possible position that every node could be and checking if I can come up with a proper graph (an embedding).
There are certain constraints that make this harder. First, every path should not be longer than 1 (or all paths have the same length). The second is, that paths are not allowed to cross each other. Third, it should be somewhat "minimal", in the sense it should occupy the least amount of space.
My approach works okay-ish for low number of nodes. This is because the algorithm can degenerate to factorial time. Which is very bad. 6-7 nodes works well enough that I don't bother much optimize it. The higher I go, it might take several minutes to compute and sometimes doesn't even find a proper embedding.
Once I had the program I imagined, I could put it all onto a nice website and also slap on a generator for good measure as well. The Mythscribe's RPG Tools were born.
There will be more tools in the future. I will release them from time to time, so stay tuned. There are some improvements I want to do on the Site generator for example, that let's you create a complete dungeon.