I think that the mechanic of trails could be improved, by changing the way paths are handled. Currently the limitation to 4 paths per stone marker (and one per wooden one), plus the issues with many of them being claimed, leads to senseless littering the world with these objects.
In real world you would use an existing path, should it already cover a part of the route, for how far it last - instead of building a new one in parallel.
So here's my wish list for the next version of the road system:Firstly some nomenclature:
- Sign: a starting point for building paths and travelling (in current implementation the buildable Wooden Roadsign/Milestone)
- Marker: defining the route and lane(s) of a trail (in current implementation the small extendable signs and milestones)
- Junction: (new object) a marker that enables to split the graph, allowing paths to form a network (see below)
- Path: an unnamed, bidirectional link between two signs/markers
- Trail: a named, unidirectional chain of paths, ending at the Sign they were build from and starting at (possibly multiple) other Signs
For simplicity, let's call a path an
edge and sign/marker/junction a
node in the
road graph.
Mechanic for paths- A path is the bi-directional edge between the two nodes it links
- Paths are presented at nodes (in their flower menu with 'follow <cardinal direction to next marker>') with the direction being up to a three compass combination (like North-North-West) to make it more clear to where a path leads - this reduces UI clutter of all nodes as only outgoing connections are shown
- Two paths can't go into the same cardinal direction to make them disambiguous (so no two paths leading 'North' from a node)
- A path can be extended from a sign with free space using 'create path', like currently with 'make trail'
- Paths can be extended/connected from/to every node (in range) via the flower menu (as like now), as long the involved node(s) have room
- Signs are able to hold 1 path for the wooden and 4 for the stone type, can be freely build
- Markers are able to hold 2 paths for both the wooden and the stone type, can be placed by 'extend' from a node as long as it has room
- Junctions are able to hold 3 paths for the wooden and 4 for the stone type, can be extended from a marker with 'place junction', work in most other regards as markers as they can't be used to initiate travel (unless waylaid)
- While following a path and reaching a node holding exactly two paths the character continues along the other edge - stopping in all other cases (at junctions and dead ends)
- The ability to in-place upgrade markers to junctions would be a nice thing
Graphic wise I suggest to use the wooden roadsign for the junction and make a new one for the sign (same thing as roadsign, just with only one sign attached). No clue for a stone type junction, but I'm sure Jorb will come up with something nice, possibly simply a scaled down milestone.
Mechanic for trails (roads)- A Trail is a named in-tree that is carried by the nodes and edges of the road graph
- The root (target) of a Trail is the Sign it is created on, effectively turning that Sign into a Named Place that can be reached by following the Trail
- Trails are extended/connected outward (toward the leafs) with the new edge pointing toward the node the extension happened from
- Trails can be extended/connected from a node multiple times, as long as that node (Junction) has (free) paths that do not yet carry that trail
- A Trail can have Signs on multiple leaf nodes of its graph, these can be used to initiate travel along that Trail towards its root
- Being wayled on a trail should allow to backtrack it along the path the character has originally taken to reach that state
- Reaching the root of a Trail should also waylay the character, allowing him to backtrack to where he came from for a while (till he forgets the way)
- Extending/connecting a Trail places Markers as the current implentation does and creates Paths (within limits of the node(s)) on demand
- A Sign can be the root for exactly one Trail only
- A Trail points toward its root exactly along one edge on each node
- A Trail can not be connected through the same edge twice
- A Trail is not allowed to cross itself
- A Trail is not allowed to form a loop
- A trail dosn't stop you like a path does on an junction, as the direction to go next is known
- Trails are invisible at markers, unless being wayled on one (UI littering way reduced)
- Inspecting a node yields a list of all trails and the cardinal direction of the path toward their respective root
- Nodes have no limit on the amount of trails they support, to further their reuse and reduce littering
- Routing a Trail through a Sign or a Junction allows to initiate travel on that Trail from that node, as an arbitrary amount of Trails can be routed through a node only 3 for Junctions and 4 for Milestones are shown - first come, first served
- A node with a dangling end of a Trail shows the usual options to allow extension/reconnection, possibly limiting the amount of ends shown to limit UI clutter (as an arbitrary amount of Trails can be held by a node)
Security- Operations involving placing a new node do the usual permission checks on the spot
- Extending/Connecting a trail is always allowed, as long as the node has room (eg. unused paths on Junctions)
- Extending/Connecting a path does permission check at sign(s) involved
- Destroying a node does permission check at the node and sign(s) of any trail(s) the node currently holds
Travel mechanic- No more teleportation at all: 'travel' is identical 'follow' but with a decent speed boost given as a multiplyer to effective over-ground speed, so the benefit of the boost is amplified when one changes the tile type of the ground to pass over to something resembling a road (paved with stone or brick)
- Travel can only be initially initiated at signs, for both paths and trails, similar as of now
- In case you're able to travel something, 'travel' simply replaces the 'follow' option for that something (less UI clutter)
- Travel weariness generated from travelling (if any generated at all) should only be a tiny fraction of what would be generated by making the same trip with charterstone/porticle, as it is already offset by the time penalty of actually having to cross the map
- Should Travel Weariness play any role here, travelling a path when you ran out will only disable the speed boost, turn 'travel' into 'follow' - instead of completely stopping you from doing the yourney
- Speed boost factor for travel should be *1.5 for paths and *2 for trails, without added stamina drain
- Being blocked while travelling (be it by reaching the root, a dead end, an intersection on a path, a roadblock or a misclick) waylays the character
- Being wayled on a Path allows to initiate travel on the last node reached, enabling you to travel on any path it holds
- Being wayled on a Trail will allow to reinitiate 'travel' at every node supporting the Trail, plus to 'backtrack' it
Differentiation between wood and stone- Stone markers and signs/junctions should have a turning radius (around their turn point) so they naturally form a collision free two-way path, while wooden ones just have a point so opposing traffic will crash into you on them
- Higher capacity for stone signs in terms of paths
- Stone markers are more resistant to decay
- Stone ones are aesthetically more pleasing
Related wishes- Carts are enabled to cross shallow water
- Wagons are enabled to 'follow' (thus also travel), preferably without the constant sound of the whip at every turn.
- Horses (with or without riders) and leashed animals are teached to swim through deep water when the character has swimming enabled, horses with stamina drain from pony power (in case they run out midwater they drown without further questions asked), the latter having a drain on their wellfedness.
- Following and travelling has a smallish chance of turning crossed natural biome tiles into dirt, dirt should be a bit worse for movement (speed/stamina/pony power) than tiles
Reasoning for this and that- Teleportation just sucks. It folds the map dimensions down and makes locality completely meaningless.
- UI clutter as with the current road system in the flower menu would be reduced
- There is no limit on how many trails any path can support, as the the incentive to build stone markers stems from here, them being harder to destroy, the resulting road being collision free, aesthetics and when not being wayled the flower of a node lists only the directions toward the node(s) it is directly connected to (not the names of any trails it holds) so there is no UI clutter from many of them on a single marker
- Turning stone based roads into wider ones reduces their use in 1-tile tunnels, for whynot & fuckthelazyones
- Making paths travel-able at a lower speed boost should give the system more use, plus the abilty to hide away side paths which branch from junctions that people who only travel Trails will pass over
EDIT: Updated to make the mechanic and rules for Trails clearer.