(from a conversation on MiniCubes)
Alex Schroeder: A while ago I wondered how one would use a simple Zelda like environment for information organisation: basically you have a square map for spatial organisation (“walk around on the map”), plus the ability zoom into squares (“enter buildings or caves”), to link remote information (“gates” or “teleport”), and local interaction (“talk”, “fight”, “read”, it all depends on the other agents present in your location).
I’m looking at the screenshot above and wondering, how much of a match it would be…
0101: A ten-foot-tall black iron fence blocks the way here. Some of the spikes at the top of the fence are adorned with skulls of humans and other humanoids.
The gate is large enough to admit a giant, made of wood and iron and decorated in bronze, held together by spells. The doors show a crowd of demonic faces, teeth, horns, claws, and bulging eyes.
To the right of the gate stands a massive tower that had its top blown off. Over the years, this has allowed plants to gain a foothold. Bushes and grass grow from the top like green hair from a huge stone face.
The bellowing of horny hill giants can be heard far and wide. The walls and the tower are their love nest. 3 hill giants led by Sheep Thrower (HD 8 AC 4 2d6 F8 MV 12 ML 8 XP 800). ｢300 platinum coins. 7 jewelry. A prayer of summoning (the vulture demon The Tentacled Name of Giants, from Sandstein, Pazuzu’s tower in Vanaheim: HD 8+1 AC 5 1d4/1d4/1d6/1d6/1d8 F16 MV 18 ML 11; flying; only harmed by magic or magic weapons).｣
A stair leads up to the top of the tower but nobody ever takes it for up there the air is unnaturally cold and half-transparent spectre is staring at the necropolis below. “Everyone I know has gone away, in the end.” All they are interested in is talking about the great armies they took to the north and to the west, how they fought the armies of Bila the twice Powerful, the manoeuvres they executed, the traps they set, the princes they had assassinated. This is Queen Chlodoberta. Turning the conversation away from their achievements makes them very irate (HD 6 AC 2 1d8 + drain 2 levels F6 MV 15 ML 11 XP 600; only harmed by magic or magic weapons; immune to sleep and charm; summon 1d4 servants with the same stats). ｢12 jewelry. A flying carpet (four people).｣
The valley is filled with ruins. This must have been a large monastic complex in its heyday. These days the ceilings have fallen, walls have crumbled, weeds are growing everywhere and anything not made of stone has rotten away. It’s hard to say what these buildings were used for. Here you can see an engravings of a bird man, over there is an engraving of a star with eight outward pointing daggers.
In the middle of all this is a column an perched on it, 60ft above the surrounding land rests the sphinx Childsind (HD 5 AC 6 1d6/1d6 F10 MV 15 ML 9 XP 500; cure disease 3×/day, raise dead 1×/day, summon tengus (2d6) 1×/day: HD 5+1 AC 6 1d8 F10 MV 15 ML 8; flying). Tell her a good pun and she’ll be friendly. Answer her riddle to be granted a boon.
I was before the world began,
And shall forever last;
Ere the first born was a man,
I’m from the distant past
Your youthful moments I attend,
And mitigate your grief;
The industrious peasant I befriend,
To pris’ners give relief.
Make much of me if you are wise,
And use me while you may,
For you will lose me in a trice.
As I for no man stay.
｢Red Waters｣ starts here.
0102: A white dragon called Ice Bone the Sleeper lives in a ruined mountain fortress guarding the approaches to the ｢Dead Teeth｣ (HD 6 AC 3 1d4/1d4/2d8 F6 MV 24 ML 8 XP 600; ice (as much as the dragon has hp left, save vs. dragon breath for half)). ｢10 jewelry. A map of the dungeon The Miry Hole (0605).｣
0103: These mountains are called the ｢Dead Teeth｣. Between these cruel stone peaks lies a sea of ice: a glacier, slowly inching towards the warmer lowlands. Up here, passage is difficult. Only attempt a crossing with a mountaineer or you will all end up dead in a crevasse. There is a dwarven forge called Hammer up here. This is a small forge. 17 dwarves live and work here (HD 1 AC 4 1d6 D1 MV 6 ML 8 XP 100) led by Ingvór Redpot (level 3). Unused carpets rolled up and stacked up. ｢10000 gold coins. An elven long bow +1 with elven runes in memory of Trunk Master.｣
0104: The glacier of ｢Dead Teeth｣ ends at a small lake. A cryohydra lives up here (10 heads, HD 10 (8hp per head) AC 5 1d10 per head F10 MV 12 ML 9 XP 1000; whenever a head is lost, two heads regrow the next round (up to 12) unless the wound is cauterised using ice or fire (a melee attack with a torch will do); ice (as much as the hydra has hp left, save vs. dragon breath for half); poisonous blood (cutting off a head with a melee weapon exposes the attacker to it: save vs. poison or die; ｢*hydra’s blood* is worth 5000gp each to an alchemist｣)). The glacier up here is the work of a hydra, a living manifestation of the ice realm. ｢3000 gold coins. A compass of hell, blessed by Hel (it has two pointers: one points to the nearest danger, the other to the nearest safe place).｣
and so on…
Alex Schroeder: This kind of ZoomingUserInterface has discrete zoom levels, and a language based on our life experience: geographical features, buildings, people. Or like in Neuromancer, you could have Ice, and walls, and monsters. What doesn’t serve is the output of a typical mind-map software or a graph viz things with bubbles and lines.
soundtrack for this page: https://www.youtube.com/watch?v=jpyMaQ6afLk
Yeah, – I think the idea of a MemoryPalace? or what have you, for the storage of information, is quite natural – as natural as a temple, or the Egyptian idea of publishing: “Let’s write on everything.”
And the mind-mapping software output or automatically generated graph-viz output (SpringModel output) doesn’t help.
Something that irritates me about the dungeonfs is that it is path based.
I’d prefer that nodes have:
Looks kind of silly to me, but there it is.
I have some recollection of ESR mentioning/promoting the idea of a text adventure filesystem interface, where you would pick up files, wander elsewhere in the filesystem, and drop them.
This suggests for me the idea of: “What is a file?”
The uniformity of files is their virtue in Unix. But we can conceive of other kinds of manipulations one would do with files, and types of files.
Permission systems naturally lend themselves to considerations of spells.
There might be some common operations that lend themselves to common metaphors, and uncommon or meaningless operations, that, with the proper selection of metaphor, might be rightly occluded. (I’m thinking now of all the weird unix directory permissions, that feel somewhat strange or unusual.)
A system of metaphors invites a “common sense,” a way of thinking or visualizing that affords (WhatIsAffordance) some ways of interacting, and conceals (if not outright prohibiting) others.
I can imagine for example, entering a room, and there’s a filing cabinet. The filing cabinet has different sections. There’s also a scroll laying out on the table, and perhaps also a giant chalkboard.
The filing cabinet contains a bunch of documents – okay, for various purposes, and grouped by folder. But the scroll laying out on the table is the principle documentation for a user wandering through the room. And whatever is written on the chalkboard is clearly intended to be temporary – written to and erased with frequency.
A given file in the folder could be unique, or not. It has a presentation available to the user who looks at it, which is different than the casual glance when a user looks in the room and happens to see it listed, which is different still than the binary representation of the file.
So for example, there might be a cube. It’s something that indicates status information about network traffic, or something. I don’t know.
Alex Schroeder: This reminds me of something for Gemini. The standard only has one way of sending information from the client to the server: the server sends a prompt and the client can send a reply, which is the same URL and the reply encoded as a URL keyword (since clients always send a URL and servers always send and a status code, a MIME type, and optionally a response).
Client: gemini://example.com/name Server: 10 text/gemini What's your name? Client: gemini://example.com/name?Alex Server: 20 text/gemini Hello Alex
The problem is, of course, that the server can’t send a form, the client can’t send name-value pairs. It’s just—text. But that got me thinking: if the server was basically running Inform, then we can think of the server as text adventure and whatever we can say in consecutive interactions is just as rich. The server can ask us for our name, our preferred in-game profession, starting point, and so on. If it’s well written, we can ask it to revise certain items, we can ask it to show us an overview of what we provided, and so on. (This also works because servers can implicitly provide sessions that are under a client’s control by requesting a client certificate via TLS – if the client does that, a session key is implicitly established via the client certificate’s fingerprint.)
“But in my heart, I carry my own dream: to have a client that offers a written natural language UI: there is no need for forms because it information between client and servers is negotiated in a back and forth natural language, text mediated exchange until the system has the information it needs. UIs are designed Inform 7 style. And for that kind of setup, the Gemini protocol and markup would be good enough.” – The UI, on my blog
I guess that since I would like the system to be easy to modify, the Inform setup would have to be really involved (including object cloning and naming), or it would have to be a simple MUSH. That presupposes multiple users, of course. Then again, why would anybody want a single user system, ever? I kid. Of course many people are still looking for fundamentally single user experiences.
Anyway. A conversational interface. Perhaps even as a stand-alone, local software, which stores the information in a simple SQLite database. With object creation and text parsing rules like Inform 7. User editable like a MUSH. Potentially federating with friends on a list. At least including something akin to email or chat. We could send objects to our friends. Those objects could be books, containing text, like books. 😀
Often times, I think about “Information Walleting.”
The idea is that you have commonly known locations for things, that people can somehow keep separate in their heads.
So for example, “_” in Perl, which I understand is a kind of “it.” If something happened and it was returned, it’s stored in “it” (_). It doesn’t need to be explicitly said – it’s basically “in your pocket.”
Well, what if we had richer wallets?
In ASM, you have your registers – AX, BX, CX, DX, … (I’m dating myself here, I know.)
And in Forth, you have your two stacks – S & R. “S” is the primary stack,” which is automatically referred to when you push or pop things. And then there’s the return stack, “R”, which you can explicitly push and pop to.
The architecture is “assumed.” You’re supposed to always know that these things are around, and there are conventions for their use.
When there are standard mechanisms and conventions for laying things out, then the programmer needs to specify less, because more and more is just common knowledge.
Well, why can’t we have richer structures than “it” or two stacks? If there are things that are just assumed, perhaps there are higher complexities of stuff that we can do.
Alex Schroeder: The benefit of using the natural world as the source of metaphors is that it is full of “laws of nature” that are common knowledge. For example, gravity causes things to fall down, friction causes things to stick, physical bodies cannot overlap, and with a few of these “laws”, you can pile bricks onto each other and start building. If you’re programming a building game using blocks, you have to start all over again, and think of all of these. Other wise blocks without support hang in the air without falling down, ice isn’t slippery, glitches happen, and so on.
We use these metaphors ever since the Mac people started using the paper offices as the source of their language for the paperless office. The trash, the desktop, the notepad, the page, the file, the directory… sure, you need to learn these terms, but you can draw inferences from the real world, and as long as it’s well written, those inferences will hold inside the program. Compare this to the path, the mouse, the buttons, the wheel, the display, the pointer, and all the other technical terms that you have to memorize. What can you do with a pointer? Who the hell knows.
This is why I like the map, and walking along the map. And who’s to say that “n, l, n, l” (which is short for “go north, look, go north, look”) isn’t just as fast as “cd .., ls, cd .., ls” (which is short for “change directory up, list, change directory up, list” except we’re so used to the abbreviated command names and the cryptic notation, and feeling that we’re in some weird sort of “tree” that goes “right” but also “down” somehow, and where are the two “panes” I remember from the old days of the orthodox file managers).
Anyway… I think we all know what I’m talking about.
Alex Schroeder: How do we get started?
@xerz suggests the following:
None of these seem to have the kind of playful approach I have in mind.
Sunir Shah: I’d just like to summarize some of the thoughts I collected from academic work during my Masters on this, if it helps develop this idea.
Because ideas are not organized in 2 or 3 dimensions like space, but linked through relationships, they can have a ton of “directions” to travel to reach the next idea.
MindMaps are a popular spatial way of organizing ideas. However, they are a mess. Perhaps because they have unlimited and unconstrained linkages.
The human mind however processes information using all systems it has, including spatial, so by creating a mess, you are cutting off spatial reasoning.
Limiting relationships between nodes to 4 by organizing ideas into squares that must touch at the edges has power not only in focusing linkages to priorities, but letting the mind use spatial reasoning.
However, you actually do have 3 dimensions in a square-tile map. You can zoom in and zoom out of a square-tile, creating a sub-map or making a tile as part of a larger map.
Like rooms in buildings in cities in counties in countries, you can go up and down levels of abstraction.
This works well with how the human mind already organizes information.
Also we understand intuitively that spatially related ideas may transact with each other. Factories move products from one building to another. Towns trade.
There are a couple of books on this on my bookshelf. MappingCyberspace and TheAtlasOfCyberspace? (for a coffee-table version); and TheSocialLogicOfSpace?. I gave up reading these, but maybe I’ll come back to them for summer reading.
Alex Schroeder: Yeah, this makes sense to me. My zoology degree had me think a lot about landmark navigation, for example. I think that’s why MiniCubes is just a start. It has very abstract boxes, which makes me think of a two dimensional arrangement of wiki pages, which is nice. It also has recursive “insides” of boxes, which is great. It also has labels and arrows and colour coding “outside” of boxes, which is even better. I guess a next level for me would be symbols, like a calendar emoji or a notepad emoji; or images (of people, of places). Both of these to add recognizability to labels, but also just as landmarks. You can have a mountain, a tree, a forest, a road, a house, a village, without any of them having to be an actual box in the Mini Cubes sense. They just act as landmarks. Sure, one could then say: why not treat every tree as a box? Maybe… I don’t know if a game of Zelda would gain or lose if you could potentially enter every tree. My suspicion is that we can allow it, but that we should aim at keeping the metaphor alive. No entering of trees should be the default. If you do enter a tree and discover the magic kingdom inside, it should be a surprising and rare event.