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

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 flow 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

Dual Descent Pitch Presentation

What have I learned? 

From this project, the primary learning outcome was developing intricate and detailed systems that made the level function seamlessly. I also reflected on my past experiences, particularly a previous project, Assassin in The Line, where I struggled with building an effective UI system. In that project, the lack of a clear interface led to player confusion, which became a key area I wanted to improve. For this game, I made it a priority to design a clean and intuitive UI, ensuring that players always knew their objectives and didn’t feel lost. Balancing complex character-switching mechanics with clear feedback for the player was both a challenge and a valuable learning experience, helping me create a more polished and engaging gameplay experience.

One of the most rewarding aspects of this project has been how collaborative it has become. I’ve had the privilege of working with an incredibly talented group of people—composers, songwriters, voice actors, producers, artists, and animators. Collaborating with these experts has taught me how to communicate effectively, ensure my vision is clear, and make adjustments based on their feedback. Managing these diverse contributions has not only enriched the game but has also expanded my understanding of how each element—whether it’s music, visuals, or performance—plays a critical role in crafting the overall experience.

Collaboration Across Disciplines

Development Growth

A custom shader to erode away the tentacle

Through this project, I grew significantly as a developer. Beyond learning how to develop intricate systems, I also learned to approach development more efficiently. I found ways to balance complexity with functionality, ensuring that each system served the gameplay without becoming overly complicated. This experience taught me not only how to build robust mechanics but also how to be mindful of time management and workflow, focusing on what was essential to deliver a cohesive experience.

For the game’s finale, I utilized Houdini to create an optimized rigid body simulation, adding dramatic flair to the final boss encounter. I built a large set piece where the swimming pool area breaks apart as the Kraken emerges, creating an impactful moment for the player. To ensure smooth performance, I baked the simulation into joint-based animations, allowing the destruction sequence to run efficiently in the engine without compromising performance. Additionally, I created a custom erosion shader to gradually erode away the Kraken’s tentacles during the battle, enhancing the drama and visual storytelling. This shader effect gave the impression that the tentacles were decaying or dissolving under player attacks, further intensifying the fight. This entire process was a valuable learning experience, helping me combine technical artistry with system design to deliver a memorable gameplay moment.

In Dual Descent, the level design plays a crucial role in enhancing the horror experience and facilitating the unique gameplay mechanics. I focused on creating a suburban environment filled with interconnected areas that encourage exploration and strategic character switching. To inform my design choices, I gathered references from real-life suburban settings and apartment layouts, drawing inspiration from games like Resident Evil and Silent Hill, which effectively blend horror elements with intricate environments. To ensure efficient iteration, I developed a streamlined workflow that allowed me to model levels in Maya and import them into Unreal Engine seamlessly. By leveraging custom tools I created, I could quickly adjust layouts, iterate on designs, and test gameplay mechanics in real time. This flexibility enabled me to refine the environment, ensuring it aligned with the intended atmosphere and improved player engagement throughout the development process.

Level Design

Desired Gameplay Experience

The desired gameplay experience for Dual Descent revolves around creating an immersive and tension-filled atmosphere that keeps players on the edge of their seats. I aimed to blend strategic character-switching mechanics with environmental puzzles, allowing players to feel a deep sense of connection to both characters while navigating the eerie suburban landscape. The gameplay is designed to evoke feelings of fear and urgency, as players must balance combat against relentless zombies and environmental challenges while solving intricate puzzles. By emphasizing resource management, particularly with the first character's overheating weapon, I wanted to instill a sense of urgency and careful planning. Additionally, the dynamic between the two characters encourages teamwork and strategic thinking, providing a rewarding experience as players learn to rely on each other's strengths to overcome obstacles. Ultimately, I aimed to create a gameplay experience that captivates players, drawing them into the narrative while delivering thrills and challenges throughout their journey.

In Dual Descent, all AI enemies are controlled through a Behavior Tree in Unreal Engine, coordinated with an AI Controller Blueprint Script to manage their actions efficiently. The regular zombie AI features two distinct states: Idle and Attacking. When zombies are in the Idle state, they roam passively or remain stationary until the player enters their detection range. The switch between these states occurs through a perception check system, where the zombie detects the player based on sight or sound. Once the player is detected, the AI seamlessly transitions to the Attacking state, relentlessly pursuing the player to create tension and pressure.

For the boss AI, the behavior is simplified to align with the epic, high-stakes battle. The Kraken boss operates primarily in a single Attacking state. During the fight, the AI uses a randomized system to switch between multiple attack patterns, such as sweep attacks, slam attacks, and tentacle frenzy. These attacks are interspersed with wait periods, giving players brief moments of reprieve to strategize and utilize environmental elements like exploding barrels. This simplified behavior ensures that the focus remains on creating a dramatic and memorable encounter without overwhelming the player with overly complex patterns.

This approach to AI design balances functionality and immersion, keeping the experience engaging while ensuring the behavior systems remain intuitive and effective during gameplay.

The AI and NPCs

image.png

Behaviour Tree for the Zombies

image.png

Behaviour Tree for the Kraken Boss

Post Playtest

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.

Gallery

Some of the footage and screen grab of the game. 

Get in Touch

818-747-5865

bottom of page