Incom ist die Kommunikations-Plattform der Technische Hochschule Augsburg Gestaltung

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

GDD_Franziska_Schmidhuber_Have you seen Zoe?

GDD_Franziska_Schmidhuber_Have you seen Zoe?

In Lorenzo Fiancettis Büro taucht eines Abends unvermittelt ein Brief auf. Eine Erpressung: Sein Weingut gegen das Leben seiner Tochter, die am hellichten Tag verschwand. Anstatt auf die Forderung einzugehen, engagiert er einen Privatdetektiv, um alle Anwesenden zu befragen. „Have you seen Zoe?“ ist ein LLM Based Murder Mystery Game, in welchem der Spieler die Rolle eines Privatdetektivs annimmt. Sechs Personen sind am Tage von Zoes Entführung anwesend und werden nun vom Spieler befragt.

Spielprinzip

Finde heraus, wer Zoe entführt hat. Befrage die einzelnen Verdächtigen via Chat und filtere die wichtigen informationen heraus. Wenn du glaubst, den Entführer oder die Entführerin erwischt zu haben, aktiviere den Call Out und triff deine finale Entscheidung.

Spielablauf

Vor dem Start des eigentlichen Spieles, wird ein Intro-Hörspiel den Spieler in die Geschichte einführen. Nach dem Start, wird der Spieler dann in einem Raum gespawnt. Die erste Person die ihm entgegenschaut ist der Barkeeper des Weingutes. Fünf weitere NPCs sind mit ihm im Raum. Der Spieler kann sich nun frei entscheiden, mit wem er reden möchte und wann die Konversation beendet wird. Während der 30 Minuten Timer abläuft, sollte der Spieler so viele NPCs wie möglich ansprechen und sich gut überlegen, welche Fragen ihn weiterbringen. Über die Zeit werden neue Informationen freigeschalten. Während des Gameplays kann der Spieler jederzeit verdächtige Personen mit dem roten Buzzer vor ihnen markieren. Wenn die letzte Minute beginnt, startet die Call Out Phase. In dieser Phase soll der Spieler eine Person als den Entführer markieren und somit eine finale Entscheidung treffen. Liegt die Person richtig, so ist das Spiel gewonnen und Zoe gerettet. Um das Spielerlebnis noch anpassbarer zu machen, kann der Spieler jederzeit zum Call Out skippen, wenn er den Täter entdeckt zu haben glaubt.

KI-Mechanik

Die AI ist im Blueprint des Player Characters eingebaut. Dieser sieht im ersten Moment recht weitläufig aus, aber nur ein kleiner Teil des Gesamten Blueprints beinhaltet tatsächlich KI relevante Informationen:

Screenshot 2026-06-17 144321.pngScreenshot 2026-06-17 144321.png

Das Spiel läuft auf Basis eines lokalen Large Language Models. Mithilfe von LM Studio, konnte ich in Unreal Engine 5 eine AI Chat Schnittstelle aufbauen, die aktuell mit llama-3.2-3b-instruct läuft. Einer komprimierten Version der Meta AI. Modelle wie dieses sind derartig runtergescaled, dass sie auf lokalen Servern wie dem LM Studio Server laufen können. Das bringt allerdings auch Abstriche in der Qualität mit sich, die sich kaum korrigieren lassen. Die Schnittstelle sieht wie folgt aus und lässt sich praktisch genau so in jedes weitere Spiel einbauen:

Screenshot 2026-07-14 114932.pngScreenshot 2026-07-14 114932.png

Gleich darauf folgt der Part, der identifiziert, welchen NPC du gerade ansprichst und dementsprechend einen Prompt setzt:

Screenshot 2026-07-14 115625.pngScreenshot 2026-07-14 115625.png
Screenshot 2026-07-14 115645.pngScreenshot 2026-07-14 115645.png

Im angesprochenen NPC befindet sich dann nur noch das Prompt setting. Die zweite Hälfte, die den LLM Chat ermöglicht:

Screenshot 2026-07-14 120418.pngScreenshot 2026-07-14 120418.png

Wie kommt die Kommunikation zu stande?

