I’m fully rewriting the tildemush MOO engine as hermeticum and actually plan to release it for real this time ^_^
A few years ago I shipped an alpha version of a new MOO style system called tildemush. It was crude in many respects, but did function. In addition to basic account creation and chatting features, it supported:
- a custom lisp-like language called WITCH for scripting objects
- a bidirectional key/value system for object metadata mutated through code
- a permission system for objects
- an in-client editing interface for objects’ code
- ability to create rooms in client and move among them
- a way to view a map of the world’s rooms using ascii graphics
- support for transitive and intrasitive verb handling
Unfortunately, it had an insurmountably large amount of technical debt and continuing development on it was not pleasant. I shelved the project for almost four years, seriously unwilling to admit that I felt it was unsalvagable. I was not able to shake the dream of seeing this project through, however, and decided it was worth a full rewrite.
Thus, this blog post serves as an announcement of Hermeticum, a full rewrite and re-imagining of tildemush. I waited to make a statement like this until I actually had something working. I’m pleased to say I have a rudimentary client and server going in the Go language, including a new version of WITCH powered by Lua instead of Hy.
The vision of the project remains the same: a social, creative place targeted at the tilde town community that embraces the spirit of MOO/MUSH/MUD/MUCK engines with a fresh perspective.
Though huge features are still missing, I am very excited about the foundation I have laid and am more optimistic on delivering a compelling experience than I ever was with tildemush. If you want to follow along, I’m tracking progress in a roadmap file.
You, dear hypothetical reader, might be asking why I’m bothering with all this. It’s 2022; there are both decades-old existing MOO/MUSH/MUD/MUCK engines as well as a whole world that has moved on from them. Why not try and revitalize interest in existing technology? or just go live inside of the metaverse forging NFTs or whatever with my digital blood, cyber sweat, and virtual tears?
I have, since youth, been obsessed with the idea of being “inside” a computer. To this end I have created things like tilde town, murepl, and other communities and technologies long since dead. I have also tried a bunch of MUDs and MOOs. To date, however, none of my creations or dabbling with pre-existing communities has fully scratched the itch I have had since I first used a computer in like 1992 or whatever.
I feel that existing MOO/MUD/MUCK/MUSH technology is saddled by both technical and community debt. Technically, such engines had to make engineering trade-offs for very constrained execution environments. These trade-offs led to scripting experiences very difficult for beginners to understand. They are also from the telnet era, which seriously constrains both client capability and security. Community-wise, MOO/MUD/MUCK/MUSH engines rose up out of a kind of competitive and often exclusive nerd culture. There was a lot to love about this era of culture (most notably how it fostered techno-utopian feminist thinkers), but I like less RTFM-style environments in favor of those that welcome the kind of spontaneous creativity that newcomers can bring to a place if they feel sufficiently welcomed.
As far as why I’m still so invested in “antiquated” text-based experiences in this (cursed) world of ponzicoins and addiction-oriented graphical MMOs? Text is a perfect jumping-off point for imagination and creativity. It’s endlessly mutable and highly accessible. I love text and don’t see a reason to abandon it, especially in a post-unicode world.
do you want to help?
The user registration/login code both client and server side needs help and is isolated from the actual game engine stuff that I’ll be focusing on in the short term.
Additionally, I’d love help shaping WITCH, the in-game object scripting language. This requires folks interested in doing some beta testing–creating objects, giving them behavior, and providing feedback on its ease of use. I’m new to Lua and would appreciate feedback on how I’m using it.
For now the development is happening on GitHub. I’d like it to be elsewhere, but haven’t made up my mind where it should go.
have a good one!
driving from chicago to berkeley we chose to go through south dakota because to my friend and me it was a mysterious, unvisited place. the wall drug signs begin soon after crossing the border on 80. i was unfamiliar, but my friend filled me in: a place that exists self-referentially. it doesn’t offer services beyond that of any typical rest stop, and the draw to go there is the chance to experience what amounts to a meme (in the classical sense). in other words, a tourist trap.
it got me thinking about self referential advertising: ads for a place that exists only to serve ads for itself. the place makes money by selling advertising (ie tchotchkes with Wall Drug on them).
then, Marvel movies popped into my head. my experience of Marvel movies is that they lack any real substance. they are an IP portfolio: a collection of brands that interact in surface and shallow ways in order to sell merchandising. a Marvel movie is a commercial; the commercial is for itself.
ultimately i decided i preferred Wall Drug since, unlike the Marvel Cinematic Universe, at least Wall Drug gives you free ice water.
i have moved to berkeley. of chief importance is finding the coffee. the following is the result of initial recon bike rides.
- artis. the first espresso i had here was capital P Perfect. the second two were Pretty Good. the cafe music switching over to top 40 at some point was disconcerting.
- réveille coffee. it was pretty good, though i wasn’t too into the breakfast burrito. Further recon revealed that their chilaquiles are really delicious, though.
- highwire (san pablo). perfectly cromulent
- cafenated. the espresso was in no way bad, just the one i was least excited about. i did rather enjoy their breakfast burrito, though.
- coffee conscious. i really hate to say this. i do. but it’s the worst coffee i have had in the city. i’ve been multiple times in disbelief. i also do not like the donuts they carry.
- my coffee. have only been once but the espresso was very, very good.
- signal. pretty good. similar tier as Cafenated.
- the hidden cafe. i do not remember the coffee from here which means it was neither notably bad nor good. mostly i just remember how cramped it is trying to go there if the weather is at all nice out.
still to try: breadxcoffee, coro, royal ground, souvenir, hal’s
taking dark steps and eating half the breadcrumbs is how i live. i no longer try to find the exit, just remember the rooms. meal time with the minotaur. the maze has it all: a trade in lunacy, nickelodeons, international coinage, soliloquies, eulogies, biscuits. when the imagery gets vivid i don’t depart in death–it’s just imperative to keep moving. it’s imperative to keep moving and not get stuck in the windowless room that sometimes forgets its own door. there is an infinity of better rooms than that. there’s the screaming room where ears can’t be covered eyes can’t be closed and in every direction the worst thing you ever beheld. there is the room of soft walls always yielding but never suffocating full of dry warmth and lavender. the library smelling of book mold and dark woods. the study with green glass lamps and green felt desk beds and pens and pens. the dark room where there is nothing. most critically, the foyer with the umbrella bucket and the coat pegs and the wash stand with the white marble. there’s a chair in the foyer and i’ll sit here when i don’t know which door to open. the chair is made of wood and has a creak to it.
I made a blog. I haven’t had one in years. When I did it was mostly for dream logging and poetry. I was always pretty self conscious about what I put there. I published my town
feels posts as a “blog” for a while, but that never felt right. My
feels content was overly personal, diaristic, and vulnerable. I used to think you could either be authentic (vulnerable to a fault) or inauthentic (crafting a personal brand), but now think often of a phrase I heard an actor use in an interview about learning to be “private in public.” I interpreted that as being forthcoming with yourself in the public eye – which we’re all in, now, thanks to the internet – but being defensive about what you share.
Another reason I’m making one of these again is self-actualization. Historically I’ve thought very poorly of myself and agonized over anyone actually caring what I posted. Now, I’m just excited to share whatever I’m excited about or mentally chewing on, not out of self-aggrandizement, but because the stuff I find interesting is interesting because I find it interesting. It’s a very cozy tautology. I’m not interested in building a following or crafting a brand: just sharing what inspires me in an honest way while still keeping some of myself to myself.
Finally, I like to mark time with the discovery of artifacts. I’m always hunting for inspiring things–books, sites, objects, people–and feel an urge to catalogue them so I can be re-inspired in the future. I post on social media about these things sometimes, but social media is uniquely unsuited to reflection and later perusal. I liked Tumblr for this to an extent but never got comfy posting there; too many numbers and buttons and noise there for me to feel like I could collect my thoughts or feel like I was posting for myself instead of a hypothetical audience that might “like” something. I also don’t like being beholden to corporate platforms.
Some initial posting fodder:
- Going through a decade’s worth of unsorted bookmarks and posting interesting finds
- Reporting on 1990s primary “cyber media” that I collect like academic books on hypertext and trashy web magazines
- Project ideas that I’ll never get to
- Project ideas that I have gotten to
- My “religious” interests in Discordianism and Hermeticism
Technically speaking, this is all powered by some markdown files with custom metadata embedded in it, a <100 line bash script, and a Go program for handling a little linking macro. I wanted to be able to author links in a consistent way but have sensible renderings in HTML, Gemini, and Gopher. All of this, including posts, can be found in this repository. I considered a static site generator…but I prefer scripting my own thing wrt blogging. It keeps me humble and I find that I don’t use most of the features of off the shelf things.