[MUD-Dev] Introduction

clawrenc at cup.hp.com clawrenc at cup.hp.com
Wed Aug 13 16:46:02 New Zealand Standard Time 1997


In <199708080243.QAA24348 at mail.pixi.com>, on 08/07/97 
   at 09:38 PM, "Dan Armstrong" <orion at pixi.com> said:

>I would like to finally introduce myself.

Welcome.  (Tardy I know)

>For storing objects I use a tree that is twenty levels high, based on
>the following pattern.  Each level in the tree, except for the last,
>holds four smaller pieces of the tree.  If any of those four are
>null, then there aren't any objects in the area covered by that
>piece.  The last level in the tree is either null if nothing is
>there, or points to the head object of a linked list of every item
>that is at that location.

What do you do when Bubba dumps 50,000 individual pieces of gold,
pebbles etc all at the same location?  Have a lost 50,000 items long?

>Open areas are compressed well by the database, as are groups of
>objects.  I've discovered ways of efficiently handling sound and
>finding all objects within a given area, but what I am currently
>working on is figuring out how the look command will work.

>Every Living has a minimum size of object that they can see, a
>maximum distance they can see, and a height for their point of view. 

Ergo Bubba can't see mount Kraktoa erupting if it just beyond his
vision range?  Wouldn't it make more sense to have the CanISeeIt()
function use a perspective scale such that the size of object/event
available to be seen ranges from very tiny close up to huge at great
distances?

>If I am three feet tall, and you are six, you will be able to see
>over a five foot wall, while I cannot.  If you lift me up, then I can
>see over.  If a dragon is flying 100 meters in the air, and I am
>three feet tall, stepping right up to the wall I will not see the
>dragon flying.  If I then take a couple steps back from the wall, I
>will see the dragon flying beyond the wall.

How do you determine the fact of visual obstruction?


How about the case (mapped from overhead):

              Z
              Q
            ############################

          X Y

  The #'s are an infinitely high opaque wall.
  
  Z is a dragon.

  X is a player who should be able to just see a fragment of the
dragon (not all) about the end of the wall.

  Y can't see the dragon at all as the wall hides it.

  The dragon can just see X's head.  

  The dragon can't see Y.

Now how about if the wall is translucent:

  Q can see both X and Y dimly thru the wall.  

  Z of course can see Q.

  X and Y can't see Q.

Next up is transparent.

>The processing of objects and their positions is not a big problem...

Curious: How do you do your range generation?  How do you determine
what  objects to exclude on the basis of vosual interference?  Ray
tracing?

>...but how to give the player an intelligent description of what they
>see is difficult.  I could simply list everything from closest to
>farthest, but that would not be very intelligent.

>You see:
>a wall
>a tree
>a squirrel (climbing a tree)

>I would like something a little more like:

>You see a wall, behind the wall is a tree with a squirrel climbing
>it.

Order the list of ranged objects by range, group them with the list by
proximity, group the proximate groups by angular visual proximity (ie
direction), order the resultant groups by interest level (volcanoes
are interesting, fleas farting are not), cut off all groups beneath a
minumim interest level, generate text moving from the highest interest
group on down.

--
J C Lawrence                           Internet: claw at null.net
(Contractor)                           Internet: coder at ibm.net
---------------(*)               Internet: clawrenc at cup.hp.com
...Honorary Member Clan McFUD -- Teamer's Avenging Monolith...




More information about the MUD-Dev mailing list