… as it were.
One of the more valuable aspects of the Echelon Reference Series in my mind, and one of the most time-consuming, is the collection of diagrams showing the prerequisite relationships between game objects.
That is, many feats have a diagram that illustrates the prerequisites of that feat, and the other game objects that have that feat as a prerequisite. This applies to other game objects, including prestige classes and class features such as rage powers, mystery revelations, and rogue talents.
The diagrams to date have been fairly completionist. Basically, in building the diagram I start with my focal node, find all child objects, then work backward to find all prerequisites of each. For instance, in the diagram below for Shield Focus, the Sisterhood Style feat (top of the third column from the left) requires Weapon Focus, which itself requires weapon proficiency.
This particular diagram is machine generated using the DOT program in the GraphViz package. I won’t go into detail here, but I’ve explained more in Visualizing Game Information. For the purpose of this post, I have a few observations.
- It is easy to to add many nodes and edges to a graph. “A -> B” is pretty easy.
- This ease also makes it easy to add enough nodes and edges to make a diagram difficult to follow.
- A diagram that is hard to follow is a diagram with limited value, and redrawing can make it more useful.
In fact, these observations are why I suspended including them in the Echelon Reference Series so I could instead focus on getting all the books out before coming back to the diagrams.
A draft of all the base class books have been out for quite some time, for the PRD classes at least (I’m working on the rest, I promise! But cleansing Product Identity is a lot of work). I needed a break from other work so I’ve come back to work on the diagrams.
Considering the complexity of the diagrams when I a include as much content as possible, I decided to take a step back and see if I can simplify things a bit.
The first, and biggest, step is fairly simple: only include nodes for things that are either prerequisites of the focal node (Shield Focus) or child objects that have Shield Focus as a prerequisite. Don’t run down other prerequisites, exclude them entirely. Also, exclude prerequisites that cannot be parsed — in the diagram above, Sisterhood Style requires Weapon Focus (longsword), which in turn requires weapon proficiency… which is not a feat, but a state of character knowledge. Remove that.
However, in doing so I lose the knowledge that some game objects have other prerequisites. Shield Focus alone is not enough to qualify for Sisterhood Style. When nodes are excluded, add markers to the nodes retained. In the diagrams on this post, the markers are almost arbitrary.
- A = ‘Alternative’. At least one of the prerequisites can be met in more than one way. Thieving Shield equipment trick (about halfway down) requires Shield Focus feat or Armor Training class feature. I’m removing the ‘or’ and Armor Training, so I’m adding an ‘A’ marker to Thieving shield to indicate there’s a wrinkle, so the reader knows to look that up that equipment trick if they need to know more.
- H = ‘Hidden’. This diagram shows everything the focus object leads to, but this particular node has other prerequisites that are not shown in the diagram. Look to the object definition to see what that is. Defended Movement and Feint Defender, among others, have this marker.
- ‘U’ = ‘Unparsed’. No longer show nodes for things I cannot parse, but mark that this node represents a game object with prerequisites that could not be parsed. Again, tells the reader to go look at the object definition for details.
This makes the diagram much simpler, to the point I probably could largely automate recreating diagrams for the books. I expect some would still need manual intervention, but because I mostly no longer have these snarls of crossed edges and complex relationships, I anticipate the number will be small.
This is very close to being something I can mostly automate. It likely would be a showpiece of sorts. I would probably look at rearranging things a little so that big blog at the top of the right hand side could be simplified, but I’m not certain I can. I can see shuffling a few other things (moving Missile Shield below Improved Shield Focus might open the diagram up a little bit so it’s not as crowded).
Still, I think as a first cut an automated version of this could be acceptable. I think I can fit it on a single page. It’s a little unbalanced, I know some tricks that would allow the diagram to make better use of the space, but… I am sure this one will work, without intervention.
(For those curious, move Shield Proficiency and Shield Focus to the top, drop a line down from Shield Focus, move the ‘single-step’ children to the left of that line, collapse the space to the right, and then draw the arrows out from the long vertical line to the children. Admittedly feels weird to have the sequence go left from a node, usually these diagrams read left to right, but sometimes it is expedient. Actually, after counting, I might move only most of the single-step children to the left, and keep the left and right sides more balanced.)
What to do with the hidden nodes? Go look up those game objects, of course. Once we find Sisterhood Style (in this book or another) we can see that diagram.
Okay, this isn’t too hard on the eyes, and I didn’t need to clutter Shield Focus more than necessary. Still, I see Weapon Focus has an unparsed prerequisite (I know it’s proficiency with a longsword, Weapon Focus is pretty well-known), but Sisterhood Rampart also has a hidden prerequisite. Let’s look at that one as well then.
Ah. Shield Wall. Not needed for Shield Focus or for Sisterhood Style, but is a prerequisite for Sisterhood Rampart.
Closing Comments
I think I can live with these changes. It is my nature to try to be complete (it’s part of why my blog posts can be so heavy), but when it comes to these graphs showing prerequisite dependencies I feel like that tendency makes diagrams harder to use, and thus of less value, than they could be.
Keeping the diagrams to only the prerequisites of the focus object and the children that have this focus object as a prerequisite can greatly simplify the documents, making them easier to read. It can be necessary to look in another place to find out what the missing nodes are, but since this is a thing I expect the reader would only do if they’re interested in that object, I think the reader would be likely to do that anyway. Assuming that other object is in the same document there will be a hyperlink on the node anyway, so it would be just a click away.
Even more, if this simplification allows me to automate creating most of the graphs, so I only need to intervene infrequently, I see some benefits.
- I actually have the diagrams in the books, finally.
- I can build different diagrams for the different data sets. Right now the ‘PRD-Only’ and ‘3pp+PRD’ versions both use the same diagrams because it was not practical to differentiate. Now it can be.
- As more content gets added, I can update the diagrams without it being too arduous. I’m not there yet, but I can imagine storing the intermediate steps so I can compare the content of the automated diagrams over time to see how the content changes, and update when appropriate.
Now, on to the coding.