[MUD-Dev] string parsing

Adam Wiggins nightfall at user2.inficad.com
Fri Nov 14 01:53:53 CET 1997


[coder at ibm.net:]
> >:		   Far side of the street
> >:   ----------------------<wall>------------------------------------
> >:
> >:			 <Boffo>
> >:
> >:		 HHHHHHHHHH WWWWWWWWWWW
> >:	<Bubba>  H horses H WW wagon WW  <Bluto>
> >:		 HHHHHHHHHH WWWWWWWWWWW
> >:
> >:			  <you> 
> 
> A lot of it appears to be able to be handled be looking for other objects
> of comparable and larger (within a scoping) magnitude within a reasonable
> distance.  Thus you refer to a man as being in front of a wall, despite
> the fact that he is also on the far side of a small pebble.  However, the
> same man is not in front of a massive mountain on the horizon, but is at
> the head of the wagon on the road, as that is the next available suitably
> sized relational object...
> 
> This revents placing the flea on the horse's nose in the first example as
> relative to the fleet.  The next ranged comparable object is the horse.

This is where object heirarchies become, IMO, vital.  If you want large
scale description handling, objects have to be broken into sub-objects, and
so on down until you get to the minimum scale that you desire.  Not only
this, but I think some sort of simple recognition code is vital - the
flea on the horse's nose just sees a vast expanse of brown hair.  When
he takes off he sees the horse's nose.
A more pratical example might be a huge space station.  At one level you
see that you're on a metal platform.  At another level you see that you're
on the starbord hull of a Corelian cruiser.  At a further distance you
see that you're on a Corelian cruiser which is docked with a Star Destroyer.
At another level you see that the Star Destroyer is docked with the Death
Star.
Even a planet could potentially work like this:

] l
A grassy plain stretches for as far as the eye can see.  A tree looms
directly ahead of you.
] wear pack
You strap on a jet pack.
] u
You fly upwards.
A tree upon a grassy plain lies below you.
] u
You fly upwards.
A grassy island lies below you.
] u
Several lush islands in a blue sea lie below you.
] u
Several tiny islands just off the coast of a large continent lie below you.
] u
A large continent lies below you.
] u
Several continents lies below you on a blue and green planet.
] u
A planet obscured by clouds lies below you.
] u
A solar system with nine large satellites lies below you.
] u
A disc-shaped galaxy spins below you.

etc.  Insert the old naming code and you get more informative information
like 'Earth lies below you' and 'Several tiny islands lie off the coast
of Asia.'

It seems like there are several semi-seperate issues here:

 Scale - handled by sub-objecting or group containers?

 Recognition - memory code, likely relies on scale to a certain degree.

 Positioning - Relative to facing and position.  Objects far away are
  treated as if on a much larger scale to simulate perspective.  This
  is where, I believe, good object groups are essential.  Otherwise
  whenever a character looks into the night sky you have to compute
  in every object located on every planet circling every star in the
  sky.




More information about the mud-dev-archive mailing list