[1]: https://opensource.microsoft.com/blog/2025/11/20/preserving-...
Newer games also tend to follow some quality of life rules in their design, things like avoiding arbitrary deaths and avoiding situations where the player cannot progress because they missed something earlier in the game.
Anything Non-Zork. Even Adventure from Don Woods was half-consistent in some places. But having an "odd" geometry matched perfectly the environment of a cave.
On the one hand, you could encode the hallway itself or the road curve or the passageway as their own weird segments in the grid. But then maybe you bog the player down in a lot of liminal spaces that don't really add much to the game. On the other hand, you could ask the player to bring or build their own map and pay attention to descriptive text like "to the north is a passage that seems to bend to the east" or far more subtle variations of such.
Zork and many other IF games were built on the premise that people would map things and getting lost or confused by grid breaks was part of the fun. (Going back to, as neighboring comments point out, the original Adventure which was modeling caves and caves have always had strange three-dimensional twistiness that doesn't fit a square grid. Part of the fun was discovering that disconnect between the game mechanics using square grid compass terminology and the digraph of the game spaces being more confusing than that.)
Instead imagine that "GO EAST" takes you onto a winding road.
The road arcs southward and to go back you'd have to "GO NORTH".
Further... some travels in Zork even drop you through a hole (though I forget if it tells you so).
So going East might put you in the basement and there's no way to climb back up.
Also https://sharpee.net/
Definition: a room is neighboring if the number of moves from it to the location is 1.
Every turn:
if a random chance of 1 in 2 succeeds:
let current location be the location of the lurking critter;
let next location be a random room which is adjacent to the current location;
if the lurking critter is visible:
say "The critter [one of]slouches[or]slithers[or]shambles[or]lurches[at random] away.";
move the lurking critter to next location;
if the lurking critter is visible:
say "A critter [one of]oozes[or]staggers[or]ambles[or]creeps[at random] into the room.";
[Whether or not the critter has moved, we need to adjust the sword-glow, because the player may have moved.]
if the lurking critter is in the location:
adjust sword-glow to glowing brightly;
otherwise if the lurking critter is in a neighboring room:
adjust sword-glow to glowing faintly;
otherwise:
adjust sword-glow to glowless.
This snippet omits the definition of "the lurking critter" (a standard NPC) and the sword (a standard object with a custom defined method called "adjust sword-glow to"), but it should give you a good idea of what Inform 7 source code looks like. (Inform 6 looked much more like a traditional programming language).That must be a comment, right?
In that case: "The critter [one of]slouches[or]slithers[or]shambles[or]lurches[at random] away.";
[one of] [or] [at random] are also comments?
Arguably, the right answer now is to document everything that matters to you about the adventure, and tell an LLM to run it.
It would write the book ahead of you, kind of like how railroads could send trains with supplies out to the track as it was built.
It also allows you to deviate from the novel. This is a romance novel. I had the main character choose someone else and it showed an alternate version of the novel. After the main threat of the story was dispatched things settled into weeks of routine living where I added another person into my routine. I played to see if another event would show up but after 3 in game weeks I decided to stop. This was a test and I needed to improve the game. I can see this becoming addictive to some people because they will be living in the story and having a life there and making friends and finding partners.
This type of game is still uncharted territory. Does one end the game or let the player play indefinitely? Is it more fun to have the player do the daily life things or skip those or give them a choice?