A happy new year to everyone. I am about to start a new homebrew campaign and preparing the first adventure for it. The player characters will travel with a caravan through the desert for a while. I will have a couple of NPCs to juggle and thought it would be neat to have their relations visualized in Campaign Logger for easy reference.
I approached it with the fabulous mermaid integration and abused common diagram types for it. Please, let me know what you think. What have you used to visualize relations? Do you have suggestions for improvements?
Entity-relationship diagram
My first try was an entity-relationship diagram. I found it very cool that I could assign attributes to each npc. The example is in German "Rolle" means "role" and "Volk" means "race". I just the one-to-many relation type to give the relation a direction because it resembles an arrow. Arrman is Payar of Opalwind (which means father in the Riksharr's native tongue).
Pro's:
- Structured way to display attributes.
Con's:
- The relations (the lines) are non-intuitive to read and are cluttered with unnecessary orthogonal lines.
- The code (see below) is cluttered as well as you cannot use the alias feature. For every relation I have to type "Arrman Weißhaupt" again. Unless, @JochenL updates mermaid to at least version v10.5.0+ (currently v9.4.3).
Flow Chart
The other diagram type I tried is the good ol' flow chart. Turned out that mermaid is arranging the boxes in exactly the same way as in the other diagram type. It just looks different.
Pro's:
- NPC boxes and relation lines highly customizable. (There's one player character in the view that I wanted to highlight.)
- Relationship lines are intuitive.
- NPC's can be abbreviated for further use in the definition of relations.
Con's:
- The attributes are not shown in a structured manner.
I approached it with the fabulous mermaid integration and abused common diagram types for it. Please, let me know what you think. What have you used to visualize relations? Do you have suggestions for improvements?
Entity-relationship diagram
My first try was an entity-relationship diagram. I found it very cool that I could assign attributes to each npc. The example is in German "Rolle" means "role" and "Volk" means "race". I just the one-to-many relation type to give the relation a direction because it resembles an arrow. Arrman is Payar of Opalwind (which means father in the Riksharr's native tongue).
Pro's:
- Structured way to display attributes.
Con's:
- The relations (the lines) are non-intuitive to read and are cluttered with unnecessary orthogonal lines.
- The code (see below) is cluttered as well as you cannot use the alias feature. For every relation I have to type "Arrman Weißhaupt" again. Unless, @JochenL updates mermaid to at least version v10.5.0+ (currently v9.4.3).
Code:
```mermaid
erDiagram
"Arrman Weißhaupt" {
Rolle Karawanenfuehrer
Volk Riksharr
}
"Indarr Weißhaupt" {
Rolle Logistik
Volk Riksharr
}
"Opalwind" {
Rolle Karawanenwache
Volk Riksharr
}
"Goldknochen" {
Rolle Karawanenwache
Volk Riksharr
}
"Smaragdschatten" {
Rolle Karawanenwache
Volk Riksharr
}
"Seidenleicht" {
Rolle Karawanenwache
Volk Riksharr
}
"Arrman Weißhaupt" }|--|{ "Indarr Weißhaupt" : Nurdama
"Arrman Weißhaupt" }|--|| Opalwind : Payar
"Arrman Weißhaupt" }|--|| Goldknochen : Payar
"Arrman Weißhaupt" }|--|| Seidenleicht : Payar
"Indarr Weißhaupt" }|--|| Opalwind : Mayar
"Indarr Weißhaupt" }|--|| Goldknochen : Mayar
"Indarr Weißhaupt" }|--|| Seidenleicht : Mayar
Goldknochen }|--|{ Smaragdschatten : Nursala
```
Flow Chart
The other diagram type I tried is the good ol' flow chart. Turned out that mermaid is arranging the boxes in exactly the same way as in the other diagram type. It just looks different.
Pro's:
- NPC boxes and relation lines highly customizable. (There's one player character in the view that I wanted to highlight.)
- Relationship lines are intuitive.
- NPC's can be abbreviated for further use in the definition of relations.
Con's:
- The attributes are not shown in a structured manner.
Code:
```mermaid
flowchart TD
aw["Arrman Weißhaupt
Rolle Karawanenfuehrer
Volk Riksharr
"]
iw["Indarr Weißhaupt
Rolle: Logistik
Volk: Riksharr
"]
opal[["Opalwind
Rolle Karawanenwache
Volk Riksharr
"]]
style opal fill:#09993c,stroke:#085422,stroke-width:2px,color:#fff
gold["Goldknochen
Rolle Karawanenwache
Volk Riksharr
"]
smaragd["Smaragdschatten
Rolle Karawanenwache
Volk Riksharr
"]
seide["Seidenleicht
Rolle Karawanenwache
Volk Riksharr
"]
aw <-->|Nurdama| iw
aw -->|Payar| opal
aw -->|Payar| gold
aw -->|Payar| seide
iw -->|Mayar| opal
iw -->|Mayar| gold
iw -->|Mayar| seide
gold <-->|Nursala| smaragd
```