Way of the Force

Intermud 3

Way of the Force is connected to the public Intermud 3 network, a network between a large number of muds. Intermud 3 allows you to send tells to people on another mud, to chat on comms channels shared with other muds, and in some cases, to send mail to people on another mud.

What is it?

Intermud 3 is first of all of interest to coders and builders, it provides a good way to exchange ideas and information with coders and builders on other muds.

The Intermud 3 network consists of routers and muds. A router is a bit like a 'server' on the better known messenger networks like MSN or AIM or Jabber. It keeps track of connected muds, and ensures that muds directly connected to it can also talk to muds connected to other routers. Currently there are 3 public routers on our network that are interconnected.

A bit of history

In the old days, there was a router called *gjs, this was the official Intermud 3 router run by intermud.org.

At some point, *gjs became more and more unreliable (going down more and more often). As a result, Cratylus setup his own router to provide a reliable alternative for supporting the Dead Souls mudlib. Then, at a good (or bad) day, *gjs went down (again) to never return, and many muds moved to Cratylus' router. Lots of discussions followed about rules, an alternative to *yatmim was created in the form of *adsr (also known as Arren's router). People started talking about connecting *adsr and *yatmim, but this never worked out in practise.

Over time, the *i4 router was added as a replacement of *yatmim, and the first practical I3 inter router network was created.

Later, *dalet got added, and support for imc2 clients was added to *dalet and *i4. *yatmim has been removed from the network.

Current status

Both *i4 and *dalet are run by Cratylus, and he has done a very good job at running those and developing the irn protocol into something practical. Recently, it became desirable to add yet another router because *yatmim has become unreliable, and *i4 needs a backup.

In October 2008, *wpr was added to the Intermud 3 network, this router is run by Way of the Force, and as such is not under Cratylus' direct control. It is hosted in Europe (sitting on top of the AMSIX, so generally it has very good connectivity).

While this router is not controlled by Cratylus, it connects to the same network, shares the same channels, and as a result, the same rules are enforced.

In February 2018, the router *Kelly got added to the network, it is controlled by adam@themud.org, and shares the same channels and rules and all.

The *adsr router is no longer available, and word has it will not return ever.

The following I3 routers make up the lpmuds.net I3 network:

Technical details

Intermud 3 is a protocol that is used by over a hundred muds to communicate with eachother. These pages provide information on version 3 of the protocol as well as proposed changes for version 4. The proposal for version 3 also documents all changes from version 2, which is still in use by a few muds.

Intermud 3 is based on sending/receiving serialized lpc data in a way very similar to using JSON in a REST API. Intermud 3 does not use JSON but something called mudmode. It is very similar to JSON, but based on LPC litterals instead of Javascript.

On top of mudmode, I3 can use 2 different protocols, one for connections between routers (IRN: inter router network) and one for connecting muds to a router (I3v3)

You need a mud with an Intermud 3 client to connect to any of the routers. Many public lpmud based mudlibs do include at least some support for this.

A typical Intermud 3 client provides at least tells and usually comms channels. Many also provide remote who and finger information, support remote emotes, and some also support file and mail exchange, shared discussion forums and the like.

Intermud 3 is first of all a network of lpmuds, the protocol is very much designed around features found in the mudos/fluffos drivers (mudmode, save/restore_variable), but there are also other muds (not using an lp variation) connecting to it.

Writing your own client

While many lpmuds include an intermud 3 client, you may want to write your own based on the Intermud 3 v3 spec. Please do not use the regular 'production' routers for testing new client code. Way of the Force runs a test intermud 3 router for testing new clients and routers:

*wir at IP address, port 3004.

Example code for non lpmud systems:

Protocol specifications

The original proposal for Intermud 3 is incomplete, and leaves room for interpretation in various important places. Also, some things turned out to be not very practical and are being done differently in practise. The original proposal below should be used as a reference for the original design goals and ideas, but is incorrect in some places, and is incomplete.