MudBytes
» MUDBytes Community » Coding Discussions » Protocols » MSSP » MSSP (Mud Server Status Proto...
Pages: << prev 1, 2, 3, 4, 5 ... next >>
MSSP (Mud Server Status Protocol)
Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#1 id:20240 Posted Feb 18, 2009, 10:00 pm

I was wondering if it might be an idea to create a generic server status protocol so a mud directory can gather information about MUDs.

Information that could be retrieved would be:

1. Uptime (epoch value).
2. Current number of players online.
3. Number of areas. (To deal with wilderness stuff)
4. Number of rooms.
5. Number of unique mobs.
6. Number of unique objects.
7. Number of help files.
8. Number of script lines.
9. Average bandwidth per month in MB.

Am I missing anything?
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#2 id:20241 Posted Feb 18, 2009, 10:36 pm

Format wise I was thinking of the following:

Defines:
Code (text):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
MSSP 70 /* free telopt value */
 
MSSP_GIVE 1
MSSP_TAKE 2
MSSP_SKIP 3
 
MSSP_UPTIME 1
MSSP_PLAYERS 2
MSSP_AREAS 3
 
 Client: IAC DO MSSP
Server: IAC WILL MSSP
 
Client: IAC SB MSSP MSSP_GIVE MSSP_UPTIME IAC SE
Server: IAC SB MSSP MSSP_TAKE MSSP_UPTIME 1235024422 IAC SE  /* Current time(NULL) value */
 
Client: IAC SB MSSP MSSP_GIVE MSSP_PLAYERS IAC SE
Server: IAC SB MSSP MSSP_TAKE MSSP_PLAYERS 2 IAC SE /* decimal value */
 
Client: IAC SB MSSP MSSP_GIVE MSSP_AREAS IAC SE
Server: IAC SB MSSP MSSP_SKIP MSSP_AREAS IAC SE /* Server hasn't implemented MSSP_AREAS or refuses to answer */
 
 

Rules:

MSSP_GIVE should be followed by a value between 1 and 244.
MSSP_TAKE should include a string of digits representing a positive decimal number.

The 0 and 255 byte should be avoided at all cost.

I think that'd be the easiest to implement. After finding IAC SB MASSP MSSP_TAKE you grab the option, then copy digits till you run into IAC SE. Avoiding the 0 byte avoids strlen and related issues and avoiding the 255 byte avoids having to double 255 to follow the telnet protocol and all the screwyness that follows from that.
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Last edited Feb 18, 2009, 10:37 pm by Scandum
Cratylus
Wizard






Group: Members
Posts: 1,768
Joined: May 22, 2006

Go to the bottom of the page Go to the top of the page
#3 id:20242 Posted Feb 19, 2009, 3:40 am

I like the idea in general. i do not like the straitjacketed categories.
Some of those things just don't apply for a lot of muds.

I would like a "other" field, in the manner of a table, with locally-definable
categories and values.

-Crat
http://lpmuds.net

Kline
Wizard






Group: Members
Posts: 724
Joined: Dec 14, 2007

Go to the bottom of the page Go to the top of the page
#4 id:20243 Posted Feb 19, 2009, 4:40 am

So reporting 0 players would be reported as a SKIP instead?
.........................
AckFUSS -- Check it out.

Tyche
Wizard






Group: Members
Posts: 1,702
Joined: May 23, 2006

Go to the bottom of the page Go to the top of the page
#5 id:20247 Posted Feb 19, 2009, 6:57 am

Why not use RFC 1572 to do it?

client - IAC DO NEW-ENVIRON
host - IAC WILL NEW-ENVIRON
client - IAC SB NEW-ENVIRON SEND USERVAR IAC SE
host -IAC SB NEW-ENVIRON IS USERVAR "ROOMS" VALUE "15000" USERVAR "PLAYERS" VALUE "52" USERVAR "OBJECTS" VALUE "12345" IAC SE

.........................
Proud member of Team Hetero
http://jlsysinc.gotdns.com/ladybug_laugh2.jpghttp://jlsysinc.gotdns.com/teensymud_250x80.pnghttp://jlsysinc.gotdns.com/palin_calendar.jpg
For now we see through a glass, darkly; but then face to face: now I know in part; but then shall I know even as also I am known.

Last edited Feb 19, 2009, 7:00 am by Tyche
elanthis
Wizard




Group: Members
Posts: 772
Joined: Feb 26, 2008

Go to the bottom of the page Go to the top of the page
#6 id:20252 Posted Feb 19, 2009, 8:08 am

Tyche, did you actually think most MUD programmers even know how the base TELNET protocol works, much less any kind of interesting extensions?  If they did, ZMP would have actually been as easy to implement in existing MUDs as I figured it would be when I designed it.  Most MUDs and clients don't even _try_ to handle TELNET properly, unfortunately.

I'm honestly (pleasantly) surprised that Scandum even knew about the sub-negotiation capabilities of TELNET.  :p
.........................
Cutting corners to keep your line count down is just sad.

Cratylus
Wizard






Group: Members
Posts: 1,768
Joined: May 22, 2006

Go to the bottom of the page Go to the top of the page
#7 id:20253 Posted Feb 19, 2009, 8:19 am

elanthis said:
the sub-negotiation capabilities of TELNET.  :p


Yknow I was kind of wondering about this.

It just so happens that I'm ever so slightly unignorant enough that I might be
able to implement this functionality for the network subsystem of the driver
of the lib I maintain. Assuming I understand what I'm looking at here, which
admittedly, I may not.

I think that using this sort of thing is probably cool and efficient and etc, probably
saves pandas, too, and sea kittens. But I wonder...if the idea is wide adoption of
this standard...perhaps making it higher level, though inelegant for some, might
best serve the intent?

Perhaps a known query string at the telnet connection for the mud's port that
can be string parsed and string replied to, then dropped?

-Crat
http://lpmuds.net

David Haley
Wizard






Group: Members
Posts: 7,783
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#8 id:20254 Posted Feb 19, 2009, 8:31 am

I see no real reason to make this telnet subnegotiation instead of some kind of higher-level RPC type of protocol.
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#9 id:20255 Posted Feb 19, 2009, 8:45 am

Cratylus said:
I like the idea in general. i do not like the straitjacketed categories.
Some of those things just don't apply for a lot of muds.

I think listing both areas and rooms solves most of the issues with roomless muds. More information, not variable information, should do the trick there.

Kline said:
So reporting 0 players would be reported as a SKIP instead?

No, you'd use '0' instead of '\0' there.

Tyche said:
Why not use RFC 1572 to do it?

client - IAC DO NEW-ENVIRON
host - IAC WILL NEW-ENVIRON
client - IAC SB NEW-ENVIRON SEND USERVAR IAC SE
host -IAC SB NEW-ENVIRON IS USERVAR "ROOMS" VALUE "15000" USERVAR "PLAYERS" VALUE "52" USERVAR "OBJECTS" VALUE "12345" IAC SE

Hadn't thought of that. It has the 0 byte issue, but other than that it would do the trick. I wonder if string based options ("UPTIME" instead of 1) are preferable?

elanthis said:
If they did, ZMP would have actually been as easy to implement in existing MUDs as I figured it would be when I designed it.

I actually briefly considered ZMP, but it's a somewhat silly protocol and comes with too much bloat.
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#10 id:20256 Posted Feb 19, 2009, 8:54 am

Cratylus said:

Perhaps a known query string at the telnet connection for the mud's port that can be string parsed and string replied to, then dropped?

Oh joy, another !!MSP cludge?

DavidHaley said:
I see no real reason to make this telnet subnegotiation instead of some kind of higher-level RPC type of protocol.

Because most muds have some kind of telnet subnegotiation support given the popularity of MCCP. This would be relatively easy to add, while an extensible negotiation protocol would be 1) too much work 2) unmanageable.

