I'm fully rewriting the (LINK https://github.com/vilmibm/tildemush tildemush) MOO engine as (LINK https://github.com/vilmibm/hermeticum hermeticum) and actually plan to release it for real this time ^_^
## huh what
A few years ago I shipped an alpha version of a new (LINK https://en.wikipedia.org/wiki/MOO MOO) style system called (LINK https://github.com/vilmibm/tildemush 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 (LINK https://github.com/vilmibm/hermeticum 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 (LINK https://tilde.town 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 (LINK https://github.com/vilmibm/hermeticum/blob/trunk/roadmap.md roadmap file).
## rambling pontification
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 (LINK https://tilde.town tilde town), (LINK https://github.com/vilmibm/murepl 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.