The Wolf of Derevnya: The Case of the Vanishing Villagers

The Wolf of Derevnya is a horror mystery choose your own adventure set in Kievan Rus’. You can play the first chapter here, or play a stand-alone build of only this scene here. Art by David Bowman.

Back to the portfolio

 


During the village exploration scene of The Wolf of Derevnya, the villagers begin to wander off later in the day. Time is counted by how many unique locations you have visited; each villager leaves after a certain amount of time, but not before the player has spoken to them. In Ink, the logic looks similar to this:

{time < 7 || not onfim_conversation:
{Onfim is here, still engaged in his mock battle.
– else:
Onfim’s schoolwork lies scattered on the ground.
}

The problem is that often the conditions are met as soon as you begin the conversation, leading to characters who vanish into thin air the instant you stop talking to them. What we want is for the character to remain present as long as you’re still in the same room with them, but be gone when you return.

Solution: Instead of evaluating the conditions in the scene, create a tunnel that evaluates them and sets a flag:

=== onfim_check ===
{onfim_conversation && time >= 7:
~onfim_present = false
}
->->

Then send diverts from other rooms through the tunnel, but not diverts returning you from the conversation to the room:

=== village_entrance ===
Here the path meanders its way out of the village and into the trees.
* [Head for the grove]
-> onfim_check -> grove_exploring

=== onfim_conversation ===
* “Hello there. What’s your name?”
-> a
* “What has that bark ever done to you?”
-> b
* “A sword would be better.”
-> c
+ [You’re done talking to Onfim]
-> grove_exploring

=== grove_exploring ===
{onfim_present:
{Onfim is here, still engaged in his mock battle.
– else:
Onfim’s schoolwork lies scattered on the ground.
}
+ [Talk to Onfim]
-> onfim_conversation
+ [Head for the village]
-> village_entrance

Now the game exhibits the desired behavior: Onfim remains present as long as you remain in the grove, but if you leave and return, he’s gone. The simple logic tools available in a scripting language like Ink can be used in this way to add a great deal of additional veracity to a game with a minimum of work.

Leave a Reply