top of page

Letters From The Void

Engine: Unreal Engine 5

Role: Solo Designer & Scripter

Focus: Pacing, AI Logic, Systemic Design, Environmental Storytelling

​

Letters from the Void is a psychological survival horror prototype prioritizing tension over combat. The player assumes the role of a government scientist returning to a home corrupted by the consequences of unethical alien experiments. The core gameplay loop focuses on stealth navigation, narrative discovery, and resource management while evading a patrolling AI entity. Through iterative development, the project evolved into a systemic, psychology-driven experience utilizing Approach-Avoidance mechanics to maximize the player's cognitive load.​​​​​

Overview

Systemic Design & Sanity Variables

Systemic Design (The Approach-Avoidance Conflict):

I transformed a linear stealth game into a dual-risk resource management challenge grounded in operant conditioning. The physical risk (using the flashlight) allows for safe navigation but actively triggers the AI's raycast detection. The psychological risk (hiding in the dark) avoids the AI but steadily drains a dynamic Sanity float variable.

​

Cascading Variable Systems (Sanity):

I tied the Sanity float variable to a cascading system of physiological stressors. As the variable degrades, it dynamically drives post-processing volumes (vignette effects), triggers audio cues (heartbeats), and mechanically disables the player's sprint ability to simulate a 'Panic State'.

AI & Progression

Reactive AI (Raycasting & NavMesh):

I built the antagonist's behaviour logic entirely in Blueprints. I restricted the Alien AI to patrol specific hallway loops using NavMesh bounds, forcing the player to listen for audio cues before leaving a room. I then reprogrammed the AI to utilize continuous raycast cone-of-vision checks, turning the player's flashlight from a passive utility into a dynamic chase trigger.

 

Structural Progression (Gating):

To control pacing, I implemented a strict lock-and-key system. Early playtests revealed players could sequence-break the narrative by wandering too far. I integrated locked doors to force linear narrative discovery while maintaining the illusion of an open, domestic space.

Problem Solving

The "Reference" Crash:

The Challenge:

I initially engineered a system where collecting a narrative note would trigger a DestroyActor node. However, destroying the actor caused null reference errors in the Player Blueprint, destabilizing the build and crashing the game whenever it tried to reference the deleted note.

​

The Solution:

Instead of rewriting the core interaction logic and debugging dependency chains late in development, I executed a design pivot to ensure a stable build. I transitioned to a static collectible system using "Alien Rocks" as the endgame triggers. This preserved the intended gameplay pacing (collecting items to progress) while immediately resolving the dependency issues, ensuring a highly stable final submission.

Post-Mortem

Balancing Safe Zones vs. Exploitable AI:

Critically analysing the core loop, restricting the AI’s NavMesh bounds exclusively to the hallways succeeded in creating immediate "Safe vs. Unsafe" zones. However, extended playtesting revealed a flaw in this binary logic: once players realized the AI could not cross room thresholds, the rooms became exploitable, and the psychological tension flatlined.

​

The Takeaway:

In future stealth iterations, AI logic must include a dynamic transition state. Rather than hard-locking safe zones, I will program the AI to investigate sound or light emissions by temporarily breaching room thresholds. This ensures the player is never 100% safe, maintaining the Approach-Avoidance tension throughout the entire experience.

bottom of page