Has anyone ever taken on the task of making it possible to go in multiple versions of up and down directions? Meaning, in addition to being able to go each cardinal direction, up, and down, that you can go in each cardinal direction + up, and each cardinal direction + down. So, there would be a direction for “up east” and “down west” and “up northwest” and “down southeast,” etc. Here, “up” would be “straight up” and down would be “straight down” only.
I can certainly fiddle with getting it to work myself, as I’m sure I can get it there pecking at it long enough, but if the solution to doing it already exists, please share!
I’ve got that part going already, but I was wondering about dealing with issues like coordinate positioning, feeding these relationships into a map, etc., and if there were any other non-obvious things to consider.
Yeah, the implementation of a coordinate system relies largely on what you actually want to use it for. (But once you’ve got a coordinate system, adding extra directions to it should be pretty trivial.)
Kerkerkruip is laid out on a 3D grid, so that may be helpful. So is Threediopolis.
I think I can get the mechanics of this to work on my own… for once, that’s not my question! I tried to look at these materials suggested, but I didn’t see them outlining quite what I’m trying to do (unless I am missing something in reading them).
However, if I am wanting to make, I guess more cubical than spherical, room relationships, what kind of naming convention would not drive you nuts if you were a player? I have a working draft that uses names of directions such as “up-north” and “down-southwest”, which could be abbreviated as “un” and “dsw”… I know that in a truly 3D world, as in being able to fly, go into space, be on different planes or hemispheres, etc., that directions like “north” are nonsense, but it’s just probably way too hard to make it relative to the position you are in currently, so instead I thought I’d keep it relative to the starting room, and keep the cardinal directions for the purposes of logical play.
I just don’t know if “up-north,” “down-southwest,” “down-east”, “up-southeast,” and etc. are confusing or helpful ways to describe these directions. I don’t know what would be better though either. Any thoughts?
What you want is a pilot to tell you what is the terminology used to navigate the three aeronautic axes of roll, pitch and yaw. (Depending on your in-game means of propulsion, certain options may be unavailable – ie, while a balloon can go straight up and down, it can only go forward if the wind cooperates; a helicopter can go any which way, while an airplane needs to always be going forward to produce lift, in addition to whatever fine-tuning that eventually adds up to its change in direction. But this may be more fine-grained than you are hoping for.)
You can use non-IF words as these movement commands as long as they are explicitly shared, as with Zarf’s Heliopause.
You might be over-thinking this one – once you get into the game and get away from the mechanics I don’t think you’ll run into this. For example, if you were standing next to a fire escape to the east, and a doorway into a hotel also to the east, it would be better to describe the door, the hotel, and the fire escape, and disambiguate if the player types ‘E’. Or just automate east to be the door, and up to be the fire escape. And, if you’re using a grid system, you’re going to have scope between directions. If there’s a hill four steps northeast, and a fire escape right next to me, then “Up” would go up the fire escape, while “NE” would take me closer to the hill. There’s going to be scope in a simulated 3D environment that will require walking through “rooms” that exist only to create space between points of interest, and a way to place overlapping directions by separating points of interest within that scope. Or, you could do what UnwashedMass suggested, and have the points of interest, themselves, be directions.
What would probably drive me least crazy if you were using the compound directions would be to have the parser understand as much as possible. If I kept erroring because I couldn’t remember whether to type “east-down,” “east down,” “down east,” or “down-east,” or “de” or “ed,” it’d be annoying – if there’s no harm in it the game could understand them all. (As long as you don’t have a character named Ned!)