Responsibilities: Game Design, Narrative Design, Scripting (Lua)

Development time: 1 week

Team size: 2

Genre: Text-Adventure

Tools: Visual Studios console, Mindmup, Sublime Text


Fragments of Rain is a single-player Text-Adventure for PC and made in the Visual Studios console. You play as an unnamed character who wakes up in a hospital bed and who is stuck in a time loop. The game has a branching story and depending on what choices the player makes, they will get a different ending.

This game was done as part of a school project and I wanted to take the opportunity to explore my narrative design skills.

Fragments of rain

~narrative design~

Memories of Rain consists of very few different components, since I didn't want to distract the player from the narrative. My belief was that if the player didn't care about the narrative, then they wouldn't care about the choices they made. If they wouldn't care about the choices, then the game had failed.

The dominant feature in Memories of Rain is the player's health, which is referred to as "Will" in the game. "Will" means both the protagonist's will to break out of the limbo as well as the name of their husband.


The amount of "Will" lowers every time the player reaches a "bad" ending, which in turn restarts the story loop.​ Reaching a value of 0 results in game over.

Narratively, the protagonist tries to come to terms with the loss of their husband Will in order to break out of their limbo. When the health (Will) reaches 0, the player has faiiled with that objective and can therefore never move on to the afterlife.

I wanted the narrative to follow a typical dramatic structure, but with an extended climax, i.e. depending on the player's choices in the game, the climax could arrive at different points.

For that reason, both the player and protagonist are initially unaware of the fact that they are stuck in limbo. In time, hints that something is off are given through text:

  • Some words have letters where some are capital or have spaces between them

  • Characters are repeating what they say, as if given an automatic response

  • The world behaving in a surreal manner

No matter what choice the player makes at first, they will reach a reset and start over from a specific story beat. The purpose of this was to make sure that the player does realize that something is off. Narratively, many events will still be the same after the reset, but the available choices are now updated. Finally, up until this point, the player had not been shown what Will is. After the first mandatory reset, Will is lowered in value. 

When writing the story events and dialogue options, I created a large mindmap using Mindmup. I labelled a text bubble with a certain color that represented the bubble's purpose. This way, I could then easily distinguish what each bubble actually contained. I could then swiftly implement that content into the actual game console.

In the image above are representations of color-coded text bubbles.

  • 1. Gray represents text which describes an event.

  • 2. Green represents text which describes one available option during a story event.

  • 3. Black represents text which describes a loop reset and starts the story over from a certain checkpoint.

  • 4. Blue represents text which describes one available option during a story event. Blue options always lead towards the positive final ending.

  • 5. Red represents text which describes the losing state that the player reaches when their Will reaches 0.

  • 6. Orange represents text which describes the winnig state; the positive final ending.


I was responsible for creating every narrative event in the game, which includes the overall story and dialogue options. Whenever the player picks a dialogue, a new event is loaded in that has different event descriptions and dialogue options.

For instance, the player may have three different options to pick from: A, B or C. Depending on which option is picked, a new event is triggered with its own options.


There are a total of 46 completely unique events that in turn can appear in different orders depending on what choices the player makes.

©2019 by Filip Zachrisson Hansen. Proudly created with