What is a MUD?
A Multi-User Dungeon (MUD) is a text-based adventure in a shared network environment. Goontube with less videos and more killin’, and gods instead of mods.
Some feature more social, roleplay-centric mechanics like a text-based Second Life and others are aimed at an action hack-and-slash kill the monsters, get the loot, cast the magic spells, and level up sort of experience, where you’re responding to a rapid gameplay loop with your combat vitals in a line-based prompt. Some do not allow PVP, some allow intense PVP where all loot is dropped on death, some restrict various “severity of death” to different zones for gameplay reasons.
The themes of these games are varied from smurfs to sci-fi to old western to high fantasy to low fantasy to apocalyptic wasteland debaucheries, and some (many) have many themes coexisting in the same game world.
MUDs are typically delivered using the telnet protocol over TCP. Popular clients include MUSHclient and Mudlet. Telnet as a protocol allows the client and server to negotiate about terminal size and other capabilities without interrupting the the player’s text input and the game’s output using a series of “Interpret as Code” (IAC) statements.
Often ANSI escape sequences are used also to create visually engaging and colourful outputs:
End result is something like:
In the above screenshot instance, you can also see the output of my server app.
SomethingAwful-overlapping users might be familiar with these due to HellMOO. I personally spent a lot of time playing, coding enhancements for, and administrating these games over dial-up connections as a geeky kid, and I’d love to revisit them anew for nostalgia’s sake and possibly community-building/fun for goontube?
For about the last month I’ve been spending a couple of hours most nights after work to build one from scratch.
This is the basic “feel” of the game. Lots in common with the old ROM/SMAUG derivatives I spent the most time playing. I am stumbling through creating what I remember bit by bit, day by day.
I’m getting close to hosting a persistent alpha instance and allowing in public traffic, so I thought I’d start to post about it here.
The work thus far has included a lot of plumbing to allow the basics to be possible, building the network server and implementing telnet protocol/basic gameplay loop stuff/CRUD stuff serializing info to a MySQL store/embedding and integrating a JavaScript scripting engine.
There is presently a core game where you can register/save/load player accounts with object inventories, combat is possible (and all scripted, so the combat engine can be swapped out without restarting the game server), learn and cast/use scripted skills/spells. We have a maze generator and we have a “dungeon generator” that connects multiple maze floors by their most circuitous paths.
I’m aiming to next create an ANSI map wilderness space that connects multiple “dungeons” together, along with a town/town square or safe “hub” area where autogenerated quests will give players a reason to go out in the first place.
The next steps will include a bit more thinking about gameplay mechanics and if it’s actually converging on a good game, text or not. I’m not looking to create something with endless runaway scope creep I can never finish, so a bounded experience with about 50 “levels” and a limited number of player classes/races/skills/spells is a good start. I’m going to keep it to fairly cookie-cutter medieval fantasy stuff for the time being.
We could expand on this later as a community project if anybody is interested in doing some world-building or making this an “us” thing, and this would be the thread for it.
Anyways, I’ll be following up with updates and hopefully later this week some details on how to connect to a persistent instance I’ll host.