Folgendes läuft chronologisch im Code ab. Zunächst läuft der Spieler auf einen NPC seiner Wahl zu. Dieser wird mit „E“ angesprochen- nehmen wir Beispielsweise Andrew Connor, den Barkeeper.

Ein Line Trace wird aktiviert und gibt den Namen des NPCs aus. Das ruft die Funktionen des jeweiligen Kindes des Base NPCs auf. Andrew wird also aktiviert, wie auch das Event „On Interact“. Dieses Event ist lediglich dafür zuständig, die Chatbox auf den Screen zu holen. Diese Chatbox ist der Schlüssel zum Chat mit der KI. In der Theorie könntest du jederzeit mit dem Server Chatten, aber ohne Textfeld hast du keine Inputmöglichkeit. Sobald du Enter drückst, schickt die Editable Textbox den Text an die Variable „Prompt“ und ruft das Event Call LLM auf.

Screenshot 2026-07-14 120137.pngScreenshot 2026-07-14 120137.png

Zurück im Player Character: Um eine Anfrage zusammenzubauen und abzuschicken braucht man zwei Json Rollen, „system“ und „user“. Dabei ist „system“ logischerweise das Modell und „user“ ist die Anfrage des Spielers, welche mit dem Text der Prompt Variable befüllt wird. Die Json wird programmintern zusammengestückelt, das übernimmt Unreal für dich. Dann wird die Request abgeschickt. Folgendes erhält die KI:

Screenshot 2026-06-17 151843.pngScreenshot 2026-06-17 151843.png

Und folgendes schickt sie an Unreal Engine zurück:

Screenshot 2026-06-17 152019.pngScreenshot 2026-06-17 152019.png

Alles ab [INFO] würde im Spiel ausgegeben werden. Das ist viel unnötiger Text, wenn wir einfach nur die Antwort haben wollen. Zurück in der AI Schnittstelle wird also gefiltert, bis nur noch die Antwort geprinted wird.

Nochmal zur Erinnerung: Das ist der Filter direkt im AI-Schnittstellencode:

Screenshot 2026-07-14 120825.pngScreenshot 2026-07-14 120825.png

Screenshot 2026-06-17 152349.pngScreenshot 2026-06-17 152349.png

Die erste Connection mit der KI pro Session dauert je nach Internetverbindung und Komplexität der Anfrage einige Sekunden. Deswegen lohnt es sich, zunächst eine einfache, kurze Frage zu stellen, wie zum Beispiel: „Whats your name?“. Deutsch ist hierbei ein Ding der Unmöglichkeit, da die meisten Modelle auf englische Grammatik ausgelegt sind und Deutsch unglaublich holprig bis sinnlos klingt. 
Jeder weitere Chat (auch bei NPC Wechsel) wird allerdings flüssig und stabil beantwortet. Bis zu einem gewissen Grad besitzt die KI sogar Erinnerung an den vorherigen Prompt und kann sie recallen. Um genauere Antworten zu gewährleisten, empfehle ich allerdings immer, mindestens einmal den Namen der Person über die gesprochen wird zu nennen.

Der Timer

Der Timer ist mit eines der relevantesten Werkzeuge im Spiel. Er arbeitet nicht nur als informatives Widget für den Spieler, sondern kontrolliert die KI, wie auch den Spielverlauf im Hintergrund.
Code, der mit dem Timer in Konversation tritt, nimmt also die größte Fläche ein:

Screenshot 2026-07-14 121225.pngScreenshot 2026-07-14 121225.png

Folgende Aufgaben werden dem Timer übergeben oder stehen damit in Verbindung:

Add and remove Widgets
Update Prompts
Set Booleans
Open Levels

Das Updaten der Prompts ist dabei wieder ein Funktionskern für die KI. Jeder der sechs NPCs hat einen Base Context und eine Geschichte - der Base Context sieht dabei zum Beispiel so aus:

Screenshot 2026-06-17 154131.pngScreenshot 2026-06-17 154131.png

