
Project:
'404: Exit not found' (2025)
​Word Count: 2200 words
Introduction
404: Exit not found is a first-person psychological horror game developed as the practical outcome of my Semester 1 research proposal, 'How do horror games use design to evoke fear and challenge stereotypes?'. ​
​
While I had previously prototyped a horror concept, this project marks clear personal progression both technically and conceptually. The game is a short, looping horror experience inspired by P.T. (2014), using modular events, dynamic audio, and procedural environments to evoke fear through atmosphere, silence, and spatial uncertainty.
​​
My approach to research was both analytical and practice-led, drawing from academic sources on horror design, interactivity, and representation to inform the creative direction of my final project. My earlier research on how games use atmosphere, pacing, and stereotype subversion to evoke fear directly influenced the design of my looping hallway structure and narrative triggers. I also engaged with research around ethical storytelling and inclusivity in horror, which shaped both the narrative premise and the way fear is experienced by the player. This combination of theoretical and applied research helped ground my design decisions in established discourse while also pushing me to reflect critically on my own creative practice.
​
This project outlines the core design decisions and technical implementations that shaped the development of the game.
Navigation:​
​
01
Fear Through Design
Looping, Pacing & Atmosphere
Atmosphere emerged as the most significant source of fear in my research, with 87.8% of participants identifying it as more frightening than direct threats. To respond to this, I focused on designing systems that would gradually unsettle the player’s sense of space and safety. Inspired by P.T. (2014), I designed a modular hallway system in Unity, using tagged prefabs to distinguish narrative and regular versions. Narrative hallways appear once, in a fixed sequence, while regular hallways are randomly selected and spawned in variable numbers between them (Figure 1). This allowed for controlled pacing, with each loop subtly shifting objects, lighting, and sounds to build disorientation and evoke a sense of the uncanny (Freud, 1919).
%20(8).png)
Figure 1: HallwaySpawner - Hallway generation logic
​Due to the procedural generation of the hallways, I couldn’t rely on baked lighting. Instead, I used real-time lighting with a custom optimisation script to disable all lights outside a set radius from the player, maintaining performance while enabling strategic use of shadow and guiding lights. I used Unity’s post-processing (2025a) effects including vignette, chromatic aberration, bloom, grain, and lens flare to subtly distort visuals, enhancing discomfort without losing clarity. These techniques in addition to colour grading (Sherpa and Barman, 2024), often used in horror games and films, manipulate perception, heightening tension and creating a sense of decay and a warped reality.
​​​
To support pacing variation, I also built a flexible trigger system. Any collider or object can link to a scriptable EventTrigger (Unity Technologies, 2018), activating audio, visual, or animation cues. For example, walking past a door might trigger both a creak and a flickering light. These triggers are reusable and modular, allowing for fast experimentation and iterative tension design. My previous research had shown that players preferred varied pacing, so I alternated quiet, slow loops with more intense ones - mirroring the emotional rhythm of Amnesia: The Dark Descent (2010), where fear grows through spatial and perceptual manipulation rather than immediate threat and maintaining a sense of the unknown. Each pass through the hallway subtly shifts the player’s understanding of the space, allowing fear to emerge from both repetition and the gradual erosion of certainty.
Looping hallway demo
Audio
My audio design drew on widely used horror techniques: layered ambience, randomised cues, filtered effects, and dissonant transitions. Rather than relying on jump scares or a single ambient loop, I created a layered soundscape to maintain unease and alertness. I began with a base layer of storm ambience, layering in creaks, whispers, giggles, and other distorted sounds, triggered at random intervals and managed by an AudioManager script that responded to player location, time, or chance. I deliberately avoided linking sounds to specific narrative or emotional cues, instead using them to maintain a persistent sense of dread and psychological instability.
​
To intensify the atmosphere, I also added effects like low-pass filtering (Unity Technologies, 2025b) and reverb (Unity Technologies, 2025c). Low-pass filters muffled whispers and background sounds, making them feel distant, as though coming through walls or from another space. Whilst reverb exaggerated the spatial emptiness of areas, making them either unnaturally echoey or claustrophobic. As a hallmark of horror audio design, I also incorporated glissandos during key moments (Meinel and Bullerjahn, 2022), such as seeing the doll move for the first time.
Use of a glissando in game (Unmute video to listen)
A central piece of interactivity I created was the radio, which also acts as a means to impart narrative easter eggs. I built a tuner system that let players search for signals, in turn uncovering short narrative fragments or unsettling noises. I implemented this using Unity’s AudioSource components and a custom RadioTuner script that converted dial rotation into a normalised frequency value, compared it to ScriptableObject (Unity Technologies, 2019) radio station thresholds, and faded in or out accordingly.
​
To reinforce the illusion of physically tuning through static, I used a separate transitionAudioSource that plays only while the player is rotating the dial. This created a continuous detuned sweep between stations, with pitch-shifting and distortion added to audio clips using Audacity, in an attempt to make familiar speech sound warped.
UpdateAudio () from RadioTuner Script
Radio interactivity & tuning to stations (Unmute video to listen)
Endgame Design
The climax of the game centres on a possessed doll, inhabited by the spirit of an abandoned child. While dolls are a common horror element, I deliberately avoided using it as a traditional antagonist or solely as a jump-scare trigger. Instead, it serves as a passive, unsettling presence; always watching but never predictable.​

Possessed doll model
I chose to use jump scares sparingly, primarily to punctuate moments of heightened tension, as feedback from my previous primary research found it to be ranked amongst the most overdone tropes in the horror genre. Similarly, a chase sequence near the end ramps up adrenaline in an otherwise slow-paced experience. This restrained approach, combined with moments of intense terror, proved more effective than constant fright. Like Amnesia (2010) and Silent Hill 2 (2024), the most powerful moments emerge from implication; when the player feels watched, disoriented, and uncertain. My goal was for the doll to embody this atmosphere while symbolising innocence corrupted.

Chase sequence respawn screen
The game rejects typical horror conventions by offering no saviour narrative or catharsis, only complicity. Drawing inspiration from games like Doki Doki Literature Club (2017) and Imscared (2016), the horror emerges not from violence but from quiet transgression. Instead of breaking the interface, I made it glitch, using flickers and distortions to unsettle the player, turning what seems like resolution into a final trap. This culminates in the game’s final sequence, driven by the TerminalEnding script.
Upon triggering the final event, the player’s input is disabled, the rigidbody is locked, and the camera moves to a fixed viewpoint. The screen is overtaken by a TextMeshPro terminal UI displaying fragmented, glitchy text, simulating a corrupted command-line interface. To create this instability, I used coroutines to alternate font tags and simulate distortion, with glitchy audio playing in sync with the visual effects. At the climax of the sequence, a voice clip plays, all other audio is silenced, and a fullscreen glitch effect takes over. The game then cuts to black and restarts, looping back to the beginning with altered introductory text.
​
The final act denies any sense of closure, underlining the protagonist’s inescapable fate. The player doesn’t escape the loop; they become part of it.
TypeLines () coroutine from TerminalEnding script
Terminal ending before restarting game (Unmute video to listen)
Narrative Architecture
I relied heavily on environmental storytelling to convey the narrative. Rather than using cutscenes or direct exposition, the story unfolds through scattered fragments - children’s drawings with hidden codes, tally marks on walls, and defaced family portraits that deteriorate with each loop. These artifacts signify psychological decay and shift the environment progressively. As familiar spaces grow darker, grime accumulates, and personal objects feel increasingly alien, reinforcing themes of identity loss and abandonment.​




Clean and decayed versions of game environment
To implement this, I created a variety of hallway prefabs that embed environmental changes directly into the level design rather than relying on trigger volumes or scripted material swaps. The goal was to make the environment itself complicit in the player’s unravelling, heightening the feeling of being trapped in an ever-changing, haunted space.
The narrative is further fragmented through corrupted radio transmissions, ranging from garbled weather reports to whispered chants and cryptic messages, that disorient the player and invite them to interpret the fragments and seek patterns on their own. ​This design philosophy aligns with Henry Jenkins’ concept of narrative architecture (2004), where meaning is derived from the player's interaction with space rather than linear plot progression. By leaving key story elements unresolved, I aimed to evoke fear not from answers, but from the tension created by uncertainty and ambiguity.
Ethical Design
While the project avoids explicit exploration of race or gender due to its ambiguous narrative, I was mindful of how horror games often mishandle themes of mental illness. Instead of framing fear through diagnostic tropes like ‘madness’ as spectacle, I sought to evoke psychological unease through spatial storytelling, inspired by works like Hellblade: Senua’s Sacrifice (2017) which successfully portrays psychosis through immersive, first-person experiences, rather than exposition or stereotype.
​
In my project, themes of loss, guilt, and psychological disintegration are implied rather than explicitly stated. For instance, some hallway loops features tally marks scrawled on the walls and children's drawings with parents crossed out, symbolising unresolved trauma and fractured relationships. These elements are not tied to a fictional diagnosis but instead suggest the psychological toll of abandonment. The goal was to convey mental and emotional breakdown through atmosphere, not overt character backstory or labels.
​
Technically, this was achieved using layered audio cues, fluctuating lighting, and interactive environmental props. The environmental shifts are intentionally inconsistent, mirroring the fractured emotional state underpinning the narrative. By avoiding the dramatisation of mental illness, I focused on atmospheres of absence and disconnection, emotions more aligned with grief than with clinical pathology. This decision was informed by my Semester 1 research, which critiqued the use of mental instability as both an offensive and lazy narrative device in games. Instead, my project treats psychological unease as a lived, affective experience that unfolds through player interaction.
02
Research and Development
I structured the project around a Trello Kanban board, using it to plan tasks, manage scope, and track development across each sprint. The board helped me break down complex systems, like procedural level logic, audio triggers, and narrative creation into clear, achievable steps. I used agile methods to organise my workflow, working in 2-week sprints and reflecting at the end of each to reassess priorities, resolve blockers, and adapt to feedback. This approach kept the project on track while giving me room to iterate.

