What do we mean by text not being ‘fixed’? We’re talking about how the text changes when the stories in the game change and grow. When you first start a scenario in the simulation, you have multiple options to get to your goal. Just like in the real world, there are multiple ways to get the person with Alzheimer you care for to e.g. brush her teeth. You could ask her politely to do so, but if she resists, you may need to convince her more strongly or perhaps distract her with something else first and then ask again. Posthcard provides plenty such options. And because of that freedom, the stories grow based on your choices. In this blog post, we introduce you to a specific part that changes live: text.

While interacting with the 3D simulation, you can see the world changing visually by characters moving around and performing actions. But it’s not just the animations, also the text you see will change with your choices. You might not realize it, but there are hundreds, if not thousands, of different sentences being used in the simulation. Menu items, descriptions and speech bubbles all need text. Each and every sentence has to be created. If our scenarios were just linear stories like you’d read in a book, we could simply write all the sentences in order and by hand. However, because our story lines change all the time, it’s simply not doable to write all those sentences by hand.

We are developing a system that allows us to write sentences in a more dynamic way. The main idea is to reuse (parts of) sentences in multiple situations. For example, in the sentence “Would you be so kind to brush your teeth?” we could easily replace “brush your teeth” with another action, such as “wash your hands”: “Would you be so kind to wash your hands?” This allows us to reuse the first half of the sentence, but also to reuse the second part in different sentences, for instance in “Please, go brush your teeth!” or “Please, go wash your hands!”

Going even deeper, the system we are developing can make grammatical changes like verb inflection and using different ways of referring to people and objects. For example, the sentence “Paul helps Marion” can change depending on who’s articulating it. If it were Paul himself who says that, he would say “I help Marion”. Notice the “I” replacing Paul’s name as a referring expression, as well as “help” being inflected correctly. Now, if it wasn’t Paul but Marion who spoke, and also directly to Paul, we would get “You help me”.

This very simple example of person 1 helping person 2 can already result in 12 different sentences, depending on the context of the simulation. To produce many different sentences, we only need to write one ‘template’: a sentence that mixes fixed phrases with placeholders for parts that are variable. That’s why we are dynamically generating text: it allows us to create flexible scenarios to which the text will simply adapt.

In a future blog post, we will look into some of the details of writing a template for a sentence and how we generate text in three languages simultaneously.