Re: obcirclerelativedirections

From: Daniel Koepke (dkoepke@california.com)
Date: 01/23/99


> how did you do the landmarks?

Poorly.  In essence, I defined a landmark "object" which would be placed
in a particular room, and define how it helped orient players.
Surrounding rooms from which the landmark was visible would then have a
pointer to the nearby object, and a check was made to see if the player
could orient himself and use cardinal directions.  Several problems arise
with this system, however.  One problem is how a player manages to orient
himself can't necessarily be neatly explained away, making this somewhat
counter-productive to the realism the system otherwise enforces.  For
example, Bob walks into an area he has never been in before, and comes
within range of landmark X.  The landmark is visible, so if Bob knows he
can use it in such a way, he can orient himself with it.  But, since Bob
has never been here and never seen X, how does he know he can use it to
orient himself?

Short of restricting landmarks to being completely obvious objects (that
is, a big arrow with "NORTH" on it) so that we're sure that any landmark
in sight, we can orient ourselves with, I came up with another solution
which I never got around to implementing.  That is, providing the landmark
with a value stating at what distance it can be oriented to, what skills
it requires for orienting yourself to it, or other special things about
it.  This allows for more complex and interesting landmarks.

> very interesting. might i inquire as to how you went about this?
> did you add an extra facing_description into the room struct? or did
> you pull it out of the exit description?(i guess thats a bit much)

It was simply the exit description, since "look forward|back|left|right"
would give you something like, "You see a wall of the cavern."  The exit
description was simply a short description (sans pronoun, which was
automatically added) of what they were facing.  Of course this required
some special processing for rooms using relative directions (so "look
right" wouldn't just give "wall of the cavern"), but it was easier and
more efficient than anything else I could think of.  Note that passages
and what not were given keywords, so that a player could either use
forward/back to walk into a passage, or simply type "enter passage".  Once
inside the passage, if the passage ended forward/back, "leave" would allow
you to exit, with preference for the direction you were facing (handling
the situation where the passage is only one room).  Note that once inside
a passage, forward/back/turn were all you had.

> i have mine set up so if they type left, they actually move in that
> direction.  i take it, yours just turned them and kept them in the same
> place?

Yes.  I chose this design because I thought it made the two systems
distinct.  If left/right just moved the player, then players would just do
"forward=north, back=south, left=east, right=west" and render that aspect
of the gameplay pointless.  Although I'll admit it's a rather tedious way
of getting around, there are several things I wanted to do with it to make
it even cooler that I never got around to.

One of these things would be to allow the player to specify their position
relative to an object in the room.  For instance, they could set down a
flare, type "orient flare", and then left/right/back/forward would be
relative to the flare (meaning that left/right would give something like a
strafe, so that the player never faced away from it).  Also, I wanted to
have the direction you were facing determine what you could see in the
room, how well someone could sneak up on you, and combat.  As it turns
out, Nintendo ended up implementing something akin to this with Zelda 64's
"Z targeting" system, which is being heralded as ingenious and innovative.
Oh well, oh hell.

> thanks dak.

Glad to be of service.

-dak : Damn I'm long-winded.


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST