[MUD-Dev] Re: DevMUD: Inheritable modules

The Arrow arrow at trelleborg.mail.telia.com
Sat Oct 31 18:25:15 New Zealand Daylight Time 1998

On Fri, 30 Oct 1998, Chris Gray wrote:

> [Joachim Pileborg/The Arrow:]

>  >MUDs must have at least the following interfaces to be DevMUD compliant:
>  >  o Module
>  >      The Module interface contains functions to get info about the
>  >      module and configuring the module.
>  >  o Net
>  >     The Net module is an abstract interface, containing just dummy net
>  >     functions.  Modules inheriting this interface must provide real
>  >     implementations for these functions.
> Are you really speaking of what a MUD must implement in order to be
> compliant with DevMUD? Or are you speaking of what modules must
> implement in order to be usable with a DevMUD core? In the latter case,
> why must all modules implement the Net interface?

I'm speaking about what modules (or rather, interfaces) a MUD must have to
call itself a DevMUD.  At this point I would like to explain my thoughts
about what I mean about 'DevMUD compliance'.
I think that we should not only "just code" DevMUD, but also set a standard
that anyone can use to build their own DevMUD.  By doing this, anyone can
make their own DevMUD core (in whatever programming language he/she wants,
as long as it can handle the standard), download needed modules from some
central module repository, and tell everyone "Look, I made my own DevMUD!".

>  >If a module inherits an interface not in the interface database, the
>  >module is unloaded and an error message should be logged on the console
>  >and sent as a message to all loaded modules.
> Why? If a module is loaded, and it implements an interface that no-one else
> has heard of, so what? Perhaps the very next module to be loaded needs
> that interface, and the two are being loaded as a pair. Just add the
> interface to the table of interfaces, and have it ready for use. I also
> think that the only interfaces that the core need already know about are
> those which it exports, or which it generically requires of all modules
> (e.g. your Module interface).

The main purpose of this 'database' (maybe a bad word?) is to act like a
sort of dependancy file.
For example:  If a module say "I need the Telnet interface!", the core looks
at its database and if the Telnet interface is found, it loads the module
containing the Telnet interface (if it isn't loaded already) and tells the
module asking for it "Here you go, one Telnet interface ready for use."

/ Joachim
The Arrow                   Email: arrow at trelleborg.mail.telia.com
Joachim Pileborg              WWW: http://w1.410.telia.com/~u41003102/
"They say I don't give a shit about anything," -- Magnus Uggla
"but I don't give a shit about that."        (translated from swedish)

More information about the MUD-Dev mailing list