There are several intermud protocols which define how (players on) different muds can communicate with each other. The protocols are in general not muddriver or mudlib dependant, though the number of implementations is limited. OuterSpace however supports most commonly used protocols.
Most used are the intermud chatlines, the remote who and finger facilities. However some other services (like intermud mail) are used as well. For each protocol, there are about a 100 muds using those (most muds only support one protocol).
These are the protocols that I know at least something about:
Before we even had such a thing as intermud, MUDs used the RWHO (Remote who) protocol to check who was logged on where. A dedicated server gathered all the data and the MUDs (clients in this case) would update and query this information. The protocol was created by Marcus J. Ranum and is still discussed in-depth in the official rec.games.mud FAQ (by Moira). The other reference (an email) I found is part of an old CD distribution and this actually describes exactly how the protocol is implemented. This mail was used to port RWHO support to the CD driver. The protocol dates back from (at least) June 1991.
The original intermud protocol is the CD UDP-version (designed by people from Chalmers Datorförening; a.k.a. the "Genesis" people). Here (small) UDP messages are send from one mud to another. Some messages, like channel messages, are send to all known muds. You can extend the list off known muds by querying other muds for the list they know, or by adding muds when you receive a message from them.
This version dates back from August 1992 and was implemented in CD.01.55 (driver version). It seems to have been much driven by Commander@Genesis (Johan Andersson).
Many distributions are capable of (at least a subset of) this protocol. It was probably first ported for Discworld by Pinkfish (David Bennett), nowadays at least TMI-2, Eastern Stories and Elveszett Vilag support it. Probably all derivate of eachother and the original LPMud. Another change (not so important, but quite obvious) is the use of Pinkfish colour codes; see the list of codes for details.
A more recent addition is TCP support for Intermud 2 messages. This may be based on the MudOS or Eastern Stories driver which offer native TCP support. See the description of the startup packet in the message list for more details.
All flaws of the CD-implementation are taken care of in it the new intermud protocol distributed as the "Inetd" package. This was created by Nostradamus@Zebedee (Mark Lewis). Here a message can be send in several parts and if no acknowledgement is received, a message is send again (up to 3 times). The inetd distribution can be easily added in many LPC mudlibs although it was primary designed for Amylaar (with CD compability in mind!)
A great extension providing intermud-mail is included in the latest distributions. This mail protocol was developed on top of Zebedee's implementation by Alvin@Sushi (James W. Armstrong). The latest (and most likely last ever) version is Inetd v0.7 beta 2, which was released in September 1996(?) The first implementation of this protocol was available late 1993 (maybe even earlier).
An other intermud protocol was developed by Stryker@Tempus (Chris Austin), and is mostly used on Circle-MUDs. However Merc- and Envy-MUDs are supported as well. The protocol is designed to use a stand-alone daemon for communication with other daemons over UDP and communication with the muddriver using a unix socket. It is quite simple to add support directly to the driver or mudlib though, so there is no reason why LPMUDs shouldn't support this protocol though.
For the rest it was pretty much the same as Intermud-2, however the message fields were indexed by their order in the message rather then by field names. Every message has its own command number which indicates the type of this message. In general these packets are definately shorter than an Intermud-2 message.
Stryker started with version 0.00, however the first only released versions are 0.52-0.56 and finally version 1.0. This was developed in the years 1995-1996 and nothing seems to have been one on this since. Because of this, the protocol was later nicknamed Intermud 1(?!)
Every mud must have an open TCP-connection with one of the central routers. The router will check all incoming messages and relay those to the mud(s) for which it's destined. And an OOB (out-of-band) feature is used for sending large packets (mail, files) from one mud directly to another. The latest version is Intermud 3 v3 (though the router still accepts v2 messages as well).
Once this one is running with several routers, it probably is the best protocol that I am aware off. However a major drawback is that it used MudOS' mudmode (every TCP message starts with 4 bytes in network byte order which indicates the size of the message). This makes it impossible to implement in mudlibs that don't allow the NULL character.
This protocol was developed in 1996-1997, and this very popular in new MUDs. Unfortunately the specification fails to explain the bit about mudmode, nor does it mention which router you can use (the only one at the moment): us-1.i3.intermud.org:9000.
Protocol details no longer seem to be publicly available. There is no longer an IGoT server running, since the original one closed down. However a new router is planned to open in the near future. The current maintainer of IGoT is Tarken (Joseph Wilhelm).
An Abermail patch was completed in April 1998 by Hadron@Cryosphere (Robert Brady).
It is designed to be very modular and it should be relatively simple to add a support for a new protocol. However the system is not really finished yet, and it doesn't seem to be catching on either... I never bothered to even have a closer look at it, because I believe Intermud stuff should be handled completely from within the mudlib: and not by the driver or even worse, external programs. The last version is 2.1 from August 1998, so it is still under active development, I might even check it when it becomes popular.
Return to the OuterSpace index
Last modified Fri Feb 20 15:13:26 2009, by Dyorion