25 Feb, 2009, Cratylus wrote in the 121st comment:
Votes: 0
KaVir said:
I started having a think about how I'd fill out the list for my own mud, and came up with some questions about some of the fields


I have a few "yes but what if"'s myself. That was one of my original
concerns regarding the straitjacketed feel of some of the categories.

Here's a thought. Maybe each category should have a "-NOTES" field associated with it…


"UPSINCE: 1230434401\r\n"
"UPSINCE-NOTES: last hotboot 1234567890\r\n"

"CLASSES: 4\r\n"
"CLASSES-NOTES: these are optional, classless available\r\n"

"RACES: 1\r\n"
"RACES-NOTES: two of the classes are a kind of race\r\n"

"ROOMS: auto-generated\r\n"
"ROOMS-NOTES: generated rooms persist after creation, currently ~5000\r\n"

-Crat
http://lpmuds.net
25 Feb, 2009, Scandum wrote in the 122nd comment:
Votes: 0
KaVir said:
UPTIME: With an exec copyover/hotreboot the mud process restarts, but from a player's perspective the mud is never down (in fact, unless you explicitly tell your players that the mud has rebooted, they might not even notice). Should such a reboot reset the UPTIME?

If you can be bothered to add passing the previous boot time along to the new process, sure. Common sense applies I think.

KaVir said:
PORT: Some muds allow you to connect through multiple ports.

Hrm, hadn't thought about that yet. They could use the port option multiple times reporting their main port last.

KaVir said:
LAUNCHED: Is this the first time people could connect? The first time the general public could connect? The year the mud left beta testing?

So hard to enforce they can fill in whatever.

KaVir said:
AREAS: What about areas that are only open for special events (eg Christmas-themed areas)?

That's up to you, but I don't think anyone would give you the stink eye if you included those.

KaVir said:
HELPFILES: Typing "help stats" and "help statistics" references the same help file - I assume this would count as one help file? Typing "help build" lists one of six different help files depending on your class - I assume this would count as six help files? Certain help files are only accessable internally, not via the "help" command - would they count towards the total? Certain help files are stored, formatted and partially generated by a separate system (eg quest tasks), although they are also accessable via the "help" command and indistinguishable from regular help files from a player's perspective - would they count towards the total?

Entirely up to you, common sense applies.

KaVir said:
WORLDS: As with areas, I have a Christmas-themed world which is only there in December. Also, each player has their own "world", but I'm assuming those wouldn't count. What exactly is the definition of a "world"?

The definition is entirely up to you. I think ultimately it's the community that needs to enforce that muds don't fill in random values.

KaVir said:
RACELESS: Some of my classes are technically also races, but there's no independent concept of "race". I assume that's "raceless"?

Could be classless, but classless generally refers to an open skill system. Not sure how I'd handle a variable for an open skill system, suggestions anyone?
25 Feb, 2009, Grimble wrote in the 123rd comment:
Votes: 0
Cratylus said:
Grimble said:
Rather, a MUD markup language is needed for the key::value pairs of data

What do you think would be necessary beyond the examples I gave?

Your example would work just fine. After some thought though, I would advocate the use of a standard markup language instead (such as XML, but there are certainly others). This opens up the use of third-party tools to validate/process/format the reply, making it potentially easier to integrate the service into a MUD aggregation site.
25 Feb, 2009, Scandum wrote in the 124th comment:
Votes: 0
Grimble said:
Your example would work just fine. After some thought though, I would advocate the use of a standard markup language instead (such as XML, but there are certainly others). This opens up the use of third-party tools to validate/process/format the reply, making it potentially easier to integrate the service into a MUD aggregation site.

