Intro

Hi there, it’s Yiğit and I’ll talk about my design process for Agent in Depth! Before we dive into the details, here’re some quick information about the game:

Cover Art - from Steam Page

Cover Art - from Steam Page

“Agent in Depth is a daring action-platformer featuring fast-paced action and instant-death combat. You’ll run, jump, aim, and deflect bullets with your katana to blow up your enemies. No checkpoints, no upgrades: just pure skills. Deflect, die, learn, repeat. Be better, be faster.”

Gameplay Screenshot 1 (from Steam Page)

Gameplay Screenshot 1 (from Steam Page)

Gameplay Screenshot 2 (from Steam Page)

Gameplay Screenshot 2 (from Steam Page)

Agent in Depth Release Trailer!

Agent in Depth Release Trailer!

1. Second-To-Second Design

3C (Character, Control, Camera) Design

Character

When considering the fast-paced nature of the game, I had to create a character that feels good when performing basic actions like moving, jumping, and deflecting bullets. My goal was to ensure that players have total control of their characters and can finish each challenging room without feeling any unfairness. After analyzing Katana ZERO, which was my inspiration, I realized that the character should feel snappy and responsive.

So, I developed a movement system based on changing the character’s location in the game world. It was snappy and responsive because the character moved by directly reacting to the player’s input without being affected by external forces.

However, a problem occurred once we introduced "Knockback Bullets" into the mix. These bullets are fired by specific turrets needed to give players knockback when deflected. But since my character was moving based on translation and didn't have a Rigidbody, I had to add one to allow the character to receive knockback force. This was important because I wanted players to use this mechanic to reach high speeds, encouraging speedrunning. However, adding a Rigidbody caused another problem: knockback force was completely ignored and caused many bugs when the player wanted to move their character during knockback time.

To fix this, I implemented a character controller system that enables snappy controls while also reacting with physical objects. I changed the main movement by directly manipulating the velocity with player input without applying any friction and preventing any kind of movement drag. When knockback force is applied, I store the previous velocity and calculate a new target velocity based on the applied force.

Here’s me testing the character controls on Unity Editor. (Red Line: Input Vector, Green Line: Aim Vector, Red Area: Hit Area, Blue Area: Ground Detection)

Here’s me testing the character controls on Unity Editor. (Red Line: Input Vector, Green Line: Aim Vector, Red Area: Hit Area, Blue Area: Ground Detection)

Control

In studying similar games like Hotline Miami and Katana ZERO, I realized that controls needed to be snappy and responsive. When players want to move, they should be able to do so immediately. The same goes for stopping, jumping, attacking, or aiming. To achieve this, I read the raw input values from the player and made changes accordingly. This allowed everything in the game to react instantly to player input, resulting in a more fluid and intuitive control scheme.

Camera