| 6.6. Going, Pushing Things in Directions |
It is very common for players to make a mistake and type the wrong direction command, or even to misunderstand the room description and not recognize all the possible exits. Bumping into Walls helpfully adds a facility so that when the player tries to go in the wrong direction, the game lists the correct possibilities, as in
From here, the viable exits are to the south, the east and the west.
Another useful technique is to provide some sense of the journey between locations, especially if they are remote from one another or the player has to do something unusual to get from one to the other. Up and Up adds a short description of travel when we approach a new room, before the room description is printed; Veronica, conversely, adds a comment when the player leaves a region of the map. The Second Oldest Problem intervenes and kills a player who tries to travel from one dark room to another. Mattress King embellishes the description that automatically results from PUSH MATTRESS WEST, adding a line that describes the player pushing the object before describing the new room approached.
We may also want to add a brief comment when we arrive in a new room, after the room description is printed. One trivial way to do this is to append the line to the room's main description, conditionally, like this:
The Hammock Emporium is a room. "This is Cousin Ed's shop, the big dream he left accounting to pursue. You can't help gawking at the Luxury Leather Space Hammock, made of genuine red buffalo skins[if unvisited]. [paragraph break]So this is why Grampa makes all those 'lying down on the job' jokes every Thanksgiving[end if].".
But often we want our first-glance comment to come after some items in the room are described; and for this effect, we would use the "first look rule" defined in Saint Eligius.
Another category of examples treat how we handle the movement commands themselves. The eight compass directions, with UP and DOWN, IN and OUT, are used as standard in most interactive fiction, but they are not the only possible way of navigating, and strike many newcomers to the genre as counter-intuitive, since when strolling around in real life most of us rarely think about our travel in terms of compass orientation. Misadventure allows the player to GO TO a named room, instead, and calculates the best route to reach the destination; Safari Guide builds on this by letting the player make the whole trip in a single move, automatically opening any doors that stand in his way en route.
We also sometimes want to respond sensibly to terse movement commands or ones that rely on some knowledge of where the player has already been. Polarity provides a GO BACK command, allowing the player to retreat in the direction from which he came, while Minimal Movement understands LEAVE, GO, and so on as OUT, in the absence of other information. Owen's Law takes this further, calculating from the best routes on a map how to make OUT mean "move towards the exit of this indoor room", and IN mean "proceed further into the interior". Wonderland assigns altitudes to all rooms and works out the local best meaning of UP and DOWN accordingly.
Indirection renames the compass directions to correspond to primary colors, as in Mayan thinking. A similar technique is useful for shipboard travel.
See Ships, Trains and Elevators for ship-board directions
See Bicycles, Cars and Boats for common vehicles in which to travel the map
|  Example Up and Up Adding a short message as the player approaches a room, before the room description itself appears. | |
| Example Veronica An effect that occurs only when the player leaves a region entirely. | |
| Example Saint Eligius Adding a first look rule that comments on locations when we visit them for the first time, inserting text after objects are listed but before any "every turn" rules might occur. | |
| Example Misadventure A going by name command which does respect movement rules, and accepts names of rooms as commands. | |
|  Example Safari Guide The same functionality, but making the player continue to move until he reaches his destination or a barrier, handling all openable doors on the way. | |
| Example Minimal Movement Supplying a default direction for "go", so that "leave", "go", etc., are always interpreted as "out". | |
|  Example Wonderland Hiking Mount Rainier, with attention to which locations are higher and which lower than the present location. | |
Suppose we have a landscape with a great deal of up and down variation, where GO UP and GO DOWN will be significant almost everywhere, and specifying them all individually a tremendous pain:
"Wonderland"
An altitude is a kind of value. 1000 feet specifies an altitude. A room has an altitude.
Definition: a room is low if its altitude is 3000 feet or less. Definition: a room is high if its altitude is 5000 feet or more.
Instead of going down:
if an adjacent room is lower than the location
begin;
let the valley be the lowest adjacent room;
let the way be the best route from the location to the valley;
say "(that is, [way])[paragraph break]";
try going the way;
otherwise;
say "You're in a local valley: there's no down from here.";
end if.
Instead of going up:
if an adjacent room is higher than the location
begin;
let the peak be the highest adjacent room;
let the way be the best route from the location to the peak;
say "(that is, [way])[paragraph break]";
try going the way;
otherwise;
say "You're on a local peak.";
end if.
Paradise is a room. Paradise has altitude 5400 feet. "A handsome parking lot, a picnic ground, and the Henry M. Jackson Memorial Visitor Center. The latter offers, for serious climbers, a hot shower; for nature enthusiasts, an interpretive museum; and for car-trippers, a gift shop selling canned slugs. All of which is a largely unsuccessful distraction from the peak of Mt. Rainier beyond."
Cougar Rock is southwest of Paradise. The altitude of Cougar Rock is 3180 feet. "Numerous individual campsites and (on the road inventively labeled 'F') a handful of larger campgrounds suitable for church groups and family reunions."
Longmire is southwest of Cougar Rock. It has altitude 2760 feet. "A tiny town: it has to offer a few groceries, a post office, and a lodge for people who do not care to camp, all built in a rustic Park Service way."
Panorama Point is north of Paradise. It has altitude 6800 feet. Camp Muir is north of Panorama Point. It has altitude 10188 feet. Columbia Crest is northwest of Camp Muir. It has altitude 14410 feet. St Andrews Rock is west of Columbia Crest. It has altitude 10992 feet. Camp Schuman is northeast of Columbia Crest. It has altitude 9510 feet.
Since Mount Rainier National Park runs to over 235,000 acres, we will omit the rest of the locations, but it does seem fair to give a little more credit to anyone who makes the summit:
Instead of going up in the highest room:
say "You're standing at the summit of Mt. Rainier, the highest point in the state of Washington. There is no up."
Test me with "up / up / up / down / down / up / up".
|
| Example Indirection Renaming the directions of the compass so that "white" corresponds to north, "red" to east, "yellow" to south, and "black" to west. | |