I thought I have explained it, multiple times in multiple threads where I have had responses from the same people. Let me try again, from the top and see if I can make it more organized to make some sense.
Most IF games have specific “puzzles” or sequences of actions, with one or few predefined courses to take for each, and “guess the verb/guess the noun” is as much a part of the game play as anything. The standard rules assume this kind of game, and more than in mechanics, even in output, as in the responses like “I beg your pardon?” or “(the apple) Taken.” or “the [container] (empty)”. I am trying to make a very different kind of game in how the player is presented with the world. If I am way off base and there are games that don’t behave this way, I’d love to be pointed in their direction, not just as a game maker, but as a player.
Kerkerkruip, for example, is a fun game, but it fits the mold of the “typical” IF game as described above, more or less. I may never finish what I am trying to do, and Kerkerkruip is a finished game people who made it can be proud of. I want to make sure that it is understood I am not disparaging that game, or any other game made that follows the genre norms. I am giving this preamble so that it is clear that I am making something a little different, and I have to establish what kinds of things I intend to differ from for that to make sense.
I am certain that the “language” of the code in this engine is capable of doing what I want, but it has become evident that, at least by doing things in the typical way this engine was set up for dealing with typical IF games, that memory and performance issues will prevent the game from reaching the scope I am aiming for. I don’t care if it takes me 20, 40, or 60 more years to complete, the kind of game I want to make is the kind of game I want to make… I just don’t want to have to write a parser, save system, file management system, etc., and I would like a delivery medium that is known, so I am trying to get it to fit my project into the IF engine.
I tinkered with writing my own engine from scratch in C# and javascript, and while it is technically feasible on an indefinite timeframe, it’s not really “fun” for me to write that part of the program, and I want to focus on functions that will manipulate the “game world” or else my whole hobby is going to be spent doing stuff I don’t like, so I abandoned that avenue and went back to trying Inform.
Now that the preamble is over, what am I trying to do exactly? I am trying to create a scalable framework in which a lot of conventions of “reality” (not necessarily “realism” but a contextual “reality”) are present in the game that are not in typical IF. I want this framework to provide the mechanisms to do this in a centralized, reusable, specific-thing agnostic manner, so that I can utilize this framework like an extension (possibly series of extensions) on which I build the game. What I’m trying to do is basically rewire a good portion of the standard rules, making a subset of standard rules for building the kind of games I want to build.
The kind of game I want to build is an open world game, but more than that, I want a richly populated and contextually sensitive world where “guess the verb/noun” is a thing of the past, and normal conventions of “reality” are present. So, a “person” is not just a single object, but has body parts which can be individually injured for various effects. The player has body parts, such that you can’t look at your own head. People react to events around them, and have context sensitive things to say or do based on how the world changes (if you take their stuff, they get angry, etc.). People are equipped with armor and clothing that can only overlap “slots” in logical ways. The reporting of actions is narrative in presentation, seamlessly placing the responses of what was done into a flowing paragraph. Time is moving forward for any action, there are no “free” actions… “examining” something has at least 2 (maybe 3) levels of examination detail, each which takes different amounts of time. I also want this world to have some of the conventions of other open-world games such that “loot” and “quests” have a hint of “randomness” such that it isn’t the same each time you play it. And more…
Now, all that sounds very complicated, and it very much is. I may indeed never achieve my goal, but that’s where I’m headed. Again, even if it doesn’t turn out quite as expansive and dynamic as I hope, and even if it takes me years and years, that’s what i am trying to do. Now, the key here is that in order to pull this off, a world like that needs LOTS of things. A person has to be made up of multiple “things” and there have to be many people, there have to be thousands (if not tens of thousands) of items or possible items, which have “random” properties and placements.These “things” are not necessarily Inform convention thing objects, but must present as things to the player. The whole point of my questions is trying to circumvent the limitations of the engine related to Inform things.
So this brings us to what has been discussed in this thread. How can I solve for these issues. I am getting very close to having a better, more consolidated framework for “item substitution,” or “props,” as I like to call them. It isn’t ready to share yet, but it is getting there. It uses a system of tables and properties to dynamically change a limited selection of rooms, people, and things by changing their properties. So, the limited number of things can look like they are “infinite” things. I am deeply concerned now that Draconis has stated that tables will end up taking up as much memory as objects… it’s easy to test 600 objects, because you can put a line like “100 props are in the void,” in 6 or more times. To create unique tables, I have to manually come up with 600 or more names for tables, so that’s hard to test and I haven’t… so, I ask, after all this incredibly long post, is what I am trying to do feasible under even the best of circumstances (I don’t mean am I personally capable of finishing it in my lifetime, but rather is the engine actually capable of a game expansive enough that “600 things” is far, far fewer things than are necessary).
And finally, how does this relate to the original topic of this thread? Well, I was asking a question about how to do something that is needed for my game. The more narrative responses of the game, coupled with the complex and random item generation and properties, makes it so situations WILL happen where the standard parser is going to decide it knows what to choose for the player when in fact, it is wrong that there aren’t disambiguations left to consider. People not understanding the kind of game I am trying to make lead them to tell me to do things differently, but not understanding the full scope of what I am doing, their suggestions are either wrong for what I am doing OR (and I am willing to concede this graciously) I am doing things wrong BUT the answers people are giving are incomplete to account for all the variables I am dealing with.