I’ve been chipping away at one on my stream using Haskell. Experimenting with Lua integration, parsing, networking, STM and concurrency… currently hacking on Entity Component Systems and unboxed vectors and all kinds of stuff.
Thing is you can start small. Start with a chat server. Add character registration. Add a mob. Add some commands to interact with the mob. Just keep adding things on.
There’s a community for mud coders too. There are dozens of us.
Curious if in the spirit of
"Show me your [code] and conceal your [data structures], and I shall continue to be mystified. Show me your [data structures], and I won’t usually need your [code]; it’ll be obvious."
If you would share your data structures for your MUD?
I’m almost certain they are the largest MUD development company to exist.
I played two of their MUDs — Achaea and Lusternia. The sheer imaginative scale of these worlds and engines are unmatched by even today’s standards. (And they still exist!)
PVP is a battle of engineering. The best PvPers build elaborate trigger systems that watch the terminal for specific maladies and conditions and counter them with herbs, potions, and skills.
The RP is similar to D&D but so much deeper. Where D&D is mostly storytelling by a DM, RP in huge commercial MUDs involve gods, physics, deeply entrenched politics, money, fame, and power spanning thousands of players.
Entirely player-driven economy. If you wanted a sword you could buy one from a player run market or commission a unique piece from a blacksmith. And boy it was truly unique. A blacksmith in Lusternia is really a wordsmith. A steel sword can be described as “honed to an obsidian finish”.
Peak human imagination, but sadly in a medium too many people can’t get into.
I logged back on a year or two ago, now in my late thirties, and the sense of community and a critical mass of others who were invested in the game and eager to have me join just wasn’t there. It’s a shame because I agree MUDs have so much unique value to offer. Maybe it’s too much to hope for their return to former glory but I hope at least some flavor of them can rise again as a new form of mostly text oriented multiplayer game.
A few months ago I tried out my old (1999-2004) hang, wocmud.org
Some of the quests were still sometimes broken. auto attacking mobs were still unfairly strong. But, there were a couple people more than willing to help me get my gear back from my corpse. They helped me remember the areas, quests, syntax, etc that I had BURNED into my memory when I was 14. We chatted and got caught up in the 20 years of updates. Oh, and I didn't get banned for being out-of-character. overall a 10/10 nostalgic experience
I started working on my own with Evennia and claude. I was hoping to hook up an LLM for MOBs but had to put it down when life got busy again.
Back in the 90s you needed a permanent internet connection (rare!) and fast enough to handle all the usually uncompressed text, so it had to be a - shocker - T1 or better. Then you needed a server.
My old MUD has a discord; turns out a lot of the people I knew 25 years ago were there and remembered the my nick if not a little about myself back then. That was a fun nostalgia trip.
MUDs will eventually see a resurgence, I think. Mobiles with little language models to give flavour text and quests, plus a little tool calling language behind it to make it happen? I can see it working; in fact, I might just myself...
I did all my work in the MUD interface using ED. I didn't realize other people wrote their code offline and sh'd in to upload it. I got very good at writing and editing code on the command line.
nowadays i am using a web-platform for my websites that is not only written in pike but also implements a MUD like architecture.
Join in the fun.
I had been working on it for a couple years, using it myself. I finally released it recently. A number of users are contributing feature requests, testing, etc on the discord as well.
Bethesda’s game was a gem that was full of rich lore, plenty of readying, and very flexible RPG systems (although being a magical glass cannon does tend to be the best build). However, it was also a relatively flawed game (which Bethesda game isn’t?) that the community has expanded and fixed into a juggernaut.
I recommend picking up a mod pack from modding-openmw.com and checking it out. Tamriel Rebuilt is particularly impressive: fans have added a massive bank of new maps, quests, etc.
Something cool about the OpenMW engine is that it supports scripting that exceeds the original engine so that new quests are more rich and dynamic than original ones in the game. They are even starting to expand into custom spell effects (as the original game had a rigid list of spell effects that wasn’t malleable).
Example clients: Mudlet, zMUD, kMUD, mushclient
Sadly I can't, both links redirect to the same page :P
There's a MUD inside it, but the late.sh ssh-able bbs with it's door games that got submitted 2 days ago is incredible. It's such a wonderful little text world there. https://news.ycombinator.com/item?id=49001127 https://late.sh/
These days, I sometimes think about whether I could make a MUD game that interacts with AI, but I wonder if it would appeal to a generation that has no memory of MUD games
LPC is a language that looks like C (the C in LPC) and there is even a general purpose language called pike that is a rewrite of LPC.
in an LPmud, the engine and the world itself including user contributed part are all written in LPC. unlike other MUDs that have a core written in C and an obscure custom language to define the world inside. this made LPmuds very approachable, and i believe the language and architecture is what enabled LPmuds to have built-in ftp and later webservers too, all written in LPC.
Wuxia fit text games perfectly because every player already had the whole world in their head from Jin Yong novels, so zero graphics needed. A lot of the people who built the first Chinese online games came out of those communities.
King of Kings (万王之王, 1999), usually counted as the first Chinese graphical MMORPG, was a Taiwanese MUD team putting a graphical client on their existing game.
Roguelikes have evolved from being text based long ago, so I don't see why MUDs have to be.
But they were clearly gated, like a nightclub. There were those who were "in" the Jedi Temple or Sith academy, and those who were out. This creates a sort of exclusivity, and people would naturally want to join the Jedi Temple or Sith Academy. They'd have to agree to a set of rules written on a sticky note on the room's wall, and dress the part.
Sometimes all hell would break loose when a Sith Warrior or Inquisitor would come and attack the Jedi Temple. They were legally allowed to do this, as long as people were online to witness it.
It was really interesting how they battled each other with just text chat. They had specified rules where you'd have to type out five action lines (minimum of 5 words) after an attack in order to maime or kill someone. At any point in those five lines, the defender could use 2 lines to repel the attack. To add a complication, the actions had to be coherent with each other.
So it ended up being a lot of;
Sith: Jedi filth! Hiding in your temple, while the universe suffers. I will free them of you!
Jedi: Your oppression ends here, Sith!
Sith: swings lightsaber towards your body
Sith: it connects with your neck
Sith: it cuts through the muscle
Jedi: swings lightsaber at lightsaber (illegal: 4 words)
Jedi: it parries your lightsaber away
Sith: it connects through the bone (illegal: parried)
Of course, these would often devolve into long OOC (out of character) arguments, and this drama would bring in even more of a crowd. It was chaotic, and a whole bunch of fun.
It wasn't just RP fighting though. They would have all the Jedi initiates wear "robes" and hang out in rooms decorated like a Jedi temple. Then the Jedi Masters would conduct lessons and we'd have to memorise the Jedi code.
I still remember the Sith code. I had to memorise it and recite it at random times to the Sith Lords. When I graduated from that, I ended up teaching it myself to several acolytes.
"Peace is a lie, there is only passion. Through passion, I gain strength. Through strength, I gain power. Through power, I gain victory. Through victory, my chains are broken. The Force shall free me."
Pretty fun times.
Man I was hooked on that game in high school. Joined the Lion Wardens, multiple high level characters, knew the zones. Nothing has come close since then.
That feeling of leveling in a safe zone when your screen fills with red names of opposing faction characters and you just get deleted and lose all your gear and a level... so good.
I think wocmud is one of the smaller muds out there but for whatever reason my brother and I were obsessed!
I learned about Wheel of Time much later in life so I missed out on WoTMUD
I think what made them special was that they were populated by others that put in that effort, and so the community felt invested. And you'd see the same names every time you logged on cause there was a single server, and reputation mattered. Ah man, what a time of life haha.
It's still text based in sense of `look at monolith`.
> Discord slash commands are interactive bot commands activated by typing / in the chat, prompting an inline menu of options and parameters.
Discord uses slash commands to visually autocomplete possible parameters.
> https://developer.apple.com/design/human-interface-guideline...
Apple uses contextual actions to limit freeform grammars.
The genre opened doors for MMORPGs like EverQuest. If you want something modern and polished there are no shortages of other games.
I think part of the nostalgia for MUDs is a nostalgia for the era of the internet where communities were small and special. Everyone has a discord now. It’s all so samey. Bring back the quirky hobby communities run by the users.
I think there's value to making a mud that uses discord-style slash commands outside of Discord without the player memorizing the text grammar.
My college roommate was really big into MUDs, one particular one anyway. He wasn’t a super techy person, it was pretty much the only thing he did on his computer.
There have been hundreds of MUD clients and many of them were not purely text based at all. Many had images and map screens built in.
Modern MUDs and similar will just include a mature script language, like LUA and let that directly access the background resources from within some sandbox. No point in re-inventing the wheel with a custom scripting language. For any legacy data (E.G. running some old world on a new system) it'd probably make more sense to write a transpiler / converter anyway.
Not necessarily. The persistent, live nature of some types of MUD programming (LPMUDs, MOOs) is unique enough that many typical scripting languages are not a good fit. The only general-purpose languages that come close to the required execution model are Common Lisp and Smalltalk (and Prolog, if you squint hard enough), which are so unpopular that you don't really get much out of choosing them over a custom language. That's one of the reasons so many MUDs developed their own execution models and language dialects.
Writing a transpiler for a large MOO code or LPC codebase would require generating tons of boilerplate to emulate the unique semantics of the languages, as well as providing a runtime with support for those features. It's not that easy.
For some MUDs, scripting with Lua is more than enough. There's a book on writing MUD engines[1], and the second half shows exactly this setup (I think C++ for the engine and Lua for scripting). It will work in many cases, but it'll break down if you try to make the MUD easily programmable by users. It can still be done, but at some point, it might be easier to start from scratch rather than trying to make a stock Lua or Python interpreter work in that environment.
[1] https://www.amazon.com/MUD-Game-Programming-Development/dp/1...
I am curious as to why not Lua or JavaScript? Lua is what Roblox uses and JS needs no introducton.
WoW and Runescape exist. But MUDs exist too, and text and graphics have different possibilities. So it makes sense to have some of both in this rich world.
It's in a way comparable to the difference between a novel and a movie or a novel and a comic/manga.
Really before the term MMO was coined these type of games where called "graphical MUDs"
Also Runescape started as "DeviousMUD".
Neverwinter, Runescape, Tibia, Ultima online, Everquest and more all formed from MUD lineage.
https://en.wikipedia.org/wiki/Category:Graphical_MUDs
https://en.wikipedia.org/wiki/History_of_massively_multiplay...
MUDs (and closely related single-user text adventure games) are a well-defined genre; you can improve various aspects of the presentation, add rich formatting, images, background music even, but the moment you stop using text as a main medium for gameplay, you're simply not doing a MUD anymore.
well, and pike, which itself is based on LPC so it has the required execution model by design.
the point is that LPC and pike are the kind of sane language being asked for.
Still, I can't disagree that, out of the box, LPC and Pike are probably a (much) better fit for a mudlib language compared to Lua, Python, or JavaScript :)
the functionality is still there, but hidden. roxen can reload modules but the reload creates a new object instance which new http requests will get, whereas old requests keep the old instance until the request completes.
however open-sTeam, a collaboration platform developed by a university in germany built a system of proxy objects such that your code always only interacts with the proxy allowing the actual object in the background to be replaced by new instances. in your own code you don't realize you are dealing with a proxy. it's completely transparent. it also stores the object state in a database creating full object persistence. the architecture is very similar to a MUD. they even wrote an object protocol allowing you to access the object from remote, so you can write remote clients that interact with objects with implementations in pike, php and java.
the university is no longer working on that platform, but since they released it as GPL i am able to continue using it as a base for all my websites and web-apps.
persistence and runtime reloading of objects are my favorite features in any language. i just love to be able to change code at runtime without having to restart the server. it works just like i am used to from my LPmud time.