Project Kanban style Trello board
This iterative process allowed me to refine gameplay elements, address issues quickly, and efficiently incorporate peer feedback. For instance, the terminal ending initially featured standard text that typed itself out. After receiving feedback from my lecturer, I incorporated flickering, distorted text to simulate a corrupted system. This led me to explore TextMeshPro’s capabilities, ultimately creating a malfunctioning terminal effect that enhanced the atmosphere and reinforced the theme of decay and loss of control.
​
The ease with which I could pivot and implement new ideas throughout the process was largely due to my focus on creating modular systems, such as the EventPlanner. These were designed to be flexible and easily adjustable through the Unity inspector, allowing me to experiment with new concepts quickly. This modular approach significantly increased my adaptability, enabling me to iterate on mechanics and features without major disruptions to the development process.
​
In addition to ongoing adjustments, I planned for potential risks and challenges by setting clear deadlines and regularly evaluating progress, which allowed me to manage scope and refine the game's atmosphere. For example, when feedback indicated that the chase sequence lacked the desired emotional impact, I adjusted the pacing, sound cues, and visuals to intensify the experience. Having contingency plans in place ensured I could address these issues without compromising the overall quality of the game.
03
Final Word
This project has deepened my understanding of horror game design, particularly the power of implication over explicit content. Through iterative development, I embraced ambiguity and refined the use of sound, pacing, and environmental storytelling to build psychological unease.
Reflecting on the project, I am more confident in my ability to integrate complex design elements while maintaining a strong modular code base and effectively managing scope. Overall, this project not only met the aims of my research but also expanded my skills in areas like creative writing and audio, demonstrating how subtle design choices can create a great horror experience.

References
Amnesia: The Dark Descent (2010) Xbox, Playstation, PC [Videogame]. Helsingborg: Frictional Games. Doki Doki Literature Club (2017) Windows, macOS [Videogame]. USA: Team Salvato. Freud, S. (1919) The ‘Uncanny’. Massachusetts Institute of Technology. Available at: https://web.mit.edu/allanmc/www/freud1.pdf. [Accessed 15 April 2025]. Hellblade: Senua's Sacrifice (2017) PlayStation, Xbox, PC [Videogame]. Cambridge: Ninja Theory. Imscared (2016) Steam [Videogame]. Italy: MyMadnessWorks Jenkins, H. (2004) Game Design as Narrative Architecture. Polish Association for American Studies. Available at: https://paas.org.pl/wp-content/uploads/2012/12/09.-Henry-Jenkins-Game-Design-As-Narrative-Architecture.pdf. [Accessed 2 March 2025]. Meinel, L. S., and Bullerjahn, C. (2022) More horror due to specific music placement? Effects of film music on psychophysiological responses to a horror film. Psychology of Music 50, (6) 030573562110734. https://doi.org/10.1177/03057356211073478 [Accessed 2 May 2025]. P.T. (2014) PlayStation 4 [Videogame]. Tokyo: Konami Digital Entertainment. Sherpa, L. D., and Barman, P. (2024) The Effects of Color Grading on Audience Experience in the Context of Horror Movies. International Journal for Multidisciplinary Research 6, (1). Available at: https://www.ijfmr.com/papers/2024/1/13557.pdf. [Accessed 3 April 2025]. Silent Hill 2 (2024) PlayStation, PC [Videogame]. Tokyo: Konami Digital Entertainment. Unity Technologies (2018) Unity - Scripting API: EventTrigger. Unity3d.com. Available at: https://docs.unity3d.com/2018.2/Documentation/ScriptReference/EventSystems.EventTrigger.html. [Accessed 20 March 2025]. Unity Technologies (2019) Unity - Manual: ScriptableObject. Unity3d.com. Available at: https://docs.unity3d.com/Manual/class-ScriptableObject.html. [Accessed 23 April 2025]. Unity Technologies (2025a) Unity - Manual: Post-processing in URP. Unity3d.com. Available at: https://docs.unity3d.com/Manual/urp/post-processing-in-urp.html. [Accessed 1 April 2025]. Unity Technologies (2025b) Unity - Manual: Audio Low Pass Filter. Unity3d.com. Available at: https://docs.unity3d.com/Manual/class-AudioLowPassFilter.html. [Accessed 2 May 2025]. Unity Technologies (2025c) Unity - Manual: Audio Reverb Filter. Unity3d.com. Available at: https://docs.unity3d.com/Manual/class-AudioReverbFilter.html. [Accessed 2 May 2025].
