One of things I’ve noticed about IF games is that they never seem to give a good amount of spatial information.
For example. What if I have a room with one table and 4 chairs? I sit down at one chair, an NPC sits down at another. Is the NPC to my left or to my right? Are they sitting in front of me?
What if I’m in a room with 3 enemies and my goal is to fight each one. Which enemy is closer to me? If I run up to them and fight them in melee combat, do I still have enough time to do that before the others reach me?
There’s all this missing spacial information of where something is in relation to something else. It’s very one dimensional.
Has anyone thought of any elegant solutions to this? I’ve seen ‘you are 3 meters from enemy A’ but that doesn’t really work because what if you walk towards them, you might have actually now walked further away from another person.
In fact it’s zero dimensional. IF tends to model everything as points. You’re there or you’re not. An object is there or it’s not.
The lack of information is a convention, not a problem. It’s an abstraction that allows the game (and the player) to skip over micro-moves like “take three steps over to the bookcase” or “face Steve on my left”.
Obviously that convention makes some kinds of games easier and other kinds harder. IF has in general focused on the games that the tools make easier. For obvious reasons! If you want to go the other way, you have to start inventing infrastructure. Not just technical infrastructure, but writing conventions. You have to figure out how to present more detailed information to the player in a readable, graspable way.
I don’t have solutions for you. I went a little way towards this in Shade, which has sub-locations (kitchen, bathroom) and rearranges the room description based on where you are. But I deliberately only went a little way.
It’s not just that it allows you to skip micro-moves, it’s that text isn’t the best interface for presenting this kind of detailed spatial relation. If you were doing a graphical game, it would be easy as pie to represent “You’re this far away from the first NPC and if you move up toward them you will be moving away from the second NPC and the third NPC won’t reach you before you reach the first NPC.” In fact you can’t help but represent that–just put four sprites on the screen and the player will be able to see that. In prose that all takes a lot more to convey. And one of the strengths of prose is that it lets you abstract away from all that nitty-gritty.
Anyway if you’re interested I’ve written two projects that represent movement on a two-dimensional continuous space; The Plains Glider is an abandoned project (that I did a lot of work on to whip into good enough shape to go into the Bring Out Your Dead abandoned project jam–it was really abandoned) and Terminator is a complete game though it has its rough spots. If you play it, make sure you use the version with the debug commands on, because the other version prints a spurious error message every turn.
I did not solve the elegant representation problem–part of the reason all the characters in Terminator are robots is that I didn’t have the time or skill to represent anything non-robotic. This is something I come back to!
Really I think the best and certainly quickest solution might be to have a roguelike-ish display representing the complicated spatial stuff and more traditional IF prose for the prosier parts.
Unless you’ve got a “set the place cards at the dinner table” type of puzzle like in THE STATUE GOT ME HIGH, or you’re playing a detective who needs to know that the killer is stabbing people under the dining room table, and is right-handed, so the person to the left of Lady Coolinbleu is her murderer, you’ll find that most of the time it’s easier to rely on the player’s imagination. You can do a whole lot of work describing where everything is in the room, but it usually isn’t very interesting to read.
In fact, you’ll save a lot of hassle with dinner scenes if you just let people stay standing in a location called “At the Table”.
(Yes, I know I’m the King of Making Things Too Complicated in my previous games, but learn from my hard knocks!)