mu*index
lezen
thema
MXP  [protocol]
Het MUD eXtension Protocol — HTML-achtige opmaak in de tekststroom, goed voor
klikbare links, afbeeldingen en formulieren. Breed gespecificeerd, ongelijkmatig
geïmplementeerd.
https://www.zuggsoft.com/zmud/mxp.htm

Gemeten adoptie
  122 van 886 vermelde spellen hebben we het zien aanbieden (13.8%)
  /nl/games?protocol=MXP

  De spellen die hier niet meetellen zijn geen spellen zonder het protocol. Een
  spel telt mee wanneer we zijn server de optie in een handshake hebben zien
  aanbieden; de rest zijn servers die het ons niet aangeboden hebben en servers
  waarvan we de handshake niet gelezen hebben, en welke van beide het is kunnen
  we niet zeggen.

  Naar codebase, van de spellen die we hebben vastgesteld
    CoffeeMUD            30 van 32 boden het aan
    CircleMUD            9 van 47 boden het aan
    ROM                  9 van 55 boden het aan
    DikuMUD              5 van 35 boden het aan
    SMAUG                5 van 20 boden het aan
    tbaMUD               4 van 5 boden het aan
    Evennia              2 van 11 boden het aan
    PennMUSH             1 van 34 boden het aan
    AresMUSH             0 van 18 boden het aan
    CobraMUSH            0 van 2 boden het aan
    FluffOS              0 van 28 boden het aan
    MUCK                 0 van 24 boden het aan
    RhostMUSH            0 van 40 boden het aan
    TinyMUSH             0 van 9 boden het aan

MXP bouwt een kleine, HTML-achtige opmaaktaal in de tekst die een server stuurt:
<send> voor een klikbaar commando, <a href> voor een link, elementen voor kleur
en lettertype, en een mechanisme waarmee een server eigen tags kan definiëren.
Het onderhandelt op telnet-optie 91.

Het ontwerpprobleem zit er inherent in en is interessant: de opmaak reist in
dezelfde stroom als de tekst, dus een server moet oppassen met tekst die er
uitziet als opmaak, en een client moet oppassen met wat hij weergeeft. Precies
daarom definieert MXP beveiligingsniveaus — een tag die binnenkomt in een regel
chat van een andere speler is niet hetzelfde als een tag die de server zelf
uitgestuurd heeft.

KLIKBAARHEID IS WAAROM MENSEN HET WILLEN

Waar MXP in de praktijk vooral voor gebruikt wordt, is north en namen van
voorwerpen veranderen in dingen waarop je kunt klikken. Voor een nieuwe speler
scheelt dat aanzienlijk, en daarom blijft het protocol geïmplementeerd worden
ondanks zijn complexiteit.

PUEBLO IS DIE ANDERE

Pueblo [/reference/protocols/pueblo] is ouder dan MXP en doet soortgelijk werk
met een andere aanpak, die letterlijker de vorm van HTML heeft. Een client die
het ene ondersteunt, ondersteunt het andere vaak niet, en de twee zijn makkelijk
te verwarren bij het lezen van een functielijst — een fout waarmee we in de
clienttabellen in dit onderdeel hebben moeten oppassen.

WAT WE METEN

Servers die telnet-optie 91 aanboden in een handshake die we waargenomen hebben.
Er wordt minder vaak over MXP onderhandeld dan over de out-of-bandprotocollen,
deels doordat veel van zijn waarde gerealiseerd wordt door servers die de opmaak
gewoon uitsturen en hopen, zonder ergens over te onderhandelen — en dat kunnen
wij niet zien.

Zie ook
  Pueblo — /nl/reference/protocols/pueblo
  MUSHclient — /nl/reference/clients/mushclient
  Mudlet — /nl/reference/clients/mudlet