Mapping physical space

Hi, I’m new.
I’m not that good at asking questions, but I do have a concern. Usually when I have a question on the internet, I simply describe my approach to something and then ask for feedback. So, I’m just getting into Inform 7, with almost no previous programming experience, but a long-standing desire to write IF. My first learning project is to “map” out my neighbourhood. The finished project will serve as something like a tour, describing the buildings and such, which adding in my memories, etc. The next layer will add some sort of an autobiographical story–so that “you” in the text represents me..

Anyway, this past weekend I went on a walk with a stopwatch and a quad-ruled composition book. Since I knew that, from my apartment to the east, the first “room” I wanted was the local bakery, I timed the walk. Three minutes. Thus, the basic unit of distance from room to room would be however far I could walk in three minutes. I made a few minor adjustments if I came across a spot I knew I wanted to write into the project. But you know what? I’ve got an issue. How do I convey this sense of travel? There were times when I wanted to produce some text between rooms. That is, I don’t want the user interacting with them, or even trying to, because they aren’t features of the space, but of the experience of walking through the neighbourhood.

Am I coming at it the right way? Maybe the problem is that I am thinking of a “room” as a point in space, leaving lines undescribed. Another related problem is that there are some parts I don’t want to bother with, because they are boring…which would mean that the distance between some rooms will be two or three times greater than the usual distance. I’m not sure how to convey that to the reader–I can’t write “you walk a long way” in the room description, because it might only be a long way when coming from one direction! Hmmm. I’ve tried coding “Before going south” or “before going south from the shops…” but neither work the way I want them to.

Also, could anyone recommend an IF that is a good study in representing space, or an attempt to map an actual space? (Yes, I know there is Colossal Cave, but I’ve never been spelunking, never even been inside a cave since elementary school, so that might not translate well for me, but it is on my playlist. Any others?)

