As I embark on a conversation system for my WIP, I’ve been browsing the extensions, including Epistemology and Aaron Reed’s “Remembering.” I’m not sure either one does exactly what I want, but since many other extensions use Epistemology, I want to make sure my own code plays nice with it. More importantly, I want to formulate a general philosophy of how memory works in the game world.
Here’s the situation:
My project has some flashbacks which are filled with objects and people that will never be accessible in the “current” timeline of the game. So instead of using Epistemology to begin with, I created a container called “your memory” which is part of the player. Perhaps this is dangerous, but so far I haven’t come up with any problems. Even “examine memory” produces a not totally unreasonable response.
The important thing about the memory is the rule for refusing to do anything with it:
[code]Before doing something when the noun is enclosed by your memory, say “There’s no [noun] here right now.” instead.
Before doing something when the second noun is enclosed by your memory, say “There’s no [second noun] here right now.” instead.[/code]
This seems to me to be a good way to cover a wide range of actions since things in memory are always in scope. Much wider than “Remembering,” which only handles examining, taking, and dropping. But is it overkill? Since there will be people in memory, it seems like give/show and verbs like that would also apply, but I’m not comfortable guessing what they all would be - especially when extensions like Conversation Framework create new verbs that would be relevant.
The next question is, if I do use an extension that requires Epistemology, what’s the best way to work the memory into it? Can I use “known but not visible” instead of “enclosed by your memory,” or add known objects to scope manually? Should I manually mark things as familiar when putting them in memory? Should I redefine “known” to include “enclosed by your memory?” And if I do tamper with the workings of Epistemology, what’s the best way to do that? Is it safe to simply redefine “known” and “unknown” after including it?