> 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