[MUD-Dev] PDMud (was Re: Bruce Sterling on Virtual Community goals)

Niklas Elmqvist d97elm at dtek.chalmers.se
Thu Oct 22 13:16:29 New Zealand Daylight Time 1998

On Wed, 21 Oct 1998 ApplePiMan at aol.com wrote:

[Module interdependencies:]
> Making assumptions about the existence of any particular module is a big 
> mistake, IMO. One of my personal pet projects (not necessarily something 
> my company will be doing) is a Wild West world, where there would be *no* 
> MagicModule, standard or otherwise. While I realize you were merely using 
> that as an example, I'm sure I could, given time, envision a world where 
> just about any "standard" module you care to mention would not be 
> applicable.

That's exactly my point. Inter-module dependencies should be very loose
and only cemented at run-time if it is absolutely necessary. Ideally, all
modules should communicate using a central message hub and not talk to
each other at all. This is the solution which IMHO is the most
"conceptually clean" one. If this becomes inefficient, we may need a
better mechanism for two modules to exchange data directly. 

So if you added a MagicModule to a PDMud running with a Wild West world,
it would just sit idle and vainly listen for MagicCommand requests on the
message hub. No other module would be interested in it when it says "i'm
here and I support the following requests" upon bootstrapping.

> IOW, I think modules would have to register themselves at runtime, with 
> the assumption being that are *none* until that registration takes place.

Yes. Some modules would not even have to check for modules which can
service its request, it would just emit the request/message to a data
chain. A network I/O module could just emit messages containing input from
the clients (along with socket information for identification) and not
care which module handles them, if at all.

> >Admittedly, you need *some* kind of coordination between modules. The
> >ParserModule must know the acceptable commands supported by the
> >other modules (or does it? Maybe this could be polled by a message from
> >the ParserModule: "Okay, send me your command grammars along with a way of
> >packaging this into a request you can capture.").
> Exactly. The module itself should tell the ParserModule (or better yet 
> some lower-level traffic director) when and how it wants to be called. 

Indeed. And this is something which not should be set into stone since
modules could potentially be unloaded and replaced at run-time. For
example, it should be possible to replace the parser module at anytime for
a newer version, and the new parser would have to emit a "tell me your
command capabilities and message format" request to which affected modules
would respond. 

> Anything less will limit the imagination of world designers. Perhaps I'm 
> atypical here, but I think limiting generated worlds to high fantasy, 
> with passing thought given to sci-fi, is far too constrictive. I want to 
> be able to model any world I can imagine.

Maybe this post is pointless in that I don't really object to (more like
wholeheartedly agree with) anything said in the original post, but this is
also what I would like to see. And by using a native code module model,
we'll hopefully be able to support any kind of world *efficiently*.

> -Rick.

-- Niklas Elmqvist (d97elm at dtek.chalmers.se) ----------------------
  "The trouble with being a god is that you've got no one to 
   pray to."
		-- Terry Pratchett, Small Gods

More information about the MUD-Dev mailing list