[MUD-Dev] Re: MUD Design doc (long)

Mik Clarke mikclrk at ibm.net
Sun Jan 10 21:34:02 New Zealand Daylight Time 1999

Nathan F Yospe wrote:
> On Sat, 9 Jan 1999, Mik Clarke wrote:
> :Nathan F Yospe wrote:
> :> Like I said, props are all that can be done with my design.
> :I've implemented the detailed descriptions as chains of keywords,
> :conditions and descriptions attached to rooms and objects. (Extending
> :the Diku/ROM Extra Descriptions). 
> :An example might be a mage examining a sword:
> :>examine sword
> :A fine blade of polished steel.
> :It looks quite sharp.
> :...and a warrior examining the same blade...
> :>examine sword
> :A fine blade of polished steel.
> :It has a razor honed edge and is undoubtably the work of the weapon
> :smiths of FooBar. This is a rare and valuable blade.
> How is this accomplished in code?

Firstly, I've implemented a reusable 'conditional' mechanism that I hook
in in quite a few places.  Conditional descriptions are just on of the
places it is used.  Each condition specifies an entity (world, actor,
observer etc), an item to check (skill, time, spell_affect) and one or
two values to chack against.

The sword starts with its name - sword steel
Then it has a long description - A fine blade of polished steel

Then it has a set of extended descriptions, using it's name as the key.
Each may have one or more optional conditions specified.  

'It looks quite sharp.'
Condition: actor->skill->sword 0 15

'It has a razor honed edge and is undoubtably the work of the weapon
 smiths of FooBar. This is a rare and valuable blade.'
Condition: actor->skill->sword 16 -1

'You can see glowing runes within the sword.'
Condition: actor->is->detect_good

When you examine the sword it also runs a check through the extra
descriptions to see which other ones you can see. For rooms, the
constant string 'room look' is used.

Recording of things is done via an 'deed' mechanism which remembers
things that have been done.  A deed condition (actor->deed->deed_vnum)
is used to pull it into the checks.

> :This is a somewhat more subtle role-playing effect than most Diku
> :derivatives aspire to, but I quite like it.
> I'm still working on tuning this sort of effect with my memory net. There
> is a lot left to do, as I let this project lie fallow for over a year.
> It does add a large personal touch, however, in that a character may have
> partial recollections akin to deja vu (an unsuccessful retrieval) or some
> sort of imperfect memory, where some details fit, but many have been put
> together to fill the picture in. Neural nets are great that way. Even out
> of their natural environment, they are powerful.

Hmmm. This sounds interesting. Are you using just forward feed nets or
do you allow feedback loops?
> :> On the other
> :> hand, comparing the sizes of a (mostly inherited) prop and a description
> :> from a DIKU (probably unfair, as any other codebase would probably use a
> :> text compression scheme), I don't see a lot of difference... 
> :Hmmm. So your entire world looks like it was furnished by Habitat? The
> :same pine tables and wooden chairs everywhere? 
> No repops. There are a lot of variations that are randomized, but things
> are mostly unique because of the multiple regions of inheritance. Style,
> composition, and structure all factor into manufactured goods, and there
> is a lot more than that going on with the native flora and fauna on each
> world. Descriptions are dynamic, so even two identical chairs might look
> somewhat different in different settings, and inheriting a different set
> of factors on the same chair object, which has structure definitions
> like size and set of legs, height and back type, and perhaps some major
> and minor components information like padding and frame and trim, could
> give you an ornate oak chair and a gaudy gold chair and a plastic chair
> with softer plastic padding... and the weights and strengths and values
> of each would be calculate, and the descriptions would be quite detailed
> and even, if I were the author of the style module, artistic. 99% of the
> work in describing it would be done by the client, leaving the server to
> its vectorized 4D tracking and thermodynamic devolution. You didn't
> think I just called it Physmud for no particular reason, did you? Yes, I
> know there are flaws here. Tables and chairs don't make sense for some
> alien culture, which means a lot of things have to be created from very
> simple base constructs.

How many Crays do I need to run it?  Quake seems to have problems with
more than 10-15 players over the net...

Do you guarentee that everyone in the same room at the same time sees
the same thing?  Or can some be looking at a plastic chair while others
are looking at a golden throne? 


More information about the MUD-Dev mailing list