I'm starting to appreciate Inform 7 more. I still find the syntax frustrating, but I think the programming model makes sense for the problem domain.
I used to think that Object Oriented Programming would be the natural methodology for interactive fiction, because after all you're modeling objects. However, I now realize that in a typical game you're only modeling one of any given kind of object. Even when you have multiple instances — keys, perhaps — you want each instance to behave differently, and sometimes interact with other objects in quite different ways. So being able to share functionality across instances by attaching it to a class isn’t such a big win.
D&D and its adventure modules are really just elaborate sets of rules that take effect when a given pattern is hit. "If the party attacks the orc, he will sound the alarm"; "Opening the chest causes a dart trap to trigger"; "Each round the Beholder does the following…" So a system based around rules (with functions to encapsulate and re-use code) feels quite natural for adventure games. (And if you want to define a class of objects that all share similar behavior, you can still do that.)
At this point I'm finishing up my second mini game, and going through all the documentation trying to learn better ways to do things before I start on something larger and more releasable.
#InteractiveFiction #Inform