REALLY, IF / REALLY, ALWAYS was put together with spreadsheets and scotch tape. I started working on it sporadically in early 2016, and finished in April 2018, in time to plant it in the Back Garden of the Spring Thing Festival of Interactive Fiction, and to have it published by the Orange Juice Public Library. This post summarizes the game’s development and construction.
First, a note on how the game works:
REALLY, IF / REALLY, ALWAYS is based on Bernie Cosell’s 1969 Lisp implementation of the ELIZA chat program originally written by Joseph Weizenbaum in 1966. The program simulates a dialogue with a psychotherapist, the “doctor,” by taking the user’s natural-language input, identifying keywords and/or sentence structures, then reflecting the statement back to the user according to rules associated with the identified keywords or structures. If, for example, the user typed, “It seems that you love me,” the doctor might respond, “What makes you think I love you?”
In the 1969 implementation of the program, there are approximately 250 potential sentences that the doctor can “say.” Some examples:
What might _____ represent?
Why do you remember _____ just now?
Let’s discuss further why your _____ _____.
Have you dreamt _____ before?
Please tell me more.
In each playthrough of REALLY, IF / REALLY, ALWAYS, every word in the 1969 doctor script is used in the potential “input” text exactly once. Keywords (such as remember, dream, love, etc.) are used any number of times.
To my mind, this game is principally about language and intimacy, that is, the words and syntax we use to talk about deeply personal subjects such as memory, dreams, sex–and how that manifests and distorts itself within the context of a program, ELIZA, that is designed to continually reflect input back to the user.
In addition to these thematic concerns, however, I felt that some suggestion of character and narrative were necessary in order to motivate the player to keep exploring the game, and also to give the game’s linguistic dimension more emotional resonance.
The materials I used to create the story were
- a finite set of words (the sentences from the doctor script) that I had to completely use up
- a set of words that I gave myself permission to use any number of times (the keywords, as defined by the program),
- the ELIZA/doctor program itself, which would create the dialogue for the NPC in response to the “input” I was composing
I began by creating some quick-and-dirty word clouds out of all the words from the doctor script. Different word cloud generators omitted certain important parts of speech, like pronouns and articles, but overall, the words that occurred most frequently suggested themes of knowing and not knowing, certainty and uncertainty.
I then put words in a spreadsheet, in columns arranged generally according to part of speech. I drafted sentences, and tested the responses with ELIZA. (I initially tried to “reverse engineer” the input based on the program’s decomposition and reassembly rules, but, with the exception of section 5, it was usually easier and faster to just type potential sentences into the program and tweak them based on the doctor’s responses.)
The “personality” of the player character emerged mostly out of necessity–out of the need to use, for example, 67 DOs, 14 PERHAPSes, 17 REALLYs, and 18 WOULDs. I don’t think that a cohesive personality is very evident in the finished game, but as I was writing, I imagined the character to be a bit pompous but also naive; formal, but in a somewhat strained and self-conscious way.
In terms of an actual storyline, it was challenging to create conventional plot points using a limited set of evocative yet vague words which, if they were classified according to Roget’s Thesaurus, would have more to do with “intellectual faculties” than “matter.” There were hardly any definite articles, and 5 times as many verbs as nouns. I created an ambiguous framework alluding to a relationship and past traumatic event(s) that the PC seems to be having trouble processing/remembering accurately. The rest I left to the player’s imagination. What is the relationship between the PC and the NPC? Is the NPC really a therapist? Is the NPC a ghost? Are they both ghosts? Which one is the NPC again? I don’t know.
Structurally, I think the game most resembles a gauntlet. There’s branching within each section, but the overall path is fairly constrained. In order to ensure that on each playthrough the player would be presented with every single line of dialogue, albeit in a different order, I scotch taped each line to an index card and, as I created the passages, I moved the cards to a “done” stack.
The look of the game was inspired by the music I was listening to, which was almost exclusively Pure Moods (actually, Pure Moods I through III) and spaghetti Western soundtracks. What drew me to this music (besides X-Files nostalgia) was its quality of synthetic vastness, which I tried to convey through the images and music.
I was surprised by how intense and upsetting beta testers found the experience of “speaking” with the NPC. I had initially been really worried that I would be setting up a dynamic whereby people felt they could abuse the (female) NPC, so I tried to craft dialogue that would create the illusion of the NPC’s having more agency. I questioned whether the very premise of the game was essentially forcing the ELIZA program to “eat itself,” so I relaxed the initial constraint to allow for unlimited use of keywords.
But in practice, it was the NPC who turned out to feel really aggressive, especially when coupled with the limited choices available to the player. I created some ambient music at the last minute with the intention of relaxing people, but it ended up making the game a hundred times more menacing–sort of like how one of the few places you might see a photographic mural of a peaceful forest scene is in the office of an oral surgeon.
I felt most gratified when testers reported feeling at times that their computers had somehow been hacked and were actually talking to them.
I don’t think the character or the narrative came through very much in the finished game, but I suppose I’m not sure how necessary that is. If I were to do this again, I would have tried harder to make the dialogue more linguistically playful and surprising, and to be more systematic and deliberate about breaking apart and drawing attention to the deconstruction and reassembly rules that the ELIZA program operates on. Or I might have tried to procedurally generate all the player dialogue.
Overall, I found the process satisfying and also surprising. This was my first game, and I am looking forward to getting started on the next one.