But also potentially more difficult.
25 Feb, 2009, David Haley wrote in the 125th comment:
Votes: 0
Well, the format he gave is a standardized format, you just might not know it. :wink: (It's Tcl, for the record.) XML is far too heavyweight IMO, and XML libraries tend to be a PITA to use. The Tcl format is so utterly simple that I could write you a parser in almost any language in less than an hour.
25 Feb, 2009, Grimble wrote in the 126th comment:
Votes: 0
DavidHaley said:
Well, the format he gave is a standardized format, you just might not know it. :wink: (It's Tcl, for the record.) XML is far too heavyweight IMO, and XML libraries tend to be a PITA to use. The Tcl format is so utterly simple that I could write you a parser in almost any language in less than an hour.

Doesn't look like Tcl to me, but it's been 15 or more years since I last played with it. But to stay on point, do select a standardized markup/format (XML, YAML, SDL, whatever) so that the option is there to take advantage of third-party tools to process it.
25 Feb, 2009, David Haley wrote in the 127th comment:
Votes: 0
Well, to be precise, the format is more like: key: {tcl value}. The only complexity here is representing the values which can be lists with lists inside; the key/val part itself is trivial. Compared to other markup languages, like YAML (AFAIK) and especially XML, the Tcl list/string format is extremely simple. I think it would be silly to adopt something so heavy as XML just to be able to use third-party tools.
25 Feb, 2009, Scandum wrote in the 128th comment:
Votes: 0
Maybe start a different thread to discuss MSSP for Donkeys? I'd call it for Dummies, but that's ™.
25 Feb, 2009, David Haley wrote in the 129th comment:
Votes: 0
Sure, just as soon as you start one for MSSP for Elitist Client Writers who Think that Everyone Will Adopt their Genius Protocol. :rolleyes:
25 Feb, 2009, Scandum wrote in the 130th comment:
Votes: 0
DavidHaley said:
Sure, just as soon as you start one for MSSP for Elitist Client Writers who Think that Everyone Will Adopt their Genius Protocol. :rolleyes:

I already did, you're in it.
25 Feb, 2009, Cratylus wrote in the 131st comment:
Votes: 0
Scandum said:
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?


This is the OP. This thread is on topic.

-Crat
http://lpmuds.net
25 Feb, 2009, Grimble wrote in the 132nd comment:
Votes: 0
DavidHaley said:
Well, to be precise, the format is more like: key: {tcl value}. The only complexity here is representing the values which can be lists with lists inside; the key/val part itself is trivial. Compared to other markup languages, like YAML (AFAIK) and especially XML, the Tcl list/string format is extremely simple. I think it would be silly to adopt something so heavy as XML just to be able to use third-party tools.

Again, XML is just one possibility (I'm not married to it), though I'm not sure why you consider it to be more heavyweight than the other options. There are XML libraries available for almost every language (some less feature rich than others), just as there are libraries available for the other options. Granted, the data we're talking about to date is pretty flat, but could evolve into lists and trees over time. Future proofing is always a worthy goal.
25 Feb, 2009, David Haley wrote in the 133rd comment:
Votes: 0
I'm not sure I like the idea of having a format that imposes too much structure on the data, because several fields we're talking about aren't really structured to begin with – there's a lot of free-form exceptions cropping up. I would rather "future proof" the data with a version field than trying to over-engineer all possible future extensions right now. I have this opinion as I would like to get something done sooner rather than later.
25 Feb, 2009, Cratylus wrote in the 134th comment:
Votes: 0
Grimble said:
Again, XML is just one possibility (I'm not married to it), though I'm not sure why you consider it to be more heavyweight than the other options. There are XML libraries available for almost every language (some less feature rich than others), just as there are libraries available for the other options. Granted, the data we're talking about to date is pretty flat, but could evolve into lists and trees over time. Future proofing is always a worthy goal.


I'm neither especially for nor especially against having
the *option* to return values in XML form. I'm perfectly
cool with having the request string optionally append "-XML"
(or whatever) to get extra fancy rich doodads. Fine by me.

But the base-protocol-anyone-can-use I think should avoid
stuff that requires "libraries". At its simplest (and I'd
like to get the walking done before the running) I think
it should be something as easily eye-parsable as machine-.

-Crat
http://lpmuds.net
25 Feb, 2009, Grimble wrote in the 135th comment:
Votes: 0
Let's circle back for a moment… As I understand it, MUD sites (not MUD clients) are the consumers of the MSSP data. It's been ages since I developed any web content (e.g., Microsoft IE didn't exist back then), but if I'm safe in assuming (which remains to be seen) that dynamic content is still typically generated by embedded or local scripts, then taking advantage of an existing library for a well-known format provides an easy way to parse and format the MSSP response.

BTW, this also plays into the approach of putting the MSSP request and response into the normal i/o stream rather than using telnet options, with the script taking advantage of an existing socket library to connect to the server, send the MSSP request, scrape off the MSSP response, and disconnect.
25 Feb, 2009, David Haley wrote in the 136th comment:
Votes: 0
Grimble said:
then taking advantage of an existing library for a well-known format provides an easy way to parse and format the MSSP response.

I might not have made the point clearly enough earlier, but I can provide said libraries quickly for major programming languages. The format is dead simple, easily readable by the human eye, easily readable by machines. In fact, I wouldn't be surprised if there were already libraries to parse exactly this kind of string – maybe even explicitly Tcl parsing libraries.
25 Feb, 2009, Grimble wrote in the 137th comment:
Votes: 0
DavidHaley said:
I might not have made the point clearly enough earlier, but I can provide said libraries quickly for major programming languages. The format is dead simple, easily readable by the human eye, easily readable by machines. In fact, I wouldn't be surprised if there were already libraries to parse exactly this kind of string – maybe even explicitly Tcl parsing libraries.

If a library exists for the example format, then great - use it. But certainly don't re-invent the wheel otherwise. There are several formats available, that are in wide use, and are sure to be supported into the future.
25 Feb, 2009, David Haley wrote in the 138th comment:
Votes: 0
Are the formats you suggested as simple and easy to read as the Tcl strings/lists? XML certainly is not. YAML doesn't seem so to me. I'm not aware of the third one you gave. Anyhow, if they're not, I would say that's a fairly compelling reason to avoid them.
25 Feb, 2009, Grimble wrote in the 139th comment:
Votes: 0
David Haley said:
Are the formats you suggested as simple and easy to read as the Tcl strings/lists? XML certainly is not. YAML doesn't seem so to me. I'm not aware of the third one you gave. Anyhow, if they're not, I would say that's a fairly compelling reason to avoid them.

Yes. Here are a few for comparison…

Crat's psuedo Tcl:

"UPSINCE: 1230434401\r\n"
"UPSINCE-NOTES: last hotboot 1234567890\r\n"
"CLASSES: 4\r\n"
"CLASSES-NOTES: these are optional, classless available\r\n"
"RACES: 1\r\n"
"RACES-NOTES: two of the classes are a kind of race\r\n"
"ROOMS: auto-generated\r\n"
"ROOMS-NOTES: generated rooms persist after creation, currently ~5000\r\n"

XML:

<UPSINCE>1230434401</UPSINCE>
<UPSINCE-NOTES>last hotboot 1234567890</UPSINCE-NOTES>
<CLASSES>4</CLASSES>
<CLASSES-NOTES>these are optional, classless available</CLASSES-NOTES>
<RACES>1</RACES>
<RACES-NOTES>two of the classes are a kind of race</RACES-NOTES>
<ROOMS>auto-generated</ROOMS>
<ROOMS-NOTES>generated rooms persist after creation, currently ~5000</ROOMS-NOTES>

YAML:

UPSINCE: 1230434401
UPSINCE-NOTES: last hotboot 1234567890
CLASSES: 4
CLASSES-NOTES: these are optional, classless available
RACES: 1
RACES-NOTES: two of the classes are a kind of race
ROOMS: auto-generated
ROOMS-NOTES: generated rooms persist after creation, currently ~5000

SDL:

UPSINCE "1230434401"
UPSINCE-NOTES "last hotboot 1234567890"
CLASSES "4"
CLASSES-NOTES "these are optional, classless available"
RACES "1"
RACES-NOTES "two of the classes are a kind of race"
ROOMS "auto-generated"
ROOMS-NOTES "generated rooms persist after creation, currently ~5000"

The current data set is flat, and can be accessed as a simple attribute map, but if we expect the data to evolve, and the attribute to potentially be more complex (e.g., lists and trees), then I would strongly recommend adopting one of the standard formats that will already have a library to parse it with.
25 Feb, 2009, David Haley wrote in the 140th comment:
Votes: 0
Those examples are the uninteresting ones – it gets more interesting when you have lists. I was sort of hoping for an example that dealt with the list example he gave. It can handle lists without any issue.

Again, it's possible to extend the protocol by versioning it – that lets us cross bridges when we get there and all that. If however you have a use case for trees, that would be reason to do it now.
120.0/244