RAVENOUS

Design breakdown

Nimble Hunter

One of the earlier tasks I worked on for Ravenous was improving the default movement system to make it more fluid. Drawing inspiration from the fast-paced combat of The Witcher 3: Wild Hunt and the Soulsborne genre, I aimed to replicate that same responsiveness in our game. Implementing the dodge roll involved working with Animation Montages, BP Interfaces, and Animation Notifies, as well as leveraging community-standard Unreal Engine 4 resources. This work resulted in a more dynamic combat experience, providing players with much more effective and satisfying evasive maneuvers.

Failed Ambushed

Another goal of Ravenous was to convey to the player that time was progressing and the situation was escalating as they moved through the game. My specific role in achieving this was to integrate narrative beats directly into our combat encounters so that the story progressed in real-time. To achieve this, I modified the AI Detection and Perception systems to support scripted narrative triggers. For ambush scenarios and boss encounters, I developed a custom interface that allowed the Dialogue System to override the AI's default patrol states. Specifically, I scripted triggers that held enemies in a 'passive' state until the conclusion of a dialogue sequence, at which point the AI would instantly transition to an aggressive 'Attack' state. This work allowed us to craft moments of heightened tension and also allowed the player to catch their breath before moving on to the next challenge.

Skilled marksman

For the enemy AI in Ravenous, I aimed to move beyond basic movement and develop a combat-aware navigation system that could effectively challenge the player. To achieve this, I implemented a state-driven architecture using Behavior Trees and Blackboards. I created custom Blackboard Tasks in Blueprints to manage state transitions, allowing the AI to switch dynamically between 'Patrolling', 'Pursuit', and 'Attack' modes based on player proximity and sight lines. To ensure fair but challenging combat, I scripted a range-check system where the AI triggers specific attack animations once the player enters a defined 'threat radius.' I also integrated a Damage Interface that allows the AI to react to player projectiles, such as throwing knives. For ranged enemies, I specifically increased this radius to counter the high effectiveness of their attacks, providing the player with sufficient time to react and dodge incoming projectiles.

Close quarters

For the boss encounter in Ravenous, I needed to create a significant difficulty spike that felt fair but left little room for error. My goal was to leverage our existing AI architecture to build a more formidable opponent while introducing environmental pressure.

I repurposed our base melee AI class as a foundation to develop a specialized 'Boss' archetype. Unlike the standard enemies, I streamlined the boss's logic to focus exclusively on aggressive pursuit and attack behaviors. As previously mentioned, I used a custom interface to ensure the boss remained passive until the dialogue sequence concluded. To give the boss a sense of 'weight' and power, I worked closely with our character artists to sync my logic with slower, high-impact animations. I also collaborated with our level designer to build an enclosed arena that challenged the player's positioning and created a sense of urgency.

This collaboration resulted in a high-stakes 'skill check' that forced players to master the movement and evasion mechanics I had implemented earlier in development.