Maps
A tag group can be a place. Turn that on and its tags stop being a list of names and become zones you draw, outlines on a canvas with hands pinned to positions inside them. Drag a hand from one zone to another and it’s rebound to the new zone’s tag.
One thing to hold on to is that a map is a drawing of tags you already have. There’s no geometry in the engine, and nothing in a bundle that a runtime reads as a shape. A zone is a tag, and a site is where you chose to draw a hand. Delete the whole map and the project plays identically.
It doesn’t have to be a map of anywhere
Section titled “It doesn’t have to be a map of anywhere”The vocabulary leans geographic, and the examples are villages and caves, so it’s easy to read all this as being about physical space. It isn’t. A map is any two-dimensional layout of a tag group, and the drawing is for you and whoever reads the project after you.
Not everything people lay out is a place.
Act structure is one. Zones are acts, and the hands inside each one are the beats available during it. Dragging a hand from act two to act three rebinds it, and you can see the shape of the story rather than reading it off a list.
A cast is another, laid out by who is close to whom. Zones are factions or households, and a hand sits near the people it belongs to. Distance on the page carries meaning that no condition does.
A tech tree, a syllabus, a dream logic. Anything where “these belong together, and that one is over there” is worth seeing.
The engine never knows any of it. A zone is a tag whichever way you drew it, so an act map and a village map compile to exactly the same thing.
Starting a map
Section titled “Starting a map”There are two routes to the same thing, because a map is a tag group and both make one. Maps tab ▸ + New map works before you have any, because the box always has a Maps tab. It creates the group and marks it a map in one step. Tags tab ▸ + New map, beside + New tag group, is there if you are already on that tab.
To turn an existing group into a map, open it from the Tags tab and switch on A map under Map. The group’s tags become zones either way.
A box can have several of these, and each is its own map. A box with none still has the Maps tab, which then holds an invitation rather than a canvas.
What you can put on it
Section titled “What you can put on it”The strip under the canvas carries the four things you can add:
- Zone traces an outline for one of the group’s tags. A tag with no outline yet is offered when you start drawing, and you can also draw a shape first and make the tag with it. Drag a corner to reshape, drag a mid-point to add one.
- Background is a picture behind everything, to trace over. Move it, scale it, fade it, lock it so clicks pass through, or hide it.
- Frame is a labelled rectangle that describes the map to whoever reads it. It means nothing to the engine.
- Comment drops a thread straight onto the canvas as a marker. See Reviewing.
Hands are placed from the map’s own side panel. A hand with no position yet is offered there.
Sites and overlapping zones
Section titled “Sites and overlapping zones”A site is a hand’s position on this map. Drag it into a zone and the hand is rebound
to that zone’s tag. That’s a real edit to hands.storylethands, and one undo step.
Zones can overlap. A market square inside a district is a perfectly normal thing to draw, so “which zone is this site in?” needs an answer, and the rule is: a site belongs to the frontmost zone containing it, and to no other. Frontmost means the one drawn on top, which is the one you can see at that point.
Drawing one outline inside another does not make it a sub-zone. Zones are tags, and
tags don’t nest, so a site sitting inside both village and the-inn belongs to
whichever is in front, and only that one. Filter to the other and you won’t find it.
You can’t see that on a drawing, so the editor shows it. A site sitting inside more than one outline wears a dashed amber ring, and selecting it explains which zones don’t count. It’s a warning, not an error. Nothing is broken, and you may well have meant it.
If you want containment to mean something, use two tag groups, say a region group and a
place group, and bind a hand in both.
Reading the map
Section titled “Reading the map”Zoom and fit live in the bottom-right control: fit everything, fit the selection,
zoom out, back to 100%, zoom in. Home fits, F fits the selection. The full key list
is on Keyboard shortcuts.
A site is coloured by its zone, so a site whose colour disagrees with the ground under it has been moved off the zone it’s bound to. A hollow site is a hand nothing is binding. It marks a spot and no more.
View ▸ Coverage Overlay, once you’ve run a coverage test, tints sites by how much play reached them. See Coverage testing.
Where the map is stored
Section titled “Where the map is stored”Positions live in map.storyletmap, the box’s map shard, and nothing else does. Which
zone a site is in is not recorded there. That’s the hand’s binding, in
hands.storylethands. So two people rearranging one map produce a position conflict, not
a content one. See The shards.
A site is the one bit of arrangement that leaves the project. It ships in the bundle’s
maps block when you export with the map, because where a hand stands is where a screen
or a kiosk stands. That’s why the map has a file of its own rather than sharing one with
the node canvas.
Projects made before this split kept the map inside view.storyletview. Storyletter reads
it there and moves it the first time you touch the map, and storyletengine format moves
the whole project at once.
Open source under the MIT licence, made by Ian Thomas.