A murder mystery game where the NPC conversations are controlled via
a local Large Language Model (LLM). This project was made to explore
the narrative paradox, and was published as an article in the
International Conference for Interactive Digital Storytelling (Oudrup, C.B. et al. (2026). Killer on Board: Addressing the
Narrative Paradox by Utilizing LLM-Driven NPCs. In: Reyes, M.C.,
Nack, F. (eds) Interactive Storytelling. ICIDS 2025. Lecture Notes
in Computer Science, vol 16374. Springer, Cham.).
The player is put into the role of a detective, and is tasked with
figuring out which of seven passengers killed the eigth. This is
done by talking to the NPCs, as well as collecting clues that help
narrow down the potential subjects. The NPCs are procedurally
generated, with both roles, names, and looks changing every game.
My bachelor project, which was developed in Unity in a group of six
people. My main responsibility was the visual style of the game,
with me creating a Custom Lighting Model to give the game a
half-tone shaded look, as well as creating a material-based outline
shader, so that objects easily could be given different priority
with differently coloured outlines of varying thickness. I also
created the character model, as well as multiple textures and UI
elements. Finally for the visual parts, I animated an intro
cutscene, which served to introduce all the procedurally generated
NPCs, as well as help mask the LLM Warmup Period. This cutscene
adapts to have NPCs do tasks that are releveant to their roles, such
as having bartenders mix drinks, and ship guests swim in the pool.
I also planned the user testing with two other group members, and
did all the quantitative data analysis, as well as assist other
group members whenever they got stuck in any coding tasks, be it bug
or other issues.