top of page

PSI

overview

“PSI” is a 3D, first person, underwater, horror-survival game. 

The player takes the role of a rescue diver with the objective of recovering the black box of a recently sunken cruise liner. To achieve this goal, the player is equipped with a steampunk, old-style diving suit and a harpoon gun for self-defense. A short time into the exploration, the player finds themselves trapped, with communication to the surface severed. In addition, horrific, Lovecraftian monsters are trying to kill the player by cracking open their suit. They must carefully conserve harpoons and oxygen as they explore the wreck, kill these creatures, and discover the mysteries of how the ship went down.

​

Platform: PC

Programming Language: C++ / Blueprint Visual Scripting

Tools Used: Unreal Engine 4, Maya, Wwise, Pivotal

Duration: 6 months

Team Size: Core team of 6 + 9 Collaborators

Role: Gameplay and AI Programmer

Responsibilities: Gameplay and AI Design and Development, Audio and Animations Implementation

AI BEHAVIOR

I created the AI behavior using unique Behavior Trees for each enemy and a shared AI Controller that handles the changes in their behavior. 

Besides working on the AI, I also developed different mechanics for our player.

​

SHADERS

Underwater and Outline Shaders

I created custom built shaders for the underwater and outline used for the interaction and objective system.

To achieve the underwater feeling, I developed two underwater shaders to be used with the Post Processing Volume.

  • Close Waves: This shader was created with a low intensity and shortest depth to simulate the subtle waves from nearby objects.

  • Far Waves: This shader was with a more stronger intensity than the Close Waves one to create the blur and rippling effect to not being able to see the details far away from the player.

Animations

To handle all the animations and transitions between them for all our characters and objects in the game, we used Animation Blueprints or Timelines inside Blueprints.

All the behavior for the characters was developed in C++ and accessing the Animations Blueprint from code  to change the states if the Locomotion Tree made by our Animator.

Check out Carcinus Crab! One of the enemies of PSI fully animated!

other mechanics

Harpoon Gun

Player's are equipped with a harpoon gun loaded with 6 shots, with it they have the possibility of aiming downsides for a increased accuracy shot.

After shooting the harpoon to balance the pace and ammo of the player there is 33.3% change the harpoon will be recoverable.

​

Flashlight / Flash burst

The Poseidon Suit has a flashlight integrated, if the player decides to overcharge it, it’s flash will be able to stun enemies for a short period of time. If overcharged, the flashlight will flicker for cooldown.

​

Repair Stations

The player is within an armor called Poseidon Suit which helps them breath underwater... for a while. They have limited amount of integrity which we can observe in the HUD of the game. They also have a limited supply of oxygen​ which can be filled when interacting with a oxygen tank.

As we mentioned before the harpoon gun only has 6 shots which can be refilled if the player encounters a harpoon packs through the game.

In order to provide the player with safe places, there are Repair Stations which will restore the suit's integrity as well as ammo and oxygen.

​

Storytelling

The world in PSI has many misteries... During the game, the player will come across several notes and audiologs which will reveal what happened to the crew and it's passengers!​

​

Objective and Interaction System

The player will always have an objective on what to do in the game. They will be guided by "Barbanus" who will aid the player with the tutorial.

Animations
audio

For the project we had the audio middleware Wwise Audiokinetic Plug-in which we implemented with the animations as Ak Events similar as just adding sounds to the animations but with all the functionality from our sound designers.

​

We also implemented Ambient Sounds which were changed using RTPC values to change between states in the music, water and metal background sounds and most importantly the player’s breathing to create moments of tension.

Wwise was implemented in UE4 in such a way that it could be called from either Blueprint Visual Scripting or C++.

​

Trailer
bottom of page