Dieser verändert sich nicht über die Zeit und wird bei jeder Anfrage mitgeschickt.
Der Inhalt der darauf folgt ist allerdings variabel. Er besteht aus drei Leveln, die Stück für Stück sensiblere Informationen beinhalten. Alle drei Minuten - dies kann beliebig gekürzt oder verlängert werden - wird das alte Level herausgelöscht und der Prompt neu befüllt.
Dies hat drei Gründe: Es beschleunigt die KI, reduziert Halluzinationen und gestaltet das Spielerlebnis insgesamt interessanter. Dem Spieler kann zum einen nicht direkt alles offenbart werden und zum anderen wirkt es so, als würden sich die Charaktere mit der Zeit, wenn der Druck zunimmt, mehr und mehr erinnern.

Audio und Soundtrack

Das Spiel beginnt mit einem Hörspiel, welches dem Spieler die Situation erklärt und ihn in die Geschichte hineinziehen soll. Hier wird der Player Character vorgestellt, wie auch der Client. 
Nach dem Hörspiel kann man das Spiel starten (oder auch schon davor, wenn man skippen will). In der Aula des Weingutes, dem einzigen Environment des Spieles, befinden sich die sechs ansprechbaren Charaktere. Jeder und jede hat zwei Catchphrases die random ausgewählt und dann abgespielt werden, sobald der Spieler sie anspricht. Dies soll das ganze lebendiger wirken lassen. Der Raum wird dabei stets von einem leisen Hintergrundambiance ausgefüllt.

Screenshot 2026-07-14 121446.pngScreenshot 2026-07-14 121446.png

Die Charaktere...

Häufig erwähnt, aber noch nie gezeigt. Das sind die sechs Charaktere in „Have you seen Zoe?“

AllSix.pngAllSix.png

Andrew Connor, Eva Scott, Grace Boureima, Layton Lynch, Mary Bluebird, Lorenzo Fiancetti

... ihre Persöhnlichkeiten - The point of AI

Ihre Eigenschaften und Eigenheiten werden mit dem Base Context Prompt gesettet. Darin sind ihre Verhaltensregeln, ihre Persöhnlichkeiten, ihre Beziehungen, ihre Meinungen und ein klitzekleines bisschen „Tea“ enthalten. Natürlich zusätzlich zu den eigentlich wichtigen Infos. Das macht auch die Konversationen interessanter, da in den Zeichnungen, Voice lines und Texten auch mitschwingen soll, wie sich die NPCs gerade fühlen.

Das ist mit der Hauptgrund, warum AI dieses Spiel verbessert. Neben dem Fakt, dass ein Keyword based Dialogue System - die einzige andere, sinnvolle Alternativmechanik -  unglaublich aufwendig aufzusetzen wäre, spielt eben auch mit rein, dass es nur begrenzt ein Gefühl replizieren kann. 

Da das Spiel Animationslos ist, beruht die komplette Immersion auf den Texten und dem Audio. Halluzinationen können zwar auftreten, aber eben auch das Spielerlebnis bei jedem Durchlauf auffrischen. Denn die Charaktere dichten manchmal im laufe der Geschichte auch ihren ganz eigenen Part hinzu. Das sind keine wichtigen Infos, aber sie können in die Irre führen oder den Spieler ablenken. Sie können neue Beziehungsdramen und Theorien erschaffen, die auf einem ganz anderem Level stattfinden, als „ nur“ ein vermisstes Kind zu finden. Das erhöht denn Schwierigkeitsgrad des Games natürlich enorm. Die Entwicklerin kennt die geschichte, die Spieler nicht. 
Gleichzeitig eröffnet es jedoch auch die Möglichkeit, nach einem mehr oder weniger erfolgreichen Spieldurchlauf einfach nur mit der AI selbst zu spielen. Sich Vorwürfe und Drama auszudenken, sich mit ihnen über die eigenen Sorgen und Probleme zu unterhalten, sie dazu  bringen, ihre Befehle zu verwerfen und einfach alles zu sagen was sie wissen. Es gibt viele Möglichkeiten. So sind es quasi zwei Spiele in einem!

