[DGD]New mudlibs

Bruce bruce at puremagic.com
Sun Jan 21 07:20:04 CET 2001


Tim Vernum wrote:
> There is (IMNSHO) little value is creating a mudlib that is
>  purely HTML based.
> That is just as bad as creating one that is purely telnet
>  based.
> The mudlib should not care what technology the clients are
>  using. It should perform object interaction, generate
>  outcomes are provide output in some form of markup (XML
>  perhaps).
> 
> Then you provide a "client_renderer" object on the DGD side
>  that converts the internal markup into a format that users
>  can handler.
> Pure text for the telnet users
> ANSI coloured text for the users with capable terminals,
> HTML(*) for the web users,
> Something else(**) for the Pueblo users.

We did something that was pretty much like this in another system
(not DGD or even LP-based).  It hasn't been touched much in the
last 3-4 years, and I haven't looked at it much since then, so I
might make some small errors.

We had a markup language, and compiled it to an internal format
that was rendered in two passes:
  * Generators: Took inputs and created new content
    in the output.  These could be switch statement,
    random numbers, ties into the weather system
    or whatever.
  * Formatters: These were the things that spewed
    the code that the client got to see in
    text, HTML, Pueblo, ANSI text, or whatever.

Most things had access to this, including all descriptions and
the help files, so it was also really easy to set up everything
to be browsable via a builtin webserver.

> That means you can also use MudML when someone develops it,
>  without having to re-write the mudlib.
> The biggest problem with moving existing mudlibs to a web
>  interface is that EVERYTHING assumes a text only output.
> Don't make the same mistake and assume an HTML only output.

With this system, we were able to support new extensions that
TkMOO had client-side support for as well. (Since it was one of
the more programmable clients, we used it for experimenting.)  It
was a very simple thing to do, and everything that used our
markup language automatically supported it.

> (**) I can't recall what Pueblo used exactly. Some form of SGML IIRC.

Pueblo was very limited HTML with some additional tags and some
small differences.

If I were to do this today, I'd be interested in looking at XML
and XSLT, and using a set of XSLT stylesheets to do the
formatting and hopefully the equivalent of our 'generators' as
well. (Although, I'd also probably want to avoid the overhead of
parsing by using some internal, compiled format again.)

 - Bruce

List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list