[MUD-Dev] Re: DevMUD: Inheritable modules

Robert Brady rwb197 at ecs.soton.ac.uk
Mon Nov 2 16:34:30 CET 1998


On Mon, 2 Nov 1998, Jo Dillon wrote:

>   I believe Robert Brady of this parish has created his own mud using
> dlopen'able modules. I don't know the address offhand I'm afraid :)

This is correct.

My mud has a small (7000 lines of C++) core. In itself, this implements
very little functionality, but provides the base for the mud components.
(I believe it would be possible to migrate more code from the core to
modules, but it's not high on my list of priorities right now).

The core accepts telnet connections, but plug-in modules handle things 
such as authentication and almost all commands. (The commands that handle 
code loading are implemented in the core for obvious reasons). Currently,
the modules contain about 14000 lines of C++.

Some modules depend upon other ones. For example, the modules `board'
and `mail' which provide boards and mudmail respectively, depend upon the
`mailboard' module, which provides a class for dealing with persistant
messages stored in a file.

The modules can be swapped in and out and reloaded on demand. This enables 
bugs to be fixed, and features implemented without the mud going down.

(Yes, this allows mistakes to be made, and crashes and nasty things to
 happen : but code is usually tested in a seperate process first, before
 adding it to the live mud. Even if you're using a language in which you
 are given more protection from stupid mistakes, like Java, its a bad
 idea to use untested code in a live server.)

For an extension language, I can plug whatever language I like in, as the
bindings are quite simple. Currently I'm using S-Lang, [1] and a peculiar
but quite nice mud-language which does not have a name (the compiler for
this language is approx 8K lines). I have been thinking about moving to
Scheme, but that's just an idea right now.

The mud (called `The Cryosphere') itself [2] is a mostly-implemented 
science-fiction quest-based mud. It offers nothing particularly
innovative, although I have been told that the building system is fairly 
nice. It's not officially open, as the world is currently too small, more
quests need adding, and many things need fixing.

Although the aim is to create a mud, not a codebase, the source code is
``available''. (In that right now there's nowhere to actually download it
from, but I'd be happy to make a release if there is interest. It would be
GPLed).

[1]
http://space.mit.edu/~davis/slang.html

[2]
telnet://fluffy.ecs.soton.ac.uk:6666

--
Robert Brady





More information about the mud-dev-archive mailing list