How can a convincing interactive character, with apparent psychological depth, be modelled in a playable narrative that adapts to a reader’s choice? This is the central question of my practice-based research that I address through the authoring (in both natural language and computer code) of an interactive text-based psychological thriller Stitched Up.
Narratives “by their nature are riddled with gaps” and characters are “some of narrative’s most challenging gaps” (Abbott 2008), yet filling in these gaps can be an enthralling source of readerly pleasure. On the other hand, flat characters “seem to exist on the surface of the story, along with objects and machines. There are no mysterious gaps to fill since what you see is what you get” (Abbott 2008). The majority of simulated characters in video games and interactive adventures tend to be more flat than round probably because, as Montfort (2007) has argued, a flat character can still be compelling and meaningful due to the nature of simulation, especially when combined with narration. Nevertheless, I aim to create round simulated characters in Stitched Up. These individuals in the storyworld will be compelling precisely because they are complex and undergo development as a result of reader–player interaction. In my playable psychological thriller, the readerly process of filling in the characters’ “mysterious gaps” is the core gameplay loop.
Stitched Up is based around the idea of a character as a “black box”. An observer or external entity can only infer what is inside a black box from its inputs and outputs. Interaction between two human beings could be viewed similarly. One person can only infer what the other one is thinking and feeling from their outputs, from their behaviour or what they say.
Since an interactive character must be constructed in code, I am researching how the properties and processes of programming in JavaScript can be used as functional metaphors to represent the psychological make-up of fictional characters and their dynamic interpersonal relationships. In JavaScript, as in other programming languages, encapsulation (the technical term for the black box) is an important strategy for organising complex code into modules (and/or functions), whereby internal code is hidden from external objects so that they can interact with each other safely and effectively via an Application Programming Interface (API). In this paper, I will discuss how I am repurposing the modularity of such JavaScript design patterns to dynamically model the internal mental states of my interactive fictional characters – their emotions, memories, moral values, opinions, etc. – and how this affects the process of creatively writing characters in natural language. Overall, this entails developing a modular form of character design where these attributes are discrete elements that can be amalgamated and delivered in multiple combinations yet still offer an individuated, meaningful encounter with a person in a storyworld.
(source: ELO 2015 Conference Catalog)