.........................
TinTin++ Mud Client - I can't believe it's not butter!

Cratylus
Wizard






Group: Members
Posts: 1,768
Joined: May 22, 2006

Go to the bottom of the page Go to the top of the page
#11 id:20257 Posted Feb 19, 2009, 9:03 am

Scandum said:
I think listing both areas and rooms solves most of the issues with roomless muds. More information, not variable information, should do the trick there.


I disagree. I very much support the intent, but locking in
categories like this imo is not necessary and limits extension.
Again, if wide adoption is the idea, I would suggest more
flexibility, rather than one size fits all. Fixing/mitigating
unnecessarily-limiting specs in old systems/protocols/langs
is just what we already have enough of.

I don't think "well then, let's just make sure we think of
everything and don't miss anything" is a reasonable approach.


Quote:
Oh joy, another !!MSP cludge?


If the idea here is a spec that is to be widely useful and adopted, then I think
it is necessary to entertain the notion that your favorite ultra efficient method
may not actually achieve the goal of being widely used, and should be reconsidered.

-Crat
http://lpmuds.net

Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#12 id:20258 Posted Feb 19, 2009, 9:23 am

Cratylus said:
I don't think "well then, let's just make sure we think of everything and don't miss anything" is a reasonable approach.

Using a predefined value is mainly done for ease of implementation, then again, without a c implementation snippet it won't be adopted anyways, so I guess a more open ended option would indeed be a plus.
Cratylus said:

