Cabin Murder

Made with: Unity, C# for PC

Group project

Module ‘Vrij II’ - 8 weeks

June 2025

Functionality

It’s a pixel horror game set in a cabin where a reunion is taking place between a group of friends who have grown apart. A murder occurs, and it’s up to the player to figure out what happened. At first, it plays like a typical mystery game, as the player quickly assumes that one of the other friends must be the culprit. By collecting clues from the environment and talking to the suspects, the player gradually realizes that something paranormal is at play: the cabin itself is what is draining the life from its occupants and absorbing them.

My role in the project

In this project, I was responsible for the game mechanics. This included programming the mechanics themselves and integrating these functionalities into the artists’ assets. In addition, I set up and managed the GitHub repository.

Dialogue

The dialogue system is the most technically complex system we created for this game. The dialogue itself was written in Ink, a kind of Unity plugin with its own external editor, which makes it easy to write dialogue with branching paths. This text is then passed on to Unity. Since this alone wouldn’t be enough for our game, we added a few custom features:

Emotions:

We wanted the characters to display different emotions at various points in their dialogue. We achieved this by adding tags at the end of a sentence in Ink, like <this>. In Unity, we then read the word between the < and > characters to determine the emotion, which changes the character’s sprite to the correct emotional variant.

Syllables:

We wanted the characters to speak per syllable, to make it feel as natural as possible, especially in combination with sound. It’s easy to display text letter-by-letter or word-by-word—there are already existing functions for that—but for syllable-by-syllable we had to come up with something new. After some searching, we found a dictionary in which each word was written with = signs separating the syllables. We stored each word from that dictionary in a Unity Dictionary<string, string[]>, so we could use the word as a key to find its corresponding individual syllables. Not all the words we wanted to use were included (such as names), so we had to add those manually. We also had to account for capital letters (at the start of a sentence, or “I” in English), and for plurals and verb conjugations (since those also weren’t in the dictionary).

What we ended up with is a robust system that displays the characters’ text syllable-by-syllable and plays the necesary audio along with it.

Previous
Previous

A Burning Memory

Next
Next

ReLion Us!