Following this thread, I want to take a crack at curing the stock telnet protocol negotiaton (or lack of it). I know that thread is now almost 2 years old, but this has been on my todo list since then.
Telnet negotiation was fixed in SMAUG and ROM codebases, but never in Circle, and tbaMUD unfortunately inherited this problem.
I've contacted elanthis on Facebook, and he's more than happy for me to use his libtelnet patch as a basis.
This comes with support for the following:
MCCP2 (MUD Client Compression Protocol, v2)
This effectively compresses the data passed between the server and the client, like if you zip a file, email it to a friend, and they unzip it. The player should see no visible difference except a speed improvement, as less physical data is being passed. This is used in CWG releases I believe, but in the days of modern broadband has become pretty obsolete.
MSSP (MUD Server Status Protocol)
This is useful is you register your MUD with a MUD list that supports it. It enables the MUD list to connect to your MUD and grab all kinds of info (MUD name, server URL/port, website URL, genre, number of areas/rooms/mobs/objects, etc...), which it then uses to keep the MUD list updated. Full MSSP support would include two update methods, telnet negotiation method and a 'plaintext' method. More info about MSSP here.
ZMP (Zenith MUD Protocol)
Used for sending messages outside of the normal data stream. This may be used for many things, such as keeping a small area of the client screen to display inventory or stats. Unlike other protocols, ZMP commands are passed entirely through telnet negotiation. More info on ZMP here.
I just wanted some feedback on these, should full support for these protocols be added to stock tbaMUD?
Personally, I think that MCCP is a waste of time. It was handy to compress the data stream at 9,600 baud when any speed-up was very noticable. Broadband makes MUD traffic virtually instant anyway, and compressing/decompressing the data stream may actually even slow it down...
MSSP however I think is very useful, and I would like to add a new cedit menu option to configure MSSP, with the option to send MUD info via telnet, plaintext, both or none. I've added a plaintext-only version to Trigun, and it updates this MSSP MUD List about 4-5 times per day...
ZMP I'm not sure about, but willing to make it a separate patch for anyone who wants it...
Adding proper telnet negotiation also paves the way for other protocols:
MXP (MUD Extension Protocol)
Allows the MUD to send HTML-like info to the client, to display in-line bitmap images, hypertext links, font changes and more. More MXP info here.
MSP2 (MUD Sound Protocol, v2)
Add sounds and background music to your MUD (different music for each zone? Light music for walking in fields, oppressive atmospheric music for dungeons, etc...). You can have the sound of swords clashing during battle, a gurgling death cry when a mob bites the dust. The original MSP only used telnet negotiation for turning MSP on, then used plaintext messages for the sound. MSP2 has moved the sound control purely into telnet negotiation.
Both of the above I plan to make patches for, as I feel they probably shouldn't be in the stock codebase.
Please let me know your thoughts, ideas and suggestions...



