Redesigning Node Links

Hey, all! We’re currently in the process of entirely rethinking and redesigning the Node Links feature, and we’d like to share with you our current design candidate and hear your thoughts!

First off, why do we want to change the current design?

The main reason is that we want to add many new features and customization options to links so that they become much more powerful and useful to you. The current design has served us well up until now to get something working rather quickly, however it is arguably unintuitive, quite limited and its current architecture (code-wise) would be difficult to build upon to add more features. We have therefore decided to scrap it to build a new and improved linking system.

Here’s what we’re thinking.

The current system relies on linking two nodes from menus only, and then automatically linking tokens on the board. While linking through menus has advantages, it can also be cumbersome, and the current automatic assignment of links between tokens is unintuitive and severely limits customization.

We believe linking should be very straightforward and easy. To this end, we would like the user to be able to select a token on the board, drag a link from an anchor point around it and drop it on another token directly (or one of its anchor points), effectively linking two nodes in two clicks. This would also work to visually link Tokens of two Nodes which are already linked, giving full control of how Tokens themselves are linked to the user.

Having said that, we still want the user to be able to link two nodes from menus such as the Node Info Panel in the Editor, or the Node Info floating window on the board. Still with the intent of giving full control to the user, the menu will prompt the user to choose a default configuration to display this new link on the Board (eg: link all tokens for the two Nodes, link tokens in pairs, do not link any tokens, etc.).

One big change we want to introduce is the ability to add multiple links between two nodes. There might be a multitude of ways two nodes could be connected, from family relations, to all the events they’ve been trough together. However, it would not be feasible to have as many visible links on the board between two tokens as there are between those two nodes in the case where they have a myriad of links between them. Either the links would overlap, or they would jumble into an unusable mess. This therefore raises the issue of how to display those links.

We have decided to go with a design analogous to how Nodes behave on the Board and use a Token based system. However, as stated in the paragraph above, having a token per link wouldn’t be realistic. To remedy that, links between two Nodes will have a single Token which will be a visual representation of all the links between those two Nodes for two given Tokens, and the user will have the ability to cycle between representations for each link those two Nodes possess (plus one global representation indicating that those two nodes have one or more links). We want each of these representations to be fully customizable (color, line width, line style, direction, etc.).

Another very cool feature we would like to introduce to this system is the ability to “slot” a Node inside a link. This would, in a way, allow a Node to become the link between two other Nodes. A very common use case would be to have a Clue Node linking two other Nodes together; but it could be anything, a Location, a Plot Item, etc. The idea is to empower links with content so they become meaningful and customizable.

Here’s a little sketch of the global philosophy for the new design:

Of course, everything we’ve explained here is still subject to change based on future reflections, discussions, realizations while implementing, and of course feedback from you!

This is just us sharing our current train of thought while working on improving this feature. Hope you’re as excited as we are to see where this goes!

We’re very eager to hear your thoughts on our Discord server!