top of page

Dual Descent

Project Type

First Person Survival Horror Project

Role

Solo Developer

Location

Burbank, CA

Engine

Unreal Engine 4.27

Other Software Used

Maya,  Houdini , Photoshop 

A Bit About the game...

For my Systems Design class, I created a first-person horror game where players switch between two characters, each with unique tasks that rely on one another. One character roams the streets, destroying cursed totems that dissipate fog barriers, allowing the second character to progress through eerie environments. The second character's goal is to destroy monstrous eggs, which eventually unlock gates needed to confront the final boss, a terrifying Kraken. Along the way, players must solve puzzles and fend off zombies, adding intensity and excitement to the gameplay as they race to complete their intertwined missions and survive the horrors within.

Horror Game Thumbnail.png

Checkout the Gameplay!

Project Post Mortem

Role Description

As the solo developer of this project, I handled everything from concept to execution. I began by collecting references of parks and apartments to establish the suburban setting, ensuring the environment felt grounded and familiar. During the planning phase, I researched games with switchable multiple characters in the same level. The system that immediately came to mind was GTA V, particularly its missions where all three protagonists engage in gunfights, requiring players to switch between them periodically. Since this was a project for my Systems Design class, I prioritized polishing the core systems such as character switching, AI behavior, and puzzle mechanics

over creating an overly complex level layout. My main focus was ensuring the characters and their interdependent mechanics worked seamlessly, delivering a smooth and engaging gameplay experience.

Since this project was more focused on systems design, it didn’t require a full Game Design Document (GDD). However, I still needed to create a concise pitch presentation to showcase the concept, mechanics, and overall gameplay  to the class. This presentation helped me clarify my ideas and communicate the core vision effectively, ensuring that the audience understood the unique mechanics of character-switching and puzzle-solving. It also served as a useful tool for organizing my thoughts, keeping the project focused, and ensuring that I stayed aligned with my initial goals throughout development.

Documentation

<--- Click Me

Dual Descent Pitch Presentation

Learning Outcomes

When I started working on this project, I decided to implement and improve what I had learned in previous project while also aiming to add more systems in the project, keeping the scope and timeline of the project in mind. 

One of the most exciting, system I wanted to implement in this project was to add Enemy AIs, which in my experience I have never worked on before. 

So I started researching about how to make a good Enemy AI system. At first I started prototyping AI by just using the Blueprint Class. But I wanted to make a more complex AI where they detect the player character by Sight Perception and then they start chasing the player character in order to Attack them. So I decided to implement a more richer and complex systems called Behaviour Trees and AI Controllers

Zombie AIs:

Zombie AI uses a state based perception where Sight perception detects Player Character. Whenever player character walks into the cone of vision, it triggers a behaviour change inside the behaviour tree where it basically requests the character Blueprint class to stop standing idle and instead chase player character in order to attack them. 

Kraken Boss Fight AI:

For the boss fight, I wanted the boss to have multiple attacks to create tension and excitement in the boss arena. In order to implement this, I linked Sphere Trace Channels (Sphere Casts Channels) to the attack animations. And with the help Anim Notify I was able to like to attack and damage player. 

This also helped me to control the duration of damage trace and the interval between each trace withing the animation without coding complex logics.

AI Enemies

image.png

Zombie AI Sight Perception

Zombie punch .gif

Sphere trace on Zombie attack animation 

Recording 2025-10-02 175614.gif

Sphere trace Attached to animations (Open image in a new tab to see the GIF play)

image.png

Animation Notifiers that can be tweaked to set duration of the trace

Kraken Boss Fight.png

Kraken AI Behaviour Tree

Zombie AI Behaviour Tree

image.png

Improvement in Level Design

Map.png

The Destroyer-Map

Second Map.png

The Seeker-Map

One of the biggest changes I brought to this project was improvements in layouts and design for the level. From my previous level I saw how playtesters felt the play space were way too big and at times it felt like they were just holding down "W" key when they were moving through the level. 

This time around I improved my layouts by adding more turns and implemented organic shapes to paths that player character takes and also made sure it also works with the NavMeshes for AI characters. This made the playthrough more exciting and also amplified the horror elements of the game. I was able to hide zombies that surprised and scared the players, exactly the effect I was aiming for.

What players liked:

  • Puzzles: Players appreciated the complexity and design of the puzzles, finding them engaging and rewarding to solve.

  • Engagement: The dynamic between the two characters kept players invested in the gameplay, promoting a sense of collaboration.

  • Horror Elements: The atmospheric tension and horror elements were well-received, effectively immersing players in the game's eerie environment.

What players didn't liked:

  • Character Mechanics: Feedback indicated that The Seeker, the second character, felt less mechanics-heavy compared to The Destroyer, suggesting a need for additional gameplay features to enhance their role.

  • Sound Design: While not a requirement, players felt that the game could benefit from a more immersive sound design to elevate the horror experience and create a deeper sense of dread.

Post Playtest

Click on one of the images to view the next project

Gallery

Some of the footage and screen grab of the game. 

bottom of page