InterMUD
Encyclopedia
InterMUD or interMU* communications is the commonly accepted terminology for different methods of allowing MUD
s to communicate with each other. Some of the more common of these methods are custom protocols over the internet
, IPC messages
, and bot
s. The custom protocol method, which is by far the most popular method, has even led to the emergence of the interMUD communication network. These networks are capable of allowing numerous MUDs to communicate with each other. As a result of this ability to have so many MUDs on a particular network, it is not uncommon to have MUDs connected to two or three of these networks in order to have a wide variety of other MUDs to communicate with. Below is an overview of the more well-known custom protocols.
The first InterMUD network was created using the TMI Mudlib
in 1992, when the MudOS
driver incorporated network socket support.
connections in order to connect each MUD to a central server, where most messages are routed through the server to other MUDs. In addition, I3 permits OOB (out-of-band) connections between MUDs, which temporarily results in direct communication between two participating MUDs. One of the primary benefits of I3 is that it allows MUDs to connect to I3 networks without server admin intervention. In recent years, I3 has been extended to support multiple routers on a single network for load balancing and redundancy.
Since its initial incarnation in the mid 90s, the I3 protocol has gone through 3 revisions, adding various new features and suggestions for a future inter router network. As of early 2007, a practical inter router network implementation exists, and as of late 2008, an inter router network specification is available.
Currently, there are three major I3 networks: gjs, which was run by Greg Stein (Deathblade); yatmim, which is run by the maintainer of the Dead Souls Mudlib
; and adsr, which is run by the team at Anarres. Unfortunately the gjs network, which was the first public I3 network, is no longer very stable. As of March 2007, the gjs router has been down for over seven months. This has resulted in yatmim becoming a very popular network. Disagreement over network policy led to the creation of adsr as an alternative to yatmim.
There are also a few isolated servers that are used primarily for testing purposes.
For those interested in creating his or her own private I3 network, there is currently only one open source
server implementation that is publicly available. This implementation is Tim's implementation. It is also possible to use the I3 specifications and the inter router network specifications in order to create a custom implementation.
The latest release of the Dead Souls Mudlib
contains a functional implementation of an I3 server, based on Tim's implementation, enhanced with administration commands and inter-router networking extensions.
connections and allows MUDs to connect without server administrator permission. The IMC2 protocol supports multiple routers on a single network in a way similar to I3 (and did so a lot earlier). However, one of the ways that IMC2 differs significantly from I3 is that it does not use so called mudmode connections, making it much easier to implement IMC2 on muds not written in LPC.
Currently, there is only one active IMC2 network in use, MudBytes InterMud Communication Network.
s and Java
MUDs. The most commonly used one for DikuMUD
derivatives is the IMC2 Freedom implementation. In addition, it is also possible to use the IMC2 specifications in order to create a custom implementation.
For those interested in creating their own private IMC2 network, the most commonly used server implementation is the IMC2 Freedom implementation.
. It uses TCP
connections to connect each MUD to a central server. Some of the more distinctive characteristics of AberChat is that it does not rely on client MUDs to keep track of the other MUDs on a network, and it does not update a local list when other MUDs on a network become available or unavailable. Instead, in order to see what MUDs are out there, MUD users can send a request for a list of MUDs on the network to the server, which replies with a complete list.
There is both a public and a private AberChat network. Both require the server administrator to manually add a new MUD to the network.
For those interested in creating his or her own private AberChat network, there is a publicly available server implementation located at MudBytes.
es. It uses a TCP
connection in order to connect a MUD to the central server. In contrast to the other interMUD networks so far listed, MushLink's server actually connects to the MUD instead of having the MUD connect to the server. This connection consists of a bot that logs in as a special user. This user uses special commands in order to both display and receive messages from the MUD.
The MushLink bot itself can be downloaded from PennMUSH web site.
, instead of TCP, and sends directly to all MUDs that the sending MUD knows. There are no servers involved because it is entirely client-to-client communication.
MUD
A MUD , pronounced , is a multiplayer real-time virtual world, with the term usually referring to text-based instances of these. MUDs combine elements of role-playing games, hack and slash, player versus player, interactive fiction, and online chat...
s to communicate with each other. Some of the more common of these methods are custom protocols over the internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...
, IPC messages
Inter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...
, and bot
Internet bot
Internet bots, also known as web robots, WWW robots or simply bots, are software applications that run automated tasks over the Internet. Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone...
s. The custom protocol method, which is by far the most popular method, has even led to the emergence of the interMUD communication network. These networks are capable of allowing numerous MUDs to communicate with each other. As a result of this ability to have so many MUDs on a particular network, it is not uncommon to have MUDs connected to two or three of these networks in order to have a wide variety of other MUDs to communicate with. Below is an overview of the more well-known custom protocols.
The first InterMUD network was created using the TMI Mudlib
TMI Mudlib
The TMI Mudlib from The Mud Institute was an attempt to create a framework driven mudlib for the MudOS LPMud driver. It consisted of many contributors to MudOS as well as people who became influential in the LPMud community. When TMI began work in 1992, a mudlib was generally packaged with both an...
in 1992, when the MudOS
MudOS
MudOS is a major family of LPMud server software, implementing its own variant of the LPC programming language. It first came into being on February 18, 1992. It pioneered important technical innovations in MUDs, including the network socket support that made InterMUD communications possible and...
driver incorporated network socket support.
Intermud-3
Intermud-3, more commonly referred to as I3, uses TCPTransmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connections in order to connect each MUD to a central server, where most messages are routed through the server to other MUDs. In addition, I3 permits OOB (out-of-band) connections between MUDs, which temporarily results in direct communication between two participating MUDs. One of the primary benefits of I3 is that it allows MUDs to connect to I3 networks without server admin intervention. In recent years, I3 has been extended to support multiple routers on a single network for load balancing and redundancy.
Since its initial incarnation in the mid 90s, the I3 protocol has gone through 3 revisions, adding various new features and suggestions for a future inter router network. As of early 2007, a practical inter router network implementation exists, and as of late 2008, an inter router network specification is available.
Currently, there are three major I3 networks: gjs, which was run by Greg Stein (Deathblade); yatmim, which is run by the maintainer of the Dead Souls Mudlib
Dead Souls MUDlib
Dead Souls is a MUD library , a software infrastructure for creating a text-based virtual world. It is classed in the following versions:* Dead Souls 1.1 was the final release by its original head developer, George Reese...
; and adsr, which is run by the team at Anarres. Unfortunately the gjs network, which was the first public I3 network, is no longer very stable. As of March 2007, the gjs router has been down for over seven months. This has resulted in yatmim becoming a very popular network. Disagreement over network policy led to the creation of adsr as an alternative to yatmim.
There are also a few isolated servers that are used primarily for testing purposes.
Some of the services supported by I3
Note: Not all services are supported by all MUDs. A lot of these are listed as optional in the protocol.- channels chat between MUDs
- All MUDs on the network are able to create their own channels, similar to how IRC allows. The creator of the channel can control access to it through either a ban list or an invite list.
- emotes send an action message to a user on another MUD
- finger retrieve information about a user on another MUD
- locate search on the other MUDs for a certain user
- mail for sending mail to users on other MUDs
- mud list retrieve a list of all MUDs upon logging onto the network
- tell for sending a message to a user on another MUD
- who list of what users are currently logged in to a MUD
- beep (not in the official protocol specifications, but supported by some MUDs) trigger a sound for a user on another MUD
- file (OOB service) list, retrieve or store files on another MUD
- news (OOB service) similar to USENET news groups (no known implementations)
Software
To connect a MUD to the main I3 network or to one of the private I3 networks, an I3 client implementation will be needed. To facilitate this process, many open-source MUD implementations are distributed with I3 clients included. It is also possible to use the I3 specifications in order to create a custom implementation.For those interested in creating his or her own private I3 network, there is currently only one open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
server implementation that is publicly available. This implementation is Tim's implementation. It is also possible to use the I3 specifications and the inter router network specifications in order to create a custom implementation.
The latest release of the Dead Souls Mudlib
Dead Souls MUDlib
Dead Souls is a MUD library , a software infrastructure for creating a text-based virtual world. It is classed in the following versions:* Dead Souls 1.1 was the final release by its original head developer, George Reese...
contains a functional implementation of an I3 server, based on Tim's implementation, enhanced with administration commands and inter-router networking extensions.
IMC2
IMC2 is short for InterMud Communications Protocol Version 2. Similar to I3, IMC2 connects MUDs using TCPTransmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connections and allows MUDs to connect without server administrator permission. The IMC2 protocol supports multiple routers on a single network in a way similar to I3 (and did so a lot earlier). However, one of the ways that IMC2 differs significantly from I3 is that it does not use so called mudmode connections, making it much easier to implement IMC2 on muds not written in LPC.
Currently, there is only one active IMC2 network in use, MudBytes InterMud Communication Network.
Some of the services supported by IMC2
Note: Not all services are supported by all MUDs.- channels chat between MUDs
- Channels are created and run by the people running the servers.
- emote send an action message to a user on another MUD
- finger retrieve information about a user on another MUD
- locate search on the other MUDs for a certain user
- mud list a list of all MUDs is given to a MUD when logging on
- tell for sending a message to a user on another MUD
- who list of what users are currently logged in to a MUD
- beep trigger a sound for a user on another MUD
Software
In order to connect a MUD to an IMC2 network, an IMC2 client implementation will be needed. There are several IMC2 client implementations that are publicly available, including ones for LPMudLPMud
LPMud, abbreviated LP, is a family of MUD server software. Its first instance, the original LPMud game driver, was developed in 1989 by Lars Pensjö...
s and Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
MUDs. The most commonly used one for DikuMUD
DikuMUD
DikuMUD is a multiplayer text-based role-playing game, which is a type of MUD. It was written in 1990 and 1991 by Sebastian Hammer, Tom Madsen, Katja Nyboe, Michael Seifert, and Hans Henrik Staerfeldt at DIKU —the department of computer science at the University of Copenhagen in Copenhagen,...
derivatives is the IMC2 Freedom implementation. In addition, it is also possible to use the IMC2 specifications in order to create a custom implementation.
For those interested in creating their own private IMC2 network, the most commonly used server implementation is the IMC2 Freedom implementation.
AberChat
AberChat is used primarily by the type of MUD known as AberMUDAberMUD
AberMUD, pronounced , was the first popular open source MUD, named after the town in which it was written, Aberystwyth. The first version was written in B by Alan Cox, Richard Acott, Jim Finnis, and Leon Thrane based at University of Wales, Aberystwyth for an old Honeywell mainframe and opened in...
. It uses TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connections to connect each MUD to a central server. Some of the more distinctive characteristics of AberChat is that it does not rely on client MUDs to keep track of the other MUDs on a network, and it does not update a local list when other MUDs on a network become available or unavailable. Instead, in order to see what MUDs are out there, MUD users can send a request for a list of MUDs on the network to the server, which replies with a complete list.
There is both a public and a private AberChat network. Both require the server administrator to manually add a new MUD to the network.
Services supported by AberChat
Note: Mail is not supported in older client implementations.- channels support for 3 channels - players, staff, and coders
- mail for sending mail to users on other MUDs
- mud list lets a user retrieve the list of MUDs on the network
- tell for sending a message to a user on another MUD
- who list of what users are currently logged in to a MUD
Software
In order to connect a MUD to an AberChat network, an AberChat client implementation will be needed. There are several AberChat client implementations that are publicly available on the SMiLE download page, as well as a SMAUG client at MudBytes. In addition, it is also possible to use the AberChat specifications in order to create a custom implementation.For those interested in creating his or her own private AberChat network, there is a publicly available server implementation located at MudBytes.
MushLink
MushLink is primarily used on MUSHMUSH
In multiplayer online games, a MUSH is a text-based online social medium to which multiple users are connected at the same time...
es. It uses a TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connection in order to connect a MUD to the central server. In contrast to the other interMUD networks so far listed, MushLink's server actually connects to the MUD instead of having the MUD connect to the server. This connection consists of a bot that logs in as a special user. This user uses special commands in order to both display and receive messages from the MUD.
Services supported by MushLink
- channels for chatting
- mail for sending mail to users on other MUDs
- mud list lets a user retrieve the list of MUDs on the network
- tell send a message to a user on another MUD
- who see who's online on another MUD
Software
MushLink requires no special code to be used on a MUSH. However, a MUSH needs to support the standard MUSH commands in order for the MushLink bot to work. For MUSHs that do not support the standard MUSH commands, it is possible to emulate them.The MushLink bot itself can be downloaded from PennMUSH web site.
MudNet
MudNet is derived from MushLink. It mainly differs from MudNet in that it supports some additional commands, supports more MU* types, and supports interMU* communications on certain MUSH types' own channel systems. The MudNet credits page provides more detail on the differences.Merentha InterMud Services (MIS)
MIS was written specifically for the Merentha Mudlib, a specific MUD implementation. It uses UDPUser Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...
, instead of TCP, and sends directly to all MUDs that the sending MUD knows. There are no servers involved because it is entirely client-to-client communication.
Services supported by MIS
- channel one channel for chatting among all MUDs
- mud list lets a user retrieve the list of MUDs on the network
- tell send a message to a user on another MUD
- who see who's online on another MUD
Some Other Custom InterMUD Communication Protocols
- CD Intermud (Genesis)
- Circle Intermud
- Intermud 2 (I2)
- GoT Intermud
- PSYC Intermud
- RoM Intermud
- Zebedee Intermud
External links
- Protocol specs
- Intermud Protocols: Information about most intermud protocols
- Intermud.org: Information about the I3 and IMC2 intermud communication protocols
- IMC2 Protocol: Information about the IMC2 intermud protocol and specifications.
- MUD lists
- The InterMUD Superlist List of MUDs on I3 and IMC2
- MudNet Worlds List: List of MUDs on MudNet.
- Darkemud I2 list: List of MUDs using I2.
- Networks
- The Official Intermud-3 Homepage: Web site for the original I3 network.
- The MudNet Team: Web site for MudNet.
- MudBytes Intermud Communication Network: Web site for the MudBytes public IMC2 network.
- LPMuds.net - Intermud: Web site for yatmim.
- Software
- MudBytes: Diku based IMC2 client/server code.
- MudBytes: Diku based I3 client code, and LPC based I3 router code.
- The Merentha Mudlib: The mudlib which MIS was written for.
- Taurus IMC2 client: IMC2 client for LPMuds using MudOS.
- Tim's code: IMC2 client for LPMuds using MudOS, and I3 server.
- PennMUSH downloads: MushLink robot.
- MudOS: Has the Lima MudlibMudlibA mudlib, short for mud library, is a library of code forming part of the technical infrastructure of a MUD. Though different varieties of MUD may be considered to have mudlibs, the term is most often used with LPMuds. In an LPMud, the mudlib consists of interpreted code written in the LPC...
, an LP lib for MudOS, which supports I3. - Discworld's distribution mudlib: Discworld is another LP mudlibMudlibA mudlib, short for mud library, is a library of code forming part of the technical infrastructure of a MUD. Though different varieties of MUD may be considered to have mudlibs, the term is most often used with LPMuds. In an LPMud, the mudlib consists of interpreted code written in the LPC...
for MudOS that supports I3. - Dead Souls: Dead Souls is an LP mudlibMudlibA mudlib, short for mud library, is a library of code forming part of the technical infrastructure of a MUD. Though different varieties of MUD may be considered to have mudlibs, the term is most often used with LPMuds. In an LPMud, the mudlib consists of interpreted code written in the LPC...
using MudOS that supports I3. - LPUniMudlib: LPUniMudlib is a MudOS mudlibMudlibA mudlib, short for mud library, is a library of code forming part of the technical infrastructure of a MUD. Though different varieties of MUD may be considered to have mudlibs, the term is most often used with LPMuds. In an LPMud, the mudlib consists of interpreted code written in the LPC...
that supports I3. - AFKMud: SMAUG derivative which includes IMC2 support.
- CoffeeMud: Java MUD that supports I3 and IMC2.
- SMiLE mud downloads: has aberchat clients for AberMUDs and DikuMUDs
- MudBytes: Aberchat server, and SMAUG Aberchat client code.