Non-compass navigation

tldr; I argue that compass-based navigation in parser IF is mostly an unintended accident of the earliest adventure games, that–in most circumstances–compass-based navigation spoils the illusion, and I mull whether it’s worth experimenting with landmark-based navigation.

The original Crowther and Woods Adventure was not nearly as dependent on the points of the compass as many ports would have you believe. In fact, for many areas, I’d argue that it was never intended to be the primary method of moving about.

Don’t believe me? Please step into my time machine as we head back to the 1970s to understand how virgin players first experienced Colassal Cave…

After connecting their acoustic coupler modem to their ADM-3A dumb terminal, dialing in, signing in, and uttering the correct incantation to start the program, the player would find themself at the end of a road. Specifically, the description went like this:

Take note that there’s not one compass direction in that description. You don’t know which way the road goes nor which direction the stream flows.

Now, prompted to enter … something, the user immediately regrets their earlier decision to skip the introductory text and hopes that entering HELP now will give them a second chance. They are rewarded with a wall of text that begins like this:

“Most”?! “Places”?!

What if I told you that Advent has approximately 75 unique “motion verbs”? Yes, you’ll find NORTH, SOUTH, EAST, and WEST among them, along with abbreviations of the in-between compass directions. But the compass directions account for about 11% of the travel commands. You’ll also find UP and DOWN as well as ENTER and EXIT, but those aren’t really the same as compass directions, as they are relative to the player rather than some absolute system imposed on the simulated world that the player’s character can intuit regardless of their condition and environment.

So what are the rest of these travel commands? Places.

Let’s continue reading the help text:

Sure, 40% of the example travel words are compass directions, but do the others–especially the first three–surprise you?

Skipping ahead, we read:

So let’s re-read that opening description again:

There are no indications of compass directions, because, in this part of the world, there is no need for them. The expectation was that, if the player wanted to learn where the stream went, they would say “GO DOWNSTREAM.”

A modern player, faced with this opening description, would (after cursing the “lazy” author for not giving direction cues) pick a direction and start mapping, which is a lot less magical than “FOLLOW ROAD.” It’ll also likely take longer to stumble upon the cave and get hooked by what the story is about. (I recently saw a map of the game and realized that I never even knew the stream flowed south from the building. My earliest maps just say “DS” for “DOWNSTREAM”, and in my imagination it was always west.)

Some of the modern ports require compass directions. Sure, it’s cool that the Informese version lets you use adjectives and other modern niceties (“X WICKER CAGE”), but it lost most of the non-compass navigation. (I’m not picking on anyone here. I know the Inform version is mostly a demonstration of Inform and not intended to be a strict adaptation.)

Sure, you say, that’s all fine and good above ground. Once you’re beneath the grate, it’s nothing but the compass anyway.

I believed that, too. But a sojourn into the travel table of the Fortran sources proves this isn’t strictly true. Travel verbs like ONWARD work a short way inside the cave, as do ENTER/EXIT. It’s only as you get deeper that the game suggests:

We all remember the part about the compass before the “OR” but forget about the landmark navigation in the rest of the sentence. Naming landmarks remains a legitimate way to navigate, even underground. Indeed, there are landmark rooms throughout the cave (e.g., BEDQUILT), and uttering their names from an adjacent room can take you there. You can also CROSS bridges.

Yes, compass directions are eventually required underground, and the game eases you into that by using compass points in the room descriptions:

In a cave, it’s a reasonable conceit to navigate by compass. If the original adventure had been set on an ocean liner, then it would have been reasonable to use PORT/STARBOARD and FORE/AFT. On a small island, maybe you’d go WINDWARD/LEEWARD. On a train, perhaps you’d just name the car to you want to go to: CABOOSE/DINING CAR/etc. I doubt that second generation of adventure games would have used PORT/STARBOARD to have a character explore a haunted castle or a deserted island. But somehow they all latched onto the compass almost to the complete exclusion of anything else.

If a game begins with the player waking up in their own bedroom, surely they should be able to say “GO TO THE KITCHEN” rather than “NORTH” (to hallway), “WEST” (welcome to the bathroom, oops), “EAST” (back in the hallway), “EAST” (living room), “NORTH” (at last, the kitchen)! Having to navigate your own home by compass spoils the illusion that it’s your own home. It might also require the designer to model an otherwise useless location, like the hallway, to try to maintain the illusion of spatial coherence even if the room is completely unimportant to the story.

