Quoll Work Thread, 2025-03-29 - 2025-03-29 17:52
It’s been an extremely long time since I’ve made an update here, but that’s mostly because I wanted to limit the overhead of writing these posts as I worked on this. My main focus after getting past the issue I discussed in the last post has been scaffolding up all remaining responses, and starting to pull over pre-written flavor from my Scrivener notes or writing the responses. I have ran into an issue that actually is worth thinking about out loud, so here I am posting…
(WARNING: This post contains slight optional puzzle spoilers for the First sublevel of Glitch’s Non-Breaking Space, but not the actual solution.)
As I’ve talked about a few times, the First sublevel of Glitch’s Non-Breaking Space has an optional puzzle involving Ada’s “old” roommate, Taffany, who is looking for some CDs. Of course, this means that the Playerr will have need to have Ada converse with Taffany about the CDs. There are multiple steps in solving this puzzle, which I’ll not get into, except to note that means that there are several possible “states” for Taffany to be in as far as her responses.
I was well aware of this complexity about a year ago in April 2024 when I added a Phrase that I could call so I could handle all the code for Taffany’s responses in a single place (lots of redaction in this code block, I just want to get across the general structure):
To have Taffany-Being respond on the topic of the CDs:
[... Skipping some variables ...]
say "[begin-conversation]";
if GNBSP-1-CDs-Discernible is false and no compact disc album is familiar:
if GNBSP-1-Missing-CDs-Subject is unfamiliar:
[... response for then the exact issue is unknown ...]
otherwise:
[... response for when the issue is known but a CD has not been examined ...]
otherwise if GNBSP-1-Discernible is false:
[... responses for indiscernible CDs ...]
[... and so on ...]
The reason I chose this path is because there are basically four different paths I needed to have this code run:
- Ada asks about
GNBSP-1-Missing-CDs-Subject
, a Subject representing the topic of the CDs. - Ada asks about a physical
compact disc album
. - Ada shows a physical
compact disc album
. - Ada asks about
GNBSP-1-Missing-CDs-Subject
during the part of the First Tutorial teaching about interacting with Taffany.
This is a completely reasonable way to handle this, I have done it in other scenarios as well. But I now have an issue
with that say "[begin-conversation]"
line. Basically, I had made the assumption that all of Taffany’s responses would
be part of a conversation transcript, which are written like a script, and are how I generally handle longer
conversations between characters.
But when I got to my Scrivener notes, I discovered that my indiscernible CDs response was not in a conversation
transcript. I could probably re-write it to be in one, but I would rather not for that response. So I need to handle
that a bit differently. But you might expect if I have a [begin-conversation]
I need to also have an
[end-conversation]
, and I do, but they are parts of my various Response Rules that delegate to the phrase like this:
Response for taffany-level-1-missing-cds when shown a compact disc album:
if GNBSP-1-CDs-Discernible is true and the noun is GNBSP-1-Taffany-Desired-CD:
have Taffany-Being accept the desired CD;
otherwise:
have Taffany-Being possibly reject an undesired CD;
have Taffany-Being respond on the topic of the CDs;
say "[end-conversation]".
This means not only do I need to handle how I write the [begin-conversation]
differently, I will also need to account
for the fact that I may not end up needing to write [end-convesation]
. Which of course gets to a different thing
that I have not accounted for yet.
In general, I expect Playerrs to opt for the tutorial first thing when they get to the sublevel. However, I realize some Playerrs will instead want to try to solve the exercise on their own and then possibly come back to the tutorial if they have trouble. But that means they may do the effort to make the CDs discernible, which means this response may end up coming up… In which case I probably would want it to be part of a conversation.
Hmmm… maybe I should rewrite the response as the path of least resistance. Well, let me get to trying.