thanks, and sorry if this is a bad question.

  1. A very common instinct, for novice IF authors, is ‘I want to map my house/apartment/neighbourhood/dorm room/campus.’ This approach isn’t inherently awful, but because so many inexperienced authors try it, they have a pretty bad reputation as bland and boring. (We call 'em My Apartment games.) Not trying to discourage you, just giving fair warning. It’s great as a learning project – but it’s possible that you may want to think carefully about publishing the first IF game you ever write. (I’m deeply grateful that I never did.) But there’s been some discussion in recent years about the potential for nonfiction IF, including autobiography, so that would definitely be an interesting direction.
  1. A foolish realism is the hobgoblin of little designers. And unrecognisably mangled adages. IF convention assumes that the distance between one room and another is flexible: however far makes sense. If a road is pretty much the same all the way along, it’s simplest to make it one room even if it’s much larger than the distance between, say, the rooms in a house. As for time – very precise measurements of time are usually not all that important.

It’s pretty common for IF games to contain descriptions of travel in between rooms; unfortunately, the habits of experienced readers tend to mean that any text displayed above the room title is likely to get missed. What do you want your output to look like, exactly?
You can also put in a number of interstitial rooms that contain nothing very different but mean that the player has to keep actively travelling; this is generally considered crap design, although you may get away with it if it’s used lightly.

Jacqueline Lott’s The Fire Tower is a representation of a real hiking trail in the Great Smoky Mountains, although it was written from memory. Some time after it was released Jacq and I walked back over the trail and took thorough notes for a putative 2.0 version; that never materialised, and the game as-is isn’t as precise a representation of the real-world place as it could be.
Sarah Morayati has designed a system for nonfiction IF, You Are Here. (See … .html#here ). I don’t know its current status, though.
And of course there’s Peter Nepstad’s gigantic 1893: A World’s Fair Mystery, which maps out a well-documented historic site.

Oh, this is definitely a learning project. I only intend to show this to people I know here in town. You don’t need to worry about seeing “my apartment” in IFCOMP2012. It would be hard to write a good story, I think, if I were to only to precisely map physical spaces. That’s what I’m doing now, though, but I’m practicing.

I suppose I have an explicit question about travel between rooms: I can’t figure it out. But this is an Inform question, I guess. I want to do something like:

Coding before going south say "blah" will print “blah” every time the uses enters s; that won’t work. Coding before going south from ROOM 1 say "blah" didn’t do anything at all. I couldn’t find any examples of this sort of thing in the documentation.

Hmm. It works for me. Can you post the smallest possible game that shows this behaviour?

Note that a rule for going south FROM room 1 will only work if going south succeeds; if you want something that’ll fire regardless of whether the player can go that way or not, “before going south IN room 1” is what you’re after.

A good rule of thumb is that a game turn is not so many minutes; a game turn is so many things impinging on the player’s attention.

Of course, this doesn’t apply directly to room exits. The second time a player takes an exit, that exit takes zero attention. The player whacks through it on autopilot.

The first time counts for a lot, obviously. So think about distributing rooms – and their contents – so that each move reveals a comparable amount of new stuff.

Thanks! It does work. I went back and realised that I did wrong: What I had done was (1) create the room (2) described the room (3) put a thing in the room (4) added the “before going” bit. I needed to invert (3) and (4)–I guess that some rule about moving in and out of a room needs to be right next to the room in the code, not separated from it. In the same way, any rule that specified some before-xing-of-the-thing would go in position (4), not (3)…I’m guessing.

I think I need to just first finish up about thirty room descriptions and map out all their spatial relations, then read more of the documentation, then add more things, etc.

That particular source-code ordering doesn’t sound as though it should have made a difference. If you don’t mind my saying so, my guess is that you had some irritatingly hard to notice typo, and when you were switching 3 and 4 you fixed the typo.

I second the notion that a strength of rooms in IF (rather than, say, 2D coordinates) is time and space dilation/compression, but if you’re interested in highlighting the travel time between rooms you should have a play with this experiment: … -movement/

If you do try out that experiment, be sure to also read the comments. Not only do the commenters do a good job describing what doesn’t work in the experiment, they also suggest a couple of games to try that might be interesting to look at. I think if the real-time aspect was going to work at all, it would need to be in the context of a game where other real-time events also take place, and George cites a MUD in the comments that can give you a sense of what that would be like. I found it somewhat harrying myself to have to try to keep up in real time…

I’ve often wondered why so few people have experimented with getting rid of the in-transcript room titles altogether. With the room name in the status bar, they aren’t really necessary; just conventional. This approach would require a bit more between-room text: you’ve now got to mark that the player has moved on, e.g. “You enter the room to the north. It is painted in all the colors of the rainbow.” It would probably also make it slightly more difficult to skim past text you’ve seen before. But the effect might be interesting, particularly if the rooms aren’t what your game was about in the first place, or if you’re trying to create a more continuous sense of movement through the world.

(The room titles probably also help anchor your eye given that most interpreters aren’t smooth scrolling, but I’m not sure how much of an issue that would be.)


Where I have text above the room name (for example, describing anything usual or important relating to the experience of travelling from the previous location to the new location), I often add a blank line or two before the text. By setting it off from the text has has already been seen, I think this makes it a little less likely that a player will miss it.

Robert Rothman

I believe you are correct. I went over the code several times before and must have missed it every time! :blush: Since I’ve been doing this for less than a week, I just figured that I was taking to totally wrong approach. My next goal, I think, is to play all of the example games on the Inform site and then read their source codes. So far I’ve only played Bronze.

Since you say you’ve played Bronze, I’ll point out that I think the navigation mechanic in it (that allows the player to simply “go to” any previously-visited location) is extremely well suited to the kind of game you’re talking about, with a lot of rooms that the player character is supposed to know fairly well and might need to spend time revisiting. I personally resent having to put a lot of effort into navigating, and I find that having to pay a lot of attention to how to get back to a place I’ve been breaks the immersion except in the few kinds of settings where conscious navigation is expected (such as, say, a series of caves).