42: Stuck in the MUD
Over the last week I’ve been puzzling over the ideas around MUDs I was talking about in https://awarm.space/newsletter/40-roguelikes a couple weeks ago.
As a quick recaps MUDs are/were multiplayer text-based games that you can connect to over a terminal. If you’ve ever played a text adventure, writing things like “go left” or “pick up the key”, it’s like that, but with other people!
One of the most evocative features of some MUDs is the ability for players to create the world while in it. They can write descriptions for objects, create new scenes or rooms, and even write scripts for how different things behave.
Seeing the custom built MUD that was built for the Rogue Like Celebration got me starting to collide the idea of MUD with all the work I’ve been doing with Fancynote over the last year.
Why I’m excited
I’ve been struggling over the past couple of months to integrate a bunch of different ideas into a cohesive vision/goal for Fancynote. The overarching goal of the project is to make it as simple and cohesive as possible to take write document and write programs that interact with them. But that can mean a lot of different things!
In particular I’ve been having a really hard time sperating the editting experience of a document, from the interactive experience. Taking an action is very different from editting some text.
A MUD room presents an interesting interaction mechanism. The room has a description, it’s current state, that the player can read. They can then interact with it, by send a message. This messaging based system is interesting for a couple different reasons:
- It meshes really nicely with the event-log system I was talking about many newsletters ago
- It can easily be extended into multiplayer/social experiences
- It’s explicit, the player always knows what they’re interacting with and what they’re trying to do
Under this model, document’s are rooms! Editting a document then becomes a very different operation, one of changing how a room responds to messages.
Hold up
As I’m writing this I’m realizing that communicating this would be far easier with a prototype or a visual explanation. So I’m going to cut myself short here and set that as the goal for next week! I have the beginings of a simple API drafted up, but if it turns out to be too hard to implement, I’ll switch gears to whipping up a prototype in Figma.
It’s been a while since I’ve used this newsletter as social pressure to make something, but it’s one of my favorite use-cases for it, so thanks for pitching in!
See you next week with something a lil more substantial.