ChrisC wrote:
Huh? This seems to be making an argument for implementing the stairs as a room, not a door. A door in I7 is just a thing that appears in both rooms and can be "enter"ed to transport the player to the other side of it; something like a souped up direction that can be examined like any other thing in a room.
Essentially, yes: what I'm saying is that you do not have to use a door, just because "door" is an available item type. I'm trying to explain that you can accomplish the appearance of a staircase without invoking a door object. And that if you do need to have an interaction that takes place in the staircase, you could choose a "room" instead of a "door" to be the "place the event takes place in" (while still appearing to be a staircase to the player).
1) a door can be closed or locked - if part of the game purpose is to make the person seek out a key, or to attain something to get through the door (i.e. an appointment, or to restrict an area until a goal is achieved) then the door is part of the story. The "door" object is a convenience to the programmer when they need to separate an area in the storyline in some way. If you do not need to separate areas, you can choose to simply connect rooms over using doors between rooms. You can have a "faked door" between rooms without bothering to program one in -- just describe it (see #2). However, for example, let's say that you decide to program in "day and night" -- the government offices' front door should be locked at night, right? so then it's part of the story that you can't go to the government center at night. You lock the door between "inside and outside" the government center during the "Nighttime" recurring scene. It's part of the story because it fits the players' expectations for the behavior of the world they're imagining. That's when you should use a "door object". (i.e. You can choose to use a door either way, but when you need to exclude people from an area, then you
should use one.) This means when we don't need to exclude people from an area, we can choose other ways to arrange our "rooms" that don't need doors.
2) when a door does not contribute something to the story, you can simply remove it. I recommend that you don't waste time with a door in any case where it inconveniences you or the player to do so. If you describe a door as scenery (in the room description), and think someone might examine the door that's not there as an object, then you can put in an error message to supply a description without adding an object to the game. (Understand "examine door" as a mistake...) But unless mentioning the door is somehow important, don't mention it...
3) (Postulate dependent on the ideas in #1 and #2) If you have an important interaction to take place on the stairs, and since stairs are (presumably) never closed or locked -- there's no need for "stairs" to be a door. You produce an ILLUSION of being in the stairwell by making a room you describe as the stairwell, in which you say 'up' to go one place, and 'down' to go another. However, if there's a firedoor to reach the stairway and you need to lock the stairway door at some point (say, if the player is accidentally in the building and it becomes night, thus they get locked into the building...and only do this if it's part of your story! Many IFs can become frustrating if there's too much to sidetrack the players...), that's different.
Code:
Stairwell is a room. "You are standing in the stairwell. The stairs go in both directions so from here you may go up to the 2nd floor or down to the basement."
Bozo is a person. Bozo is in the Stairwell. "There's a clown here. He apparently has been camping out in the stairwell for months waiting for this moment. He reaches into his shirt pocket and pulls out a giant bouquet of flowers. He smiles mutely at you. Hanging off the bouquet is a business card that reads 'Don't forget your appointment in Room 202.' The card flips over as he brandishes the bouquet revealing the other side, which reads 'Have a nice day!'"
Basement Stairwell is down from Stairwell. "You are standing in the stairwell, and the only way to go from here is up the stairs or back west into the basement."
Upstairs Stairwell is up from Stairwell. "You are standing on the 2nd floor landing. You can go west from here into the hall, down to the first floor, or continue up the stairs."
Honestly, if you didn't need Bozo there, I wouldn't make these as rooms at all. But you CAN. The engine is flexible to fit your story. I say lay the world out simply and straightforwardly, because you can always add in more rooms/doors/features as they're needed to embellish the story. You might even build backwards from the goal/end through to the beginning....that's up to you, and that's how some folk write novels, weaving in details and red herrings/dead ends as they move backwards through the plotline.
Don't get stuck on "Rooms need doors because doors are available for transportation between rooms." The key word is "available" -- they're not "needed" at all. That's what I'm trying to explain. Think of everything as a plot device -- literally and figuratively. If you a plot segment requires some type of device (room, container, prop, key, door, etc.), then you create it as an actual discrete object in Inform. However, you can seamlessly pass from one room to another without pausing in a doorway unless you really need that "doorway effect".