If, on the other hand, the player awakes in an unfamiliar apartment, it would make sense to stumble around a bit as they seek the kitchen. But it still seems extremely odd that we expect players to do so by using compass directions. If it’s a strange apartment, how do they now their orientation relative to north? Wouldn’t you expect to “GO THROUGH THE DOOR” or “CLIMB OUT THE WINDOW”?

Given how we’ve trained players to use the compass, it’s probably impractical to eliminate it completely. In my current WIP, I’m hoping to make it merely one option–a fallback that’s available to those who want to use it. But my hope is to make the parser smart enough to understand most efforts a newbie might try to navigate by landmark at least within the realm where the player’s character should be familiar with the territory (“GO TO THE BARN”, “FOLLOW THE DRIVEWAY”, “CROSS THE HIGHWAY”, “TAKE THE OFFRAMP”, etc.).

I’ve also imagined a portion of a game where navigating by compass requires literally (literarily?) having a compass. If the player isn’t carrying the compass, then “guess” which way is north and interpret all of the player’s compass commands relative to that guess rather than “true” north. Later they could find an actual compass and have to figure out that their earlier understanding of north was incorrect in order to interpret the maps they may have made.

I’m curious who else has experimented with landmark navigation (or other non-compass navigation) and what results they’ve had. Are there games that have done this that I should play? Or should I just accept that, while unrealistic, compass-based navigation is a conceit the players have accepted and will always expect?

1 Like

The protagonist is always Kuuk Thaayorre. No, but seriously…

Totally agree! You should try Blue Lacuna, which (IIRC) literally does the thing you suggest with the compass–there are highlighted keywords for navigation (and almost everything else), and you can find a compass which lets you switch to directions. (I should confess that I haven’t played that much of this.) Also check out the works of C.E.J. Pacian, which have a lot of experiments in doing away with the compass; for instance, in Rogue of the Multiverse a lot of the game navigates by forward/back/left/right (which is disorienting, deliberately so).

And there’s the compassless tag on IFDB.

Well, that’s the thing, right? Compass directions weren’t an accident of the founding Crowther game. They were a minor feature which took over the primary navigation role because everybody liked them better.

You are not the first (or tenth) person to suggest that compass directions are artificial and break the illusion of place, but no alternative has ever hung on for more than one game in a row.

I don’t have a canonical list of non-compass-rose games. (I see matt has linked to an IFDB tag.) My own experiments are Hunter in Darkness (left/right/forward/back movement, but not “relative to facing”) and the hyperlink navigation in Seltani. Seltani isn’t all that successful – even I feel lost all the time. Hunter more or less works because it’s tiny and you’re supposed to feel lost and heavily constrained.

I find reading these comments as very helpful due that I am always intrigued and compelled to try something new other then same ole same ole… Like GO NORTH, N, UP, etc. However my only gripe is not only the compass thing, which isn’t always a bad thing, it’s usually someone who likes to play a lot of IF (ie me) and try a title and are used to the compass directions, uses it on a scene, but yet gets NOWHERE. It’s either one of three things (maybe more then those, but this is just the obvious), the player (ie ME) has not read the instructions, 2) there is a lack of documentation if not instructions of said title created by the author (and possibly bad play testing to see if directions do work with scene with in the source code of story file of said title of game) or 3) Familiarity of use of more common concepts of the compass directions causes the player to assume that it’s going use those directions if any is used at all. So for a mental note I am going to play test (beta test) the hell out of my game, have others test it, and notify me of certain gripes and bad coding functions, etc so I can fix it, and also document the instructions to the detail (at least the more important if not relevant commands used in my title). But parting from the compass command is pretty sweet. Like you can say GO INTO HOUSE instead of NORTH when the scene opens with a house, and it doesn’t have to say it is north of you. In fact one would think it would take little coding to do that command. Yes it is some lines more then ZIL/F (NORTH TO HOUSE) bit, but at least it would be interesting.

I did an experiment where I made directions that were place names. The player could type GO TO BOARDWALK and as long as that was an adjacent room, it worked like a direction. What you end up doing is giving your rooms placeholder names like “BW” with the printed name “Boardwalk”.

