top of page

Crushing Depth

A VR Horror experience set in a German WWII submarine. The player needs to progress by avoiding an entity roaming the submarine and using their wits and a mechanic to switch the environment between a Light and Dark state. The player needs to progress in the dark, but can take refuge in the light.

Enemy Desingn

Enemy design
​

From the start, I wanted the enemy to be an important part of the game’s puzzle design, not just something to run away from. My goal was to make it feel like a key element of the level, where its attacks instantly kill the player. This approach let me remove chase sequences, which can feel confusing and even uncomfortable in VR.
 

Instead, I focused on making movement through the level feel more like solving a puzzle while slowly building tension. The enemy is only visible in the dark and can only attack in that state, but its presence is still felt in the light. You can sense it nearby through moving shadows and the mist that comes out of its mouth as it breathes.
 

This design helped create a stronger connection between light and safety while making darkness feel threatening but necessary for progress. It forced players to make careful choices about when to take risks and when to stay safe.

​

Responsibilities

  • Made the enemy a core part of the puzzle instead of just a threat

  • Defined how light and dark affect its behavior and how the player interacts with it

  • Balanced it to feel dangerous but fair, with instant death that’s always avoidable

  • Used shadows and mist to hint at its presence and build tension

  • Tweaked visibility and attack logic to make it work smoothly in VR

​

AI implementation​

I built the enemy AI using a behavior tree in Unreal Engine. It uses sight to spot the player and hearing to react to distractions. I wanted it to feel smart but not unfair, so I kept the rules simple and readable for players.
 

The AI patrolled set points around the level. If it saw the player, it would stop and focus on them. If the player stayed in its sight for more than four seconds, it attacked. Otherwise, it moved to the player’s last known location to investigate.
 

Players could also trigger an investigative state by throwing distractions. In this state, the enemy would leave its patrol to check out the sound, giving players a chance to move or solve puzzles without getting caught.
 

I also made the AI detect only the player’s head instead of their whole body. That prevented it from spotting players in weird or unfair ways in VR. I tuned perception and reaction timing so it feels natural but still keeps the tension high.

​

Responsibilities

  • Built the enemy AI using a behavior tree in Unreal Engine

  • Set up sight and hearing so it reacts to the player and distractions

  • Programmed patrols, line-of-sight detection, and attack behavior

  • Created an investigative state triggered by player distractions

  • Tuned detection to track only the players head for fair VR gameplay

  • Adjusted perception and reaction timing to make the AI feel natural while keeping tension high

Enemy in game

Turret shooting task

AI programing

What I Learned​

  • How to make AI feel smart and fair in VR

  • Designing enemies as part of the puzzle, not just obstacles

  • Balancing tension without frustrating players

  • Using Unreal Engine behavior trees to create reactive AI

  • Tuning perception, patrols, and attack timing to make encounters feel natural

  • Communicating enemy presence through shadows, mist, and light cues

  • Improving skills in enemy design, AI programming, and creating engaging VR experiences

​

What Learned
bottom of page