[MUD-Dev] Re: clients anyone?...

James Wilson jwilson at rochester.rr.com
Thu Aug 13 07:49:40 CEST 1998


On Thu, 13 Aug 1998, Bruce Mitchener wrote:

>Why not use a protocol described by an XML DTD?  This would allow you to
>parse it easily with standard libraries in multiple languages and validate
>the data fairly easily.
>
>If you were to move to having all events from the server be broadcast to the
>clients in this protocol, you could support various types of clients off of
>the same server, with each one interpreting the data as it could best handle
>it.  For clients that might need only a tiny subset of the data involved
>(like a text-only client), one could set up a proxy server that connected to
>the server and would filter the event messages in a way specified by the
>client.  Users that required telnet-style access to the game could be
>satisfied by another proxy server which would 'render' the event messages
>into a more traditional textual format.

[more stuff on using xml snipped]

this is exactly the scheme I am planning, right down to the telnet proxy
server. In-server message passing (as, indeeed, the whole database) will be
represented by structures that map directly to and from a flavor of xml, so if
Fup tells Martha "I love you", this will be internally represented by a
"someone_says_something"  object and externally represented by xml looking
like

<someone-says-something sayer='Fup'>I love you</someone-says-something>

one issue here is how rich one should make the messages, as there is obviously
quite a bit of extra bandwidth here (parttally an artifact of my example). One
could compress the messages, but that's some extra cpu time. Another issue is
how you filter messages inside the server so a text-based client doesn't get
sent messages that only make sense for graphical clients. Both of these should
be pretty easy to make efficient.

If the internal-external distinction and machinery is hidden away somewhere, 
and its operation made totally transparent, one could then build a system on 
something like pvm (<url: http://www.epm.ornl.gov/pvm>) and PIOUS 
(<url: http://www.mathcs.emory.edu/Research/Pious.html) to split a bigass mud
across multiple machines. Attaching a remote object such as the crab's brain
process would then be a piece of cake.

James




More information about the mud-dev-archive mailing list