What I found tricky is making opposites of the direction that clash with the original. If BEACH is the opposite of BOARDWALK, you can’t use the BOARDWALK direction to the Boardwalk coming from “Carnival” in the opposite direction and make it work.

I think it’s possible to not set an opposite of a direction (or possibly make it “nothing” or “nowhere”.)

I completely agree that games would have to respond appropriately if the user starts using compass directions. But I’m interested in whether it’s feasible to have compass directions be entirely optional and have the alternative seem so natural and obvious that a new player could successfully navigate without falling back to the compass.

Anyway, thanks everyone for the sanity check. I’m actually glad I’m not the first to wander down this path. I’ll definitely check out some of the compass-less games.

As a minor point, you might be amused to find that in Ryan Veeder’s Winter Storm Draco, you have to build a compass.

that is some cool stuff! Build a compass to move to other places? It’s like Myst puzzle cool!

I think the ideal pipe-dream is when the player finds/builds a compass in the game, a new window pops up with a clickable compass that navigates automatically.

Interesting discussion.

I would probably approach this from the other direction–that is, having compass directions as standard but understanding commands like “out,” “in,” “cross bridge,” etc. as well. I guess this is just personal preference, but I find compass directions easier. Unless the purpose of the game is to challenge my expectations in that regard, or to deliberately create a disorienting experience, I’m not sure I would like having compass directions being secondary.

One question I do have on this: How would you have compass directions be entirely optional yet still available? I am assuming that you would not list any compass directions in initial room descriptions, in order to encourage the use of other navigational commands. Would you then flip a toggle if the player types a compass direction, so that from that point room descriptions would print with compass directions embedded? I suppose it would be possible to do this, but it just seems like the concept might be a little unwieldy in practice.

Then again, as I mentioned above, I am pretty biased toward compass directions. :smiley:

most zmachine compatible assemblers (ie Inform and ZILF) have verb libraries that have the compass commands built into it… A simple way of maintaining said commands and have new ones, is making SYNONYMS for the directions. If you want to leave out the compass directions (not really advisable but it is up for the designer to decide) just reword the directions as is. The same process is even done in ALAN 2 and 3. Hence why I adapted to ZIL/F so much easier is my experience programming with ALAN 2.

You could display a map of the local area with north at the top so that they can see which direction will lead where.

True. Hadn’t thought of that. I’m not sure if the map would really encourage players to use non-compass directions, though–if that is in fact what we are shooting for here.

I guess this is just something new for me that I haven’t really thought about before, being so used to compass directions. But it is definitely something I am mulling over for implementation in my current game. So, for example, if I am in a room with only one exit (and there are indeed a number of locations like this), “out,” “leave,” or “exit” will move me out of the room. “Go to [location]” also sounds pretty handy. I will admit that often I will be playing a game and, after doing a whole bunch of stuff in a location, have to look again to remind myself which direction I need to move in to leave the room or get to where I want to go. (That could also be because I am often lazy and do not map.)

Although it sounds lazy, like exit, leave and the like… But it does have its merits, hence why even certain verbs have one letter synonyms such as examine/x, look/l, quit/q, etc. is more for convenience the anything else, cause, like some people, I don’t always want to type EXAMINE THE GREEN DUMB THING or GO NORTH THEN TAKE THE BROADSWORD AND WAIT. As much as I am nostalgic of the parser, I got 99 problems in that game to solve, and that ain’t one of them… :stuck_out_tongue: So using the synonyms of one letter if not shorten synonyms of the commands would be awesome. So therefore, using maps visually and say it is lazy, is only perceptive at best. There will be of course people who want to play full on text, but I damn sure would love a map to do all my exploring! Automap in IF is KING! As in dagger claws, crooked horns, KING! You will have one person who will say that is lazy, but you will have three of me thanking their lucky stars and you that you designed automapping into your title. You cater to both audiences, either have an option programmed into your game (most likely GLULX release) for automapping on or off, or just make one that is strictly automapping and one that is released for a cutdown version that doesn’t use it. However you might have to make a some changes in your game if do this, so options is a good thing if you make your game to use the automapping on or off. Well played Herr Suho! Well played indeed… :stuck_out_tongue:

