I’m currently creating an interactive fiction in Inform 7. So far at the finish of Part 1 or 3, I have 43,000 words, 25 rooms, and a couple hundred objects. I’ve given a lot of careful thought to actions within the world of the story. My story offers a more open feel in part 1, where many of the things you might expect the protagonist to be able to do within the world, they can. Clearly, an author can’t add every possible action, nor even a unique interaction of each action-object pair for a limited set of actions, so we compromise and generalize and take shortcuts whenever possible.
But as one adds necessary new actions, the number of verb-object combinations in the game grows exponentially — along with the number of potentially erroneous or inappropriate responses to verb-object combinations.
In Inform 7, the process of adding verbs/functionality seems ad hoc and disorganized, with each new addition quickly adding unwanted complexity. It might be helpful to have a system for selecting/importing verb functionality as needed. As it is, you can include extensions, but they often come with huge collections of verbs or verbs with unintended complexity.
Adding actions while authoring a game is pretty fundamental. But an easier framework for adding actions, might have some built-in abilities to make this a bit more elegant. What would such a framework offer?
- While adding new actions, the framework could either automatically add or dynamically tell you what you needed to add in the way of new properties, e.g., the verb “climb” might require you to create a “climbable” property.
- An action framework might warn you of unintended conflicts with existing actions or synonyms.
- When you add actions, it might tell you how those actions would affect the objects in your game. You might see an array of how that action would interact with each object in your game, what kind of message it would produce and any effects/affects. From here you might be able to customize the message for different interactions.
- The result of this array fiddling would be code automatically added (checking first, of course, to see if the code was already in the source elsewhere or had been modified).
My programming attempts are still strictly amateur. I’m confident that as I develop more IF games in Inform, that I will create my own system of organizing, programming, and validating, actions, and all these “helpful” suggestions will seem moot. For the moment, however, these are my impressions as a beginner.