Screenshot 2026-06-17 163846.pngScreenshot 2026-06-17 163846.png

Fazit

Anfangs hatte ich große Probleme damit, die AI Schnittstelle zu bauen. Es gibt genau ein sinnvolles Tutorial dazu und es hat lange gebraucht dieses zu finden. 
Sobald die Schnittstelle aber stand, war das Spiel technisch gesehen recht schnell komplett. Ich habe allerdings noch viel geschraubt und gedreht, damit der Chat stabil und flüssig läuft und das Spiel insgesamt ein schönes, entspanntes und kognitiv anspruchsvolles Erlebnis wird. 
Ich hatte genug Zeit, einige Spielrelevante und verbessernde Add Ons und Nice to haves einzubauen, wie das markieren der Verdächtigen mit rotem Licht, die Timer Based Events und nach einigen Spieletests auch finale Touches, die den allgemeinen Spielerflow aufwerten.

Insgesamt habe ich viel über AI gelernt, was die reduzierten Modelle können - und zwangsweise auch, was sie nicht können. Hier kommen wir auch schon zu den Bugs:
Grundsätzlich kann man sich bei der Leistung des Chatmodells eigentlich nicht beschweren. Der Chat läuft schnell und stabil, die Infos werden verstanden und nach einigen Tweaks im Prompt auch gut wiedergegeben. 

Aber die Halluzinationen bleiben. Komischerweise vorallem bei einem Charakter: Grace - meine persöhnliche Nemesis im Spiel. Aus allen NPCs ist sie die unangefochtene Halluzinationskönigin. Sie scheint eine eigene Story zu verfolgen. Eine die manchmal beinhaltet, dass sie Lorenzos Frau ist, dass sie Zoes Oma ist, das Zoes Großmutter die ihre ist oder das jemand aus ihrer Familie mit Zoe verheiratet ist, einem 11 Jährigen Mädchen. Meistens ihr eigener Ehemann, der im Spiel nicht präsent ist. 
Leider kann man einer solch komprimierten KI das nicht wirklich abgewöhnen. Und solange alle anderen Charaktere funktionieren, bin ich für diesen Prototypen damit zufrieden.

Erweiterungsmöglichkeiten des Spieleprototypen

Folgendes sind meine Ideen:

  1. Die offensichtlichste Erweiterung wäre Text to Speech. Dies würde das Spiel noch um einiges Immersiver und lebendiger machen. Doch aktuell klingen die einfachen Mittel und Wege sehr robotisch und monoton. Dies ordentlich einzubauen sprengt den Rahmen des Prototypen und ist auch nicht wirklich ausschlaggebend, für die zu Grunde liegende KI Mechanik.
  2. Die Charaktere könnten Comic-artige Animationen bekommen. Diese würden genauso random gewählt werden wie die Audiolines. Visuell noch interesssanter und spaßiger. 
  3. Der Täter wird zu Beginn des Spieles zufällig gewählt und ist somit jede Runde jemand anderes. Das würde allerdings verlangen, sechs verschiedene, sinnvolle Geschichten zu schreiben. Dies ist gut für ein finales Game, aber keine Option für einen Proof of Concept Prototypen.
  4. Das Spiel findet in einem Haus, statt nur in einem Raum statt. Die Charaktere können sich frei bewegen. Im Haus sind sammelbare Spuren, die bei Erhalt neue Informationen in die Prompts schreiben. Dies erweitert das Spiel um eine Ebene.
  5. Cut-Scenes. je nachdem, welchen Character du verdächtigst, wird im Finalen Call Out nach der Entscheidung eine Cutscene abgespielt, die die Konsequenzen der Spielerentscheidung vorführt. Aktuell gibt es stattdessen einen End Screen, der je nach Erfolg offenbart, was nach der Entscheidung passiert.

Spoilers Ahead

Ein Projekt von

Fachgruppe

Interaktive Medien

Art des Projekts

Projekt-Tagebuch

Betreuer_in

foto: Thomas Rist

Zugehöriger Workspace

Künstliche Intelligenz für Computerspiele 2026

Entstehungszeitraum

Sommersemester 2026