A curated list of MUD development resources, tools, and apps.
Inspired by the awesome list thing.
If you want to add anything to this list, please open an issue or a pull request.
List of clients you can use to connect to different MUDs, grouped by operating system. Includes a list of MUD protocols the client is compatible with (although it can be an incomplete list, help is welcome!)
Links to old abandoned open source mud client projects, maybe something useful in there:
Server apps that allow a web client to connect to a mud/telnet server:
MUDs evolved from the original game (created in 1978 in the University of Essex by Roy Trubshaw and Richard Bartle), in families of related games, mainly based in the technologies used to implement them.
Created in 1987 at the Aberystwyth University, was the first popular open source MUD. Ported to C in 1988 in AberMUD2, and published as GPL in AberMUD V. It inspired the next three major codebases: TinyMUD, LPMud and DikuMUD.
Released by Jim Aspnes in 1989, running on Unix and written in C.
MU*, sometimes called Tiny family, is an abbreviation which refers collectively to a family comprising: TinyMUD, MUSH, MOO, TinyMUCK. It has its own wiki.
Main variations: PennMUSH, TinyMUSH, TinyMUX and RhostMUSH.
Written by Stephen White in 1990. Later that year, he released MOO.
Written by Stephen White in 1990, derived from TinyMUCK, with object oriented design. Pavel Curtis did substantial modifications to MOO code, creating LambdaMOO, which was hosted at Xerox PARC.
Released by Lars Pensjö in 1989, trying to combine the extensibility of TinyMUD with the adventures of AberMUD. He designed the LPC language (from Lars Pensjö C) and the driver/interpreter, trying to make the process of extending the game easier, separating the Mud in two different parts: the driver which acts as a virtual machine/interpreter/runtime (programmed in C), and the mudlib which implements the game code (programmed in LPC and executed by the driver). Some old games still being played today started here: Genesis, BatMUD, NannyMUD, Discworld, etc.
Some language documentation:
After Lars Pensjö retired from LPMud development, Joern Rennecke (Amylaar) took over development of the LPMud driver and produced the 3.2 series of LPMud. This is sometimes known as the Amylaar driver.
Another group of people started working from the LPMud v3.0 in 1992, and renamed it to MudOS, which will have several versions until 2003. (mudos.org, its original webpage is defunct, but you can find some of the last versions in the maldorne repository, and use them with Docker). It could use sockets at mudlib level (with LPC code), which allowed to create a TCP intermud network. This protocol evolved until Intermud 3.
In parallel to the last versions of Mudos (the last one was v22.2b14, 2003), the Discworld developers forked it and renamed it as FluffOS. Still maintained. It had versions 1.0 to 1.36, 2.0 to 2.27, and since 3.0 the maintainer is Yucong Sun, and major versions has been released with the names FluffOS 2017 and 2019.
Lars Düning continued the development of the LPMud driver renaming it to LDMud (but keeping the Amylaar version numbers, so starting with 3.2.2). LDMud is still being maintained.
Felix 'Dworkin' Croes developed in 1993 DGD (Dworkin Game/Generic Driver), not derived from LPMud (so not using the same license) but compatible with LPC language. Still maintained, and open source since v1.4 (2010).
Inspired by AberMUD and LPMud, created in 1990/91 at DIKU (Datalogisk Institut Københavns Universitet —the department of computer science at the University of Copenhagen—) in Copenhagen, Denmark.
Some well-known derivatives of DikuMUD: CircleMUD (web, source), MERC, Envy, ROM, SMAUG, GodWars, AwakeMUD (web, source).
Some information about some modern drivers/game engines/codebases created long time after the original MU* games.
Created by Greg Taylor in 2006, Samuel "Griatch" Regandell took over the project in 2011. Modern library for creating online multiplayer text games in pure Python. Coding is done using normal Python modules imported into the server at runtime. BSD license.
Created by Bo Zimmerman in 2000, created 100% in Java. Supports any JDBC/ODBC database, includes built-in web server. Apache License.
Directly transmit the mud client's input, required for BBSes, *NIX servers, Roguelike MUDs, and interaction with other console software.
Connect to *NIX servers and BBSes using TELOPT negotiations.
Displays both client and server side text interfaces.
Negotiate About Window Size. Sends the mud client's window size to the server. RFC 1073.
There are two RFCs about telnet negotiation: 854 and 855. Some of the next protocols are implemented as telnet options, expanding on these two.
Generic Mud Communication Protocol. GMCP is implemented as a Telnet option. Uses JSON syntax to define structured and typed data.
Mud Client Protocol. An attempt to provide a standard message format on which to build MUD-based client-server applications.
Mud Client Compression Protocol version 2 and 3. MCCP2 is implemented as a Telnet option. Allows a MUD server to compress output to the receiving client using the zlib compression library. Created in 1998, MCCP version 2 was created in 2000. In 2019 MCCP version 3 was created as a separate protocol.
Mud Server Data Protocol. MSDP is implemented as a Telnet option. Developed in 2009, provides a standardized way to define typeless variables, arrays, tables, and commands. MSDP over GMCP offers standardized generic event handling besides sending structured data.
Mud Server Link Protocol. Allows the creation of clickable links in the client side. MSLP is negotiated by using the MTTS standard.
Mud Server Status Protocol. MSSP is implemented as a Telnet option. Protocol for MUD crawlers to gather detailed information about a MUD, including dynamic information like boot time and the current amount of online players. See also GSGP.
Mud Terminal Type Standard. Transparant and straight forward standard for Mud Clients to communicate their terminal capabilities. See also MNES.
Mud Master Chat Protocol for instant messaging and file transfers over private P2P connections. Is a decentralized chat protocol which allows MUD clients to communicate with each other over a TCP/IP connection.
MUD eXtension Protocol.
MUD Sound Protocol.
MUD Client Media Protocol. A standard for loading, playing and stopping media files with MUD clients over GMCP that is intended to modernise MSP.
Chat format. Similar to MMCP but not compatible.
Game Scry Game Protocol. GSGP is a standardized JSON structure which you can make available for GameScry or other sites to ping for real-time data about a game, its active players, leaderboards, etc. See also MSSP.
Achaea Telnet Client Protocol. Using TELNET code 200, was implemented by cMUD in 2008. In 2010 evolved to ATCP2 using TELNET code 201. Was later renamed to GMCP. Achaea, Aardwolf, MUME, Avatar, Gensis, and MUSHclient provide package definitions modeled after the ATCP2 draft.
Similar to ATCP, Aardwolf includes a hidden channel of information that you can access.
Mud New Environment Standard. Implemented as a Telnet option. Seeks to supplement MTTS by providing a straightforward way to use the NEW-ENVIRON telnet option to exchange and update various client and server settings.
Mud Mapping Protocol. IronRealms protocol as a way to export our in game map data so that clients (or players) can easily access and download this data.
Communication protocol. TO DO.