Sunday, August 9, 2020

Truck Quest: Geographic Bias

People think it’s a good idea to publicly reflect on building your game after you publish it — Emily Short recommends it in her post about the 2018 IF Comp Post-Mortems, although the 2019 IF Comp was followed by some active author discussion (and disagreement!) about whether those reflections should be called post-mortems.

A few things could be done differently with Truck Quest, like communicating the player’s movements through the territory of the game. When I was trying to write code to handle the player's movements, I learned that I have a hidden — but powerful — geographic bias.

My thinking was that a long-haul delivery from California to New York would involve more risk (earning more of a reward) than a shorter delivery between two cities in Kansas, and I wanted to show that. But cross-country trips were going to be the final phase of the game. In order to give the player a sense of progression, they were going to start making deliveries in town, working their way up through deliveries across the state.

I had to keep track of whether the player was in one side of a territory, the center, or the other side, and I used three different arrays to hold potential destinations.

If the blue oval is the available territory, then it doesn’t matter whether we call it a city, state, or country. Moving from A to C travels across all three regions, which is clearly the risky long haul. Staying inside a region would be playing it safe. And the AB or BC deliveries would involve a moderate potential for failure. 

Destinations were put into arrays that I named $aPool, $bPool, and $cPool, because I read from left to right. This decision was a terrible mistake. 

When I tested it, you could select a destination in the eastern region and arrive in the west. Or head west from the center and wind up in the east. Or the message would say that you were heading east when the game was actually sending you to the west. Or you’d head east from the western edge and wind up in the center, which is correct but confusing because the code refers to A, B, and C. 

It reminded me of the “missing exit” in Zork, when you’re at the “south end” of a large temple and expected to travel north based on the description alone. Geography is hard.

The main lesson learned is that things are less complicated when your code resembles the information presented to the player. I should have used $westPool, $centerPool, and $eastPool for the names of the arrays. 

A less important discovery was that I put “east” first every time I list directions, even when I’m intentionally trying to start with the west. 

I’m not entirely sure why that’s the case, but I have my suspicions.

Sunday, August 2, 2020

Order, Chaos, Tea, and Toddlers

Absurdity sees its best comic effect when it opposes the non-absurd. It’s the principle behind the comedic foil, and it’s the reason why you have characters like Michael Bluth in Arrested Development acting normally while everyone around them gets silly. (A show following Michael on his own would be tedious, but so would one that ignored Michael and only followed the rest of the family.)

Traditional fiction can have a comedic foil perform two functions, providing someone for the audience to identify with and using that character to balance out absurdity elsewhere. Interactive Fiction doesn’t have that luxury — how can you tell whether the player wants to be a normal person navigating the chaos or the zany character causing the chaos?

Two different games from Damon Wakes offer a chance to try out both of those roles: GUNBABY and Lovely Pleasant Teatime Simulator. (You shouldn’t need more than fifteen minutes to go and enjoy both of them now if you want to avoid spoilers ahead.)

Lovely Pleasant Teatime Simulator is described as “the finest competitive text-based tea party simulator in all the world.” Its finery is evident from the first screen:


Presentation details establish that this will be a nice teatime, it will be pleasant, and everything is expected to be normal. Obviously, the player is going to change that.

The game’s early choices feel weighted with significance because it looks like specific protocol must be observed. Cream first, or jam? Do you correct a mispronunciation, or ignore it to be polite? Will your ignorance be the reason why this social gathering turns ugly? And what will happen when it does?

The player gradually learns that Teatime Simulator is serious about keeping things lovely and pleasant, and the initial choices are less important than they appear. The other guests are unfailingly polite, and it’s not possible to disrupt the stable equilibrium of this gathering through a minor breach of etiquette. Something more extreme will be required.

You may even have to mention Brexit.

The player’s score, counted in “points” that aren’t linked to anything meaningful in the game, increases as long as the simulator continues without interruption. (And the encouragement to share those scores at the end is a clever bit of embedded discoverability.)

The other characters in the game are determined to keep things pleasant, and tension develops over time as the player is shown increasingly absurd choices for disrupting this elegant social gathering. The desire to see what happens is pitted against the satisfaction of a high score, and the stakes increase every turn.

GUNBABY is the opposite of Teatime Simulator, putting the player in a situation on the brink of disaster.


Can you protect a city being menaced by an unstable, heavily armored cybernetic weapons platform? It has to run out of power eventually, so the player is only asked to maintain order for a specific amount of time. Not only does the game last for a set number of turns, it can end early if the player’s choices fail to stop Officer Giggles from causing a wide swath of destruction.

GUNBABY makes it clear that a heavily armed toddler is a bad thing, and the player is encouraged to prevent the worst from happening. the scoring system is directly linked to the action in the game, making it clear that the player is failing to prevent crimes, allowing casualties to happen, or causing property damage worth hundreds (or thousands) of dollars.

Both GUNBABY and Lovely Pleasant Teatime Simulator show the absurd in conflict with the mundane, and neither game would work without the two elements opposing each other. But what’s interesting is how the games offer different roles to play in that conflict — one of them dares the player to cause chaos, and the other begs the player to maintain order.