Perhaps I should clarify my “lazy” comment, as I am wondering if maybe I communicated the wrong message there. What I meant, simply, is that when I used to play IF/text adventures, having a pen and paper next to the computer to was de rigeur, as you would be mapping the game by hand as you played. I just can’t bother with that anymore, so usually what happens is I wander around a game for a while until I more or less memorize the layout of the map. If a game were to map for me automatically, I would indeed be grateful! (In my own game, I am attempting to solve this problem by making a relatively small map of seven locations, and even that is partitioned off into regions that are gradually revealed to the player. I figure that anyone who gets lost in that map is beyond hope anyway.)

So, anyway, any accusations of laziness are aimed solely at me and no one else! :slight_smile:

Excellent questions to which I don’t yet have answers. I started prototyping my WIP before thinking along these lines, so the place descriptions have compass cues. I’ll have to experiment a lot. If I like where it’s going, I’ll try it out on early testers, both experienced players and newbies.

One little detail I’m trying out is kind of the opposite of putting compass cues in the descriptions: dropping hints when they travel by compass. For example, if you’re outside the barn and say ENTER (or GO THROUGH DOOR or anything landmark-y), then you end up inside the barn as expected. If, however, you say NORTH, the response starts with something like, “You pass through the barn door.” The idea being that this might help reinforce the spatial relationships for the compass-oriented player. (I suppose that could be applied both ways. If they player says ENTER, the response could say something like, “You head north into the barn.”)

Assuming you mean I7, when you define a custom direction, it requires a reverse. You can override it in the construction of individual rooms, as you say, but that’s awkward and confusing, and makes your new defined directions kind of useless as a mental construct. Ideally, directions proper in the parser IF or I7 sense should be reserved for things that are sensibly opposites of one another, like fore/aft, up/down, or in/out.

Check out the source of my port of Crowther’s 1976 version of Adventure, where I define a movement-by-keywords shortcut for coding these asymmetrical movement commands.

My only objection is that this kind of navigation requires good language skills. My guess is that most non-native speakers aren’t aware of LEEWARD as a direction. This isn’t really a criticism. If IF helps a non-native speaker improve their English, so much the better.

I agree that compass directions are not only unintuitive (especially indoors) but also prosaic. WINDWARD and LEEWARD are so much more poetic than WEST and EAST. So here’s an idea. How about a single-word movement system?

The field is enclosed by a shallow creek, a bridge, a deep pond and a steep hill. In the middle of the field is an oak.

WADE takes you across the creek. CROSS covers the bridge. SWIM takes care of the pond. UPHILL takes you up the hill and CLIMB up the oak. UP is ambiguous, so it doesn’t work.

I know there are extensions that do this. I think “Regional Travel”?

And the way I’ve set up the “Easy Doors” extension, you could create “open unopenable” doors in locations that lead places by typing their name. You might just have to shift some printed names and make some understand rules to avoid room/door nameclash.

[rant=how][code]Include Easy Doors by Hanon Ondricek.

Mexico is a room. “You are in the airport just south of the border.”

Brazil is a room. “You make it just in time for Carnaval!”

Venezuela is a room. “Ooh, scenic Venezuela.”

A flight is a kind of easydoor. Understand “plane” as a flight.

The indefinite article of a flight is “a departing”.

a Flight to Brazil is a flight in Mexico. It is open and unopenable. It leads to Brazil. The dooraction of Flight to Brazil is “You hop on board a flight to Brazil…”.

a Flight to Venezuela is a flight in Mexico. It is open and unopenable. It leads to Venezuela. The dooraction of Flight to Venezuela is “You hop on board a flight to Venezuela…”.

a Flight to Mexico is kind of flight. It is open and unopenable. The dooraction of Flight to Mexico is usually “You hop on board a flight to Mexico…”.

One flight to Mexico is in Brazil. It leads to Mexico. One flight to Mexico is in Venezuela. It leads to Mexico.

Understand “fly to [something]” as entering when the player can touch a flight.


A system of single contextual words is only practical if the game lists them in every room. This is at least as stilted as compass directions (which can often be passed off as scene-setting rather than explicit verb nudges).

It also has the problem I mentioned re Seltani, which is that the player winds up having to pore through the list every time they pass through the room. It’s higher-friction than compass directions when you’re traversing an area you already know.

This is not to say it’s unusable – just that it’s got a different set of awkwardnesses.