Chimerror Productions

Quoll Work Thread, 2025-01-19 #2 - 2025-01-19 14:30

Tags: blog gamedev inform7 interactive fiction programming quoll testing text adventures writing

It’s time for a bit of a break! I first wrote up a whole new extension to contain all my Subjects that are shared conversation topics because before now I had mostly very specific contextual Subjects that best belonged where they are used, like GNBSP-1-Taffification-Subject that represents taffification. And then I tried to add a Default Response for Glitch for when there is no prepared Response, but I ran into an interesting problem testing this…

Starting in the First Exercise, Glitch starts carrying around the Annoying Skunktaur Puppet. With the exception of a short bit right when the tutorial starts, the two are never separated, and the Annoying Skunktaur Puppet is coded to often defer to Glitch’s responses. As such, I figured Glitch’s default response should account for Glitch having it.

I wrote up my test:

Test glitch-default-responses with "xyzzy /
? solo glitch default response / ask glitch about defenestration /
? moving puppet to Glitch / abstract puppet to Glitch the Skunktaur /
? unrevealed duo glitch default / ask glitch about somsri /
? revealing puppet by asking about her / ask glitch about puppet /
? revealed duo glitch default / ask glitch about defenestration".

If you’re wondering about the “unrevealed/revealed”, the puppet pretends to be an actual puppet for a bit but eventually reveals that it can act independent of Glitch. Anyway, to my surprise, when my test got to my “ASK GLITCH ABOUT PUPPET”, the Default Response I had written was printed instead of the already existing response on the puppet.

I investigated a bit, and the issue is partially my test design and partially something about the definition of the quizzing it about Action from Conversation Framework by Eric Eve. I didn’t think I really needed to test this in a realistic game scenario, so I used my test mode command to do it there. It’s very convenient because it moves Ada to NullReferenceException where Glitch starts out. However, Glitch does not carry the puppet by default; I move the puppet to Glitch when the First Sublevel starts.

There is a debugging command built into Inform 7, “ABSTRACT [something] TO [somewhere]” where it just moves the Thing to where you tell it to, so I used that. But the issue is that the Understanding that leads to the quizzing it about Action is defined as “ASK [someone] about [any known thing]”. A Thing is known if it is either seen or familiar. Things are usually marked as seen when Ada performs the looking Action when she enters a Room.

Basically, because I ABSTRACTed the puppet in, Ada herself hasn’t seen it yet. And since that makes the puppet an unknown Thing, it can’t match the “[any known thing]” token for quizzing it about. But a simple solution exists: I am just going to make Ada explicitly perform the looking Action by using the “LOOK” command.

Well, after I finish writing this up because I thought it was an interesting little bug. And after a break.

ETA, 16:51: I did have that break but I am beginning to waver and a friend is having a bit of a night with food, so I think that will do it for me today. Still nice to get some progress on this! Things are going to probably slow down a lot because I start my job this week but I’ll try to get some work in where I can!

Jaycie “chimerror” Mitchell