MXP/Extending MUD Technologies (Was Re: [MUD-Dev] Object Representations?)
KevinL
darius at bofh.net.au
Thu Aug 24 11:56:43 CEST 2000
>>> Nathan Clemons wrote
> A "holdout" who happens to still be interested in technologies of this
> nature. :)
You're not the only one. We've started down the road of creating something to
hopefully address your points, and others. My thinking at the moment is as
follows:
Start with a very simple XML spec of some sort - we've started with
something that duplicates the necessary (for us) bits of any OO RPC system
(http://www.bofh.net.au/mud/doc/zwiki/MoebiusXML), simply because that allows
us to encapsulate _any_ scheme quickly and easily for testing, by calling
remote methods (decodeMethodBlah(data)). It's envisaged that when we work out
a proper scheme, this all will change, although I am growing quite fond of the
system as it stands ;)
Run this over something like BXXP
(http://xml.resource.org/profiles/BXXP/bxxp.html) to solve the problems we
don't want to solve (BXXP allows for opening multiple channels on a single TCP
pipe, so you can communicate while large blocks of data are flowing etc.
Theoretically, this could also be used for opening a data channel and a
control channel, or whatever).
Encapsulate _everything_ - if everything's encapsulated, then the whole issue
of "is this player data, or is this server data" vanishes. I run a seperate
port - 5050 - to handle client connections, but we could easily auto-negotiate
on login or something.
Treat the client like a server - I want my clients to potentially have the
same level of flexibility as the server, at least at the protocol level. That
way, we loose nothing and bind ourselves into nothing.
We're currently looking at a bunch of ways to make message objects - that
lispish setup was nice, someone else posted us an LP-based one that looked
kinda neat too. Once those are sorted, we look at rendering into XMLish, into
telnet, maybe into web - whatever.
The system as it stands can support either calling particular render methods
for everything, to test your own render methods, or it can support starting to
define particular commands (ie. "every mud client shall offer a "loginRequest"
command, which takes a list of variable definitions and a command
name. It will retrieve data for each of those variables according to their
definitions, and call the provided command name with those variables
provided."). That lets us play with both a fully generic rpcish setup, and a
more specific "mudXML" design, depending on what looks more useful.
To be honest, the big problem with this stuff is not technical - these are, in
the main, solved problems. The big issue is political - how the hell do you
get a bunch of mud admins to actually agree on anything as interesting as a
spec for server/server and server/client chatter?
Oh, and the fact that there's a few other options out there clouds things -
each alternative solves it's own problem domain (sometimes well, sometimes
not). I have a weakness for generic solutions, so that's the direction I'm
taking, but it's possibly not as efficient in first draft as some other
alternatives. More to the point, each alternative is niched - it works with
it's own codebase, and that's it.
I'd dearly love to be able to offer AI people an object view of the world - say
"all events will be received as this sort of structure, with these sorts of
things defined" - that would work on basically _any_ mud. Let's face it,
we're all sending information about surroundings and events - I reckon it
_can_ be laid out in an extensible way, so that even where you might not
recognise a particular mud's particular little portion of cool stuff, you can
get the general gist of what's happening enough to function.
End rant ;)
>
> It's still my feeling, that with care:
>
> * HTML-like styles make it easy for server-side developers and clients to
> understand. Perhaps something more XML-ish is in order, but I wouldn't
> know. Never played with the stuff. Something along this line is also
> easier for the clients to develop and render to the viewer/player.
>
> * The ability to display images is going to become a very big "plus" in
> creating an ambiance or environment.
>
> * Security is a matter of degree. I wouldn't allow people to pass HTML
> tags to my CGIs in most circumstances, nor would I allow players to pass
> MXP tags to the MUD, in most circumstances. The amount that the client has
> to "trust" the server, IMHO, is extremely limited.
>
> Maybe MXP isn't the right technology for expanding the technical
> capabilites of the current text-bound (IMHO, read: moribund) flavor of MUD
> codebases currently extant.
>
> What other technologies are there? Still open to suggestion. :)
>
> --
> Nathan P. Clemons "Peace favor your code."
> nathan at windsofstorm.net ICQ: 2810688
> (v) 401.725.6061 (f) 603.372.9737
>
>
>
>
> _______________________________________________
> MUD-Dev mailing list
> MUD-Dev at kanga.nu
> http://www.kanga.nu/lists/listinfo/mud-dev
>
KevinL
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
http://www.kanga.nu/lists/listinfo/mud-dev
More information about the mud-dev-archive
mailing list