Based on feedback from testers, I've added several new capabilities to The Z-Machine Matter. This includes the previously described Keyword interface to accomodate both objects and locations as well as new commands TOPICS, SUSPECTS, CONFRONT and hopefully elimination of some parser ambiguities. The game is chugging along now at over 58,000 words, 174 objects and 44 rooms. With still plenty of work to be done.
Several testers have given me feedback that it's difficult to know what topics are valid for ASK and TELL commands with the non-player characters, so I've implemented a very basic TOPICS command that suggests some topics. Right now, the TOPICS command is largely (but not completely) static, but over time I'll dynamically suggest topics based on game play to help move things forward.
I've recently implemented a new command called SUSPECTS that tells you which of the NPCs are suspects. Both the TOPICS and SUSPECTS commands provide a mechanism to help the player along but fall short of really giving away any significant hints in the game play. For those who get really stuck, there's always the built-in HELP system. I figured these new commands are a good way to provide a ramp for players who want a little advice but don't want full-blown hints.
I've also added the ability to accuse a character of lying using commands in the form:
> CONFRONT Alan
> ACCUSE Beverley of lying
> TELL Charlie he's lying
The logic on how the characters respond depends on what evidence you've uncovered in the game. Each of the suspects has something they're hiding, and so if you find out what that is, you'll get different answers to some questions.
I've also expended some efforts to eliminate many of the annoying ambiguities that arise in Inform. The worst case is when ambiguity arises when you ask about an object and the parser asks if you mean some new undiscovered object. These messages tend to act as spoilers telling the player about objects they haven't even seen yet. For example, I have two different newspapers, the San Moreno Informer and the LA Times in different areas of the game.
Most of the time, it's not a problem, but if you ask someone about newspaper, Inform won't know which one you mean, even if you've not yet encountered one of those objects. I've eliminated the ambiguity, by implementing several "Does the player mean" rules such as:
[ Disambiguate other newspapers ]
Does the player mean quizzing about the Informer newspaper when last thing examined is the Informer newspaper: it is very likely.
Does the player mean quizzing about the Informer newspaper when location is not in the Blakely Estate: it is very likely.
Does the player mean quizzing about the Informer newspaper when it is visible and The Times Newspaper is not visible: it is likely.
That said, I'm not sure outguessing the parser is always a good idea. It seems to lead to some occasional odd behavior. Maybe the best solution may be to just eliminate ambiguously named objects from the get go, but that sometimes leads to awkwardly named objects. And even though I have two differently named newspapers in different areas of the game, it's entirely reasonable that a player would simply refer to either one as newspaper and expect the game to figure out which one is appropriate.
Alpha testers, feel free to contact me to get the latest version. And if someone wants to do a code review to help me that would be awesome!
Update: Also, if you've contacted me about alpha testing and not gotten a response, please check your spam folder or send me another email. Thanks!