Scandum said:
Oh joy, another !!MSP cludge?

If the idea here is a spec that is to be widely useful and adopted, then I think
it is necessary to entertain the notion that your favorite ultra efficient method
may not actually achieve the goal of being widely used, and should be reconsidered.

Don't underestimate the appeal of an elitist protocol.
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Last edited Feb 19, 2009, 9:24 am by Scandum
Tyche
Wizard






Group: Members
Posts: 1,702
Joined: May 23, 2006

Go to the bottom of the page Go to the top of the page
#13 id:20259 Posted Feb 19, 2009, 10:11 am

I think the open endedness of the environment variables has the added bonus of querying or sending information that one thinks is useful.
Surely you don't think lines of script is more important than getting back USERVAR "BDSM" VALUE "Y" USERVAR "FURRY" VALUE "Y" USERVAR "LASG" VALUE "Y"? ;-)
As a matter of fact one could send one's entire mud listing in the form of variables. 
Wouldn't that make updating one's mud listing... other than domain name/IP/port sort of an automatic process?
.........................
Proud member of Team Hetero
http://jlsysinc.gotdns.com/ladybug_laugh2.jpghttp://jlsysinc.gotdns.com/teensymud_250x80.pnghttp://jlsysinc.gotdns.com/palin_calendar.jpg
For now we see through a glass, darkly; but then face to face: now I know in part; but then shall I know even as also I am known.

David Haley
Wizard






Group: Members
Posts: 7,783
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#14 id:20260 Posted Feb 19, 2009, 10:22 am

Scandum said:
Because most muds have some kind of telnet subnegotiation support given the popularity of MCCP. This would be relatively easy to add, while an extensible negotiation protocol would be 1) too much work 2) unmanageable.

I'm not convinced it's any more work than trying to exhaustively list all categories while at the same time maintaining open-endedness. I'm also not sure what would be so unmanageable about it. It would only be a question-answer protocol, with nothing happening other than: "what is your value for X", followed by "abc" or "not-applicable".
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Scandum
Wizard






Group: Members
Posts: 1,783
Joined: Aug 8, 2006

Go to the bottom of the page Go to the top of the page
#15 id:20261 Posted Feb 19, 2009, 12:06 pm

Tyche said:
I think the open endedness of the environment variables has the added bonus of querying or sending information that one thinks is useful.
Surely you don't think lines of script is more important than getting back USERVAR "BDSM" VALUE "Y" USERVAR "FURRY" VALUE "Y" USERVAR "LASG" VALUE "Y"? ;-)

I'm clueless what LASG stands for? And as a matter of fact, I find the number of script lines more important than the number of rooms, I like interactive worlds.

Tyche said:

As a matter of fact one could send one's entire mud listing in the form of variables. 
Wouldn't that make updating one's mud listing... other than domain name/IP/port sort of an automatic process?

It would, even the IP address could be set automatically.
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Pages:<< prev 1, 2, 3, 4, 5 ... next >>

Valid XHTML 1.1! Valid CSS!