Forcing the parser to always ask which do you mean

Yes there are lots of games, especially more recent ones, which try to avoid guess the noun/verb. Though I’m not sure why you bring up guess the noun/verb… it has nothing to do with the presence of lack of simulation details, it’s all about synonyms.

That’s fine and a decent goal to aim for. I will say though that when you get to the final game you will need to embrace kinds. You can keep the central library generic and use placeholder kinds while you test it, but it would be a mistake to keep things generic in the final game.

As I think you know, it would be wise to dynamically create and destroy these items in the background when the player moves, just as 3D MMORPGs do.

I think I said this before, but I’d strongly recommend using rules rather than tables. You could have a “creating a person rule” which then creates the body parts and clothes etc. Then you can have “creating Alexander the Great” which will set specific properties, rather than the random ones the generic rule sets.

I think it is best to still use kinds. Don’t use a single generic prop kind for everything. Have a kind for body parts, and then subkinds for all the parts you want to have. Have a kind for clothes and sub kinds for all the kinds of clothing. When you need to create a part you can pick an offstage one and then change its properties, or create one dynamically if you’ve run out.

Yes this is a common idea. Most authors decide to have less specific things mention in descriptions that simulate everything, but I don’t think either option is intrinsically better.

Now to the problem at hand, how are you trying to store the information in “doom-rune engraved, +1 mithral dwarven claymore of destruction, with a golden, skull-shaped hilt”? Is that the full name of the thing? Are some of them texts? Kinds of value?

And I don’t know why you think 600 objects is the maximum. Kerkerkruip has 81 rooms and 524 things. I’m not sure how many properties we have, but it has 773 property functions, which are used for checking either single or combined properties in descriptions, but we probably have scores if not hundreds of properties in total.

I haven’t had time to read through this thread yet, but I posted an attempted patch to Disambiguation Control in the other thread.

Having read through the thread now, have you tried adding “Understand the printed name property as describing a thing”? That might be enough to force disambiguation when the props all have different printed names.

@matt w: Thanks for working on the extension! I’ll give it a shot when work allows. I also do know about understanding the printed name, but the printed names become so complex, and include punctuation like commas in my game. It’s OK though, as with Disambiguation Control working, the interface makes sense to me how I am setting it up, so thank you again!

@Dannii: Guessing the verb isn’t only about synonyms, but about guessing what actions would apply to a situation. I do intend to use understand phrases to help with it, but I’m more interested in making the world more intuitively like the real world, making the game more about character skill than about player skill. Nouns are actually probably more of the issue than verbs in this sense, where I aim to make nouns obvious, and make the description of the world out of nouns. I even intend for there to be a feature (toggleable) where the kind of a noun in the noun name is bolded or highlighted in some way if it is something that can be interacted with. Of course, there can still be hidden things and puzzles, but once a thing is presented to the player as interactive, I want it to be obvious what that is.

This brings us to the next point, in that “kinds” are too restrictive since they cannot be changed. So, I’ve created my own property called “category,” which internally to my rules and functions operates like a “kind” to distinguish behaviors etc.

I would love to be able to create and destroy objects, but as far as I can still tell after all the posting I’ve done here, there is no way to destroy an object. If you mean to “recycle” the props, I am doing that each time the player moves indeed. I don’t plan to have 5000 actual props active at a time, I was just exploring the mechanics of this issue. I intend to have about 100 props, 10 dummies, and 10 dynamic rooms, and shift the game around as the player moves.

Finally though… I am most baffled by the use of rules alone to do this. A rule has a static set of parameters, as far as I can tell. The reason I am using tables is that a “thing” (as understood by a human player) can change. When the prop is recycled, destroyed, whatever you want to call it, it either reverts to a default state, or perhaps “becomes” some other thing, inheriting new property values to look like something else to the player. If I use the rule to set that state, wouldn’t it always end up having the same state each time it is put back on stage? I need things to be able to change over time, to store data like current durability, enchantments added by the player, items that may be inside or on the object or room or other relationships between things…

Please point me in the right direction if this kind of information can be stored without tables, and without storing it directly on an object (as the whole point is that that is not a viable avenue).

Well, in this case my idea wasn’t so much that we’d actually be understanding printed names that the player typed, as that with that line included our props wouldn’t be considered “exact duplicates” by the parser, so they’d disambiguate.

It works! Thank you for updating that matt w. I tried it out and it works.

So, the title of this thread, the initial conversation about asking which do you mean, might be a little misleading. If a player does type in enough information to target the item desired, the game doesn’t ask which do you mean, but now, the way I have it rigged, there is no possibility under any circumstance that a player can’t target what they want, and the interface offers help to figure out what things there are, such as simply being able to type “take” (with no noun) and this will present the player with a list of all things that are takeable (as known to the PC), etc.

Thanks again, to Jon Ingold and matt w for the extension!

As for the other stuff that went way off topic to explain why I needed the thing in the topic, I’m still not there yet in understanding the best way to approach it, but I am still plugging along on my table and prop substitution system to do it at this point.