mu*index
reading
plain text
theme

protocol

MSDP

The Mud Server Data Protocol — the same job as GMCP, done with a compact binary encoding and a discovery mechanism GMCP lacks.

https://www.mudhalla.net/tintin/protocols/msdp/

Measured adoption

96 of 886 listed games — 10.8%

The games not counted here are not games without the protocol. A game is counted when we observed its server offering the option in a handshake; the rest are servers that did not offer it to us and servers whose handshake we have not read, and we cannot tell you which.

Games observed offering MSDP in a handshake, by the codebase we identified them as running.
codebase offered it identified
CoffeeMUD 16 32
Evennia 11 11
CircleMUD 9 47
ROM 6 55
SMAUG 5 20
tbaMUD 4 5
DikuMUD 3 35
AresMUSH 0 18
CobraMUSH 0 2
FluffOS 0 28
MUCK 0 24
PennMUSH 0 34
RhostMUSH 0 40
TinyMUSH 0 9

MSDP is telnet option 69, and it solves the same problem as GMCP: sending structured data alongside the text so a client does not have to scrape prose for numbers.

The differences are two. MSDP's encoding is binary and compact — variables and values are marked with single control bytes rather than wrapped in JSON — and MSDP defines a discovery conversation: a client can ask LIST for COMMANDS, REPORTABLE_VARIABLES and so on, and be told what a given game supports. GMCP has no equivalent, which is why a GMCP client generally has to be configured per game.

In practice GMCP won on adoption and MSDP persists in the servers and clients that implemented it, often alongside GMCP.

What we measure

A game counts here when its server offered MSDP in a handshake we observed. As with every figure in this section, that is a positive observation and the remainder is not its opposite — a game not counted may not implement MSDP, or may simply not have had its handshake read by us yet.

See also

  • GMCP The Generic Mud Communication Protocol — structured JSON messages alongside the text, and the out-of-band channel most modern clients build against.
  • TinTin++ A terminal client with its own scripting language, on every platform including phones, and a documented screen-reader mode.
  • Blightmud A modern terminal client in Rust, with Lua scripting, built-in text-to-speech and a screen-reader mode that announces itself to the server.