The Shadows That Linger

Released, Programmer (Unity, C#) - Narrative Adventure Murder Mystery

January 2020 - May 2021

Released March 17, 2021

Programmer - Crimson Ink Games, Team Size 6

Download the game: The Shadows That Linger

Can provide code on request

About The Game

Play as a medium named Ilana in this spooky mystery and solve your sister's murder on behalf of her lingering shadow. With time running out before her restless spirit becomes lost in purgatory forever, converse with your newly acquainted in-laws to gather leads in tense dialogues, explore their picturesque estate, and use your crystal ball to peer into the realm of shadows and discover clues with spiritual connections. After collecting sufficient evidence, accuse whom you believe the murderer is to get one step closer to saving your sister's soul.

Implemented

  • Branching Narrative structure built upon ink Framework
  • Notification system for important in-game events
  • Scriptable Object based system design

About the Dialog System

The Shadows That Linger is a very dialog heavy game, so one of the first things that had to be nailed down was how the player interacts with the characters. We could just write our own dialog system, but people have already made great systems before that allow for simple choice based actions. After some research, I landed on the tool ink.

Shadows is more complex than that, so thankfully ink makes it relatively easy to access and modify variables in an ink script so they can react to things the player has found, who they have talked to, or have the game state react based on the player's conversations. The clues that you find in the game are a large part of what we track in the game partially due to the dialog, so being able to access that info was another thing that had to be figured out. Almost everything in the game that we track is done so using custom Scriptable Objects. Unity's Scriptable Objects are a great fit, as they give the designers a visual representation of the data we need, are easy to create in the editor, and make getting the data super simple.

ink website imageClue object snippet

A code snippet of the Clue Objects

Scriptable Objects used in dialog

Almost all the Scriptable Objects used in dialog

When it comes to actually showing dialog though, not much magic is happening here. We based our system off of the ink example game, with some modifications based on the variables that need to be tracked in and out of dialog. Overall, I think it looks good and I hope you do too.

Devlin McClure