Adaptive Directions (Left, Right, Forward, Back)

I just thought of this reading the topic about the problem of describing things in terms of NSEW and was wondering how feasible having a secondary relative direction system that changed as you went room to room. Not even close to a coding stage with it but I think its kinda cool to talk about.

After going North, North becomes Forward, South becomes Backwards, East becomes Right, West becomes Left.
After going South, South becomes Forward…
After going East, East becomes Forward…
After going West, West becomes Forward…

for some rooms you would end up having to compensate for turns with clarifications, and it isn’t ideal for diagonals but it could make some descriptions seem less immersion breaking, particularly if the PC doesn’t have a compass and the problem of having forward/back/left/right being somehow static even if a person would normally have turned or something.

Or would it end up being a little cumbersome and hard to visualize in the mind of the player?

There have been a few discussions about this, it’s funny how it keeps cropping up.

In practical terms, the (very) few games where this, or something similar, has been attempted - relative movement instead of absolute - it was pretty much agreed by players that playing an entire big game like that is cumbersome and disorienting.

Personally I also happen to think it’s trying to graft a graphical, 3d design - which is more about a first person viewpoint of your surroundings - into an IF design, which is more about bird’s-eye views of maps, in terms of general localisation.

Opinions vary, and bottom line, if it’s done well it’ll be great. I don’t see relative movement replacing absolute movement as a convention, but if you want to make a game that you think will be all the better for it, you should totally do it. Just choose beta testers with an open mind and listen well to what they have to say afterwards.

Do you happen to remember any titles that use relative direction? I think with my current projects I am perfectly fine with using the standard NSEW, but it would be interesting seeing an implementation of such a system.
Might try it with something small and indoors at some point though, once I get a good handle on inform.

There’s a TADS game where you play a rat…

…and Countdown to Doom, with a whole maze in relative movement…

…but hey, I unearthed some reading material for you. :slight_smile:
(Huh, I didn’t even remember my posts in that one)

EDIT - Maybe this should be stickied or something. :stuck_out_tongue: I mean, having a new thread for it every year or so isn’t a problem, but if keeps coming up, there’s some interest in the issue.

Ah cool, I will get onto the reading then :smiley:

Probably on the reading list, but Rogue of the Multiverse does this.

TUNDRA by paperblurt uses left right forward and back, but there is no turning, and it just maps to NSEW. There is a map though. And it is in twine.

Yeah I don’t think I would use LRFB as compass directions, I personally find it very disorienting. The game seems interesting enough but I find it very weird going through a series of rooms “backwards” or “leftward”.

Just finished it. It was interesting, makes me want to actually take a better look at twine.

It’s possible that for the Twine audience, LRFB made more sense than NSEW since they were looking at a map and might not have the same automatic Zork-gene that orients parser players to NSEW.

PaperBlurt does amazing stuff and I think is highly underrated. He and Porpentine both are great at styling hypertext.

(sidenote: I nominate Alan DeNiro to do the Twine version of HOUSE OF LEAVES)

1 Like

Well I guess that adds to my reading/playing list. Yeah the biggest thing that stood out in TUNDRA was the style.

If you want full-on crazy relative direction, Mystery Mansion (1978) has relative directions when the player is in the house while not holding the compass, up to and include items being described in different locations based on which direction the player entered from.

It is maddening. The only reason I didn’t rush for the compass first is I mapped that room last!

I kind of wonder if having a facing variable that is shown to the player would clear that up.
“You think you are currently facing south” or have similar information on the banner, and include actions such as turn left, right and around.
It might be a lot of extra adaptive descriptions needed, but it could add something, like you don’t see whats on the back of a door if you come through it from the south and are facing north (though on a large scale i could see this being a very annoying mechanic).

I agree about the potential annoyance. Also, I usually play in VERBOSE mode (which runs an extra LOOK action every time you enter a room), which I interpret within the fictional universe to mean the player character is taking the time to look around at their surroundings as they go. Having them miss something on the back of a door because they’re only telling me what’s directly in front of them would be quite irritating. (Assuming it’s something puzzle-relevant: if it’s just for flavor, having the description change based on direction would be less aggravating though still a bit disorienting.)

I was thinking that it might create something similar to escape point’n’clicks where you end up searching through a smaller environment. If scale is 3-5 rooms a facing mechanic might help pace out the higher level of detail and helping it not feel like more rooms than it is.

You are in the prison chamber, looking to the east.


You are in the eastern side of the prison chamber.

I don’t know if IF is the best format to that sort of thing though.

Well, now, you’re talking about a different sort of movement in order to achieve a specific effect on a certain enclosed space. That’s something else entirely. :slight_smile: You can totally get away with doing that.

Play Shade to see something similar. It’s a one-room game, but you can move to various parts of the room without using compass directions. I think Lord Bellwater’s Secret does the same thing. It’s not unlike what you’re talking about.

Actually, just play Shade anyway. It’s worth playing.

Battlestar uses this. This is one of the oldest IF games, available as one of the standard set of games for BSD unix distribution. You can read about it here: battlestar(6) [bsd man page]. You can download from the Internet Archive and run them easily on Unix or Linux systems, including the Macintosh. I used to play this circa 1983. So the game keeps track of player-character heading, so a room will be “left” if facing east but “right” if facing west. Later in the game, if the user finds the compass, the user may then begin using n/s/e/w directions. I would like to know how to encode this system using Inform7!

1 Like

Off-Season at the Dream Factory (2021 IFComp) uses both … though the F L R B is part of a retro game. As does Rogue of the Multiverse (2010 IFComp, mentioned in some of the topics Peter linked to) so it’s not unprecedented. I think in some cases, it may be more appropriate and is not too hard to implement.

I think it might be tough for parser veterans to adjust, but it’s that way for any sort of GUI change or whatever, including improvements.

The code below is rough, but I think it should suffice.

FLRB is a truth state that varies.

a direction has a number called rotate-value. rotate-value of a direction is usually 0.

rotate-value of north is 1. rotate-value of south is 3. rotate-value of east is 4. rotate-value of west is 2.

carry out leftturning:
    increment player-rotate-value;
    if player-rotate-value > 4, now player-rotate-value is player-rotate-value - 4;

carry out rightturning:
    decrement player-rotate-value;
    if player-rotate-value < 1, now player-rotate-value is player-rotate-value + 4;

carry out forwardgoing:
    let dir be the direction corresponding to a rotate-value of player-rotate-value;
    now FLRB is true;
    try going dir; [same for backward but rotate-value of PRV minus or plus 2]

check going:
    if FLRB is false, say "Directions aren't used here, F L R B are." instead;
    now FLRB is false;

I like the idea of, say, RF or FR to save keystrokes or the annoyance of hitting enter, or even FF to go as far as you can in one direction. Granted, this could be done with compass directions as well (NN, SS, EE, WW etc.) but it’s something I didn’t see until I considered adaptive directions. So I think there’s a place for it, and a good one, and it wouldn’t be hard to program.

1 Like

Thank you! I’m new to Inform, so I am just trying to figure out the syntax. Clearly easier to read than to write (so far). But I will build on this.

Another aspect of the system as used in Battlestar is the embedding of exit-directions within the room description. So, it may say “there is a closet left” if you are facing one direction, but way “there is a closet ahead” if facing a different direction. And these usages of the relative directions are sprinkled throughout the room description. I’m not sure if Inform7 will allow similar programming in the middle of the room description. (But I haven’t tried yet).

There are cases where relative directions are fairly mandatory. If you were on the international space station, gazing down through a window at Earth, what would “north” even mean?

1 Like

Nobody will object if you pick an arbitrary direction on the space station to be “north” and just stick with it. People really are very used to this convention.


The good news is that this is very easy to do, since in many ways adaptive text like this is what Inform is built for - just create a new “to say” phrase comparing the orientation of the player to the direction of the door.

The bad news is that this is probably a bad idea - what sounds like a neat way to make navigation intuitive will instead turn your map into a maze, with the player forced to remember which door they originally entered a room from six rooms ago in order to fully explore. There was a game in last year’s IFComp called The Library that implemented relative directions (and with simpler, three-exit rooms) and I’m pretty sure every single review complained about it.

A middle case for spaceships and such can be implementing fore/aft/port/starboard which are also sort of annoying for players but get away from incongruous compass directions and at least don’t change turn to turn!