I have been thinking about the conflict between player freedom and having a coherent story. One example is foreshadowing: the author might carefully place hints about an upcoming plot point, but if the player is free to bypass it then the story might not make as much sense.
One possibility is to let the player somehow state his intentions during the game. The story can then unfold in an appropriate way, and the game will have a clearer understanding of the player’s actions (and so give more relevant responses).
This (kind of) solves the “coherent story” problem: if the player commits to a certain direction, he is likely to stick to it – and if he doesn’t then he can’t complain about the story not being coherent, since he’s the one who broke it.
Intentions are simplest to express in a choice based game:
It seems the final piece of the Great Jewel is going to be first prize in the deadly, dastardly marathon of doom. Do you want to (1) train to enter the race, (2) steal the jewel, or (3) bribe an official to swap it for a replica?
In a parser based game, there could be times when the player is asked to make an explicit choice like the above example (perhaps with the option of changing intentions later on), or there could be a command to express an intention: “I want to …” – which could be tricky to do, since there are so many possibilities. A compromise might be to have a menu (or command) that lists all currently possible intentions.
For the above example, the game could work just fine without needing to know the player’s intention. But if their intention was known, this could change the way the story is written: training for the games might take weeks, with its own interesting sub-plots; obtaining a replica could require a trip to another city; stealing the jewel could require planning, observing the guards and so on. Even if the choice doesn’t result in three separate sub-plots, the location descriptions and responses to PC actions could still be customised based on what the game knows the player is trying to do.
So: has this been done before in parser IF?
(Afterthought: all players really do is enter their intention every turn, e.g. “go north” – just on a much smaller scale than I am talking about here).