ADITYA SINHASOFTWARE ENGINEER & TECHNICAL DESIGNER
← All projects
DESIGN + ENGINEERING

Crimson Knight

ROLEProgramming Lead · Gameplay and AI Designer

TEAM18 person team

DATEDec 2024 – Aug 2025

GENRESouls-like Action RPG

GAME SUMMARY

Crimson Knight is a Souls-like action RPG built in Unreal Engine 5, featuring deep melee combat, emergent enemy behavior, and a scalable AI pipeline.

THE DESIGN QUESTION

How do you make a boss learn without making the player feel cheated?

I designed The Absolute to recognize repeated habits, then used readable telegraphs, counterplay windows, and playtests to make that adaptation understandable and beatable.

WHAT I OWNED
  • I led five engineers within an 18 person team, connecting gameplay design, implementation, and production.
  • I owned The Absolute’s Phase 1 and 2 loop: move selection, telegraphs, counterplay, pacing, and playtest iteration.
  • I built the technical design framework with State Trees, GAS, motion warping, and an n-gram prediction model.
Crimson Knight game trailer. Watch on YouTube ↗
Phase 1 fight prototype of the Crimson Knight versus The Absolute. Watch on YouTube ↗
Playtest reach

About 100 players across two sessions

Phase 1 success

About 10% → about 35%

Average phase time

About 140s → under 2 minutes

BOSS AI & COMBAT CASE STUDY

Adaptive combat.
Fair to learn.

For The Absolute’s Phase 1 and 2 encounter, I paired a modular State Tree with prediction and repeated playtesting. The goal was to challenge habits without creating a boss that felt omniscient.

PRIMARY BOSS STATE TREE

One clear loop, many possible moves.

Every move returns to Root: clear the previous state, read the current context, choose a response, execute it, and evaluate again.

  1. 01
    Cleanup

    Reset movement, rotation, and gravity so each decision begins from a reliable state.

  2. 02
    Evaluator

    Read the predicted next move from the n-gram model. I tested n=2 and n=3, then chose n=3 because using the player’s previous two actions made the response feel more intentional while still leaving room to learn and react.

  3. 03
    Distance and resource tests

    Gate the move pool by range, player health, stamina, and sword charges. Sword charges are the player’s primary way to heal, or they can be spent for additional damage, so reacting to them changes the risk of the next exchange.

  4. 04
    Ability Selector

    Choose one scoped move, execute it, then return to Root. Short- and long range pools keep the available responses relevant to the current spacing.

WHY THE STRUCTURE SCALES

Add the rule, add the move, reuse the loop.

To introduce a new attack, we add its distance or context rule, place the ability in the selector, and let the shared flow handle cleanup, evaluation, execution, and the return to Root. That made the encounter highly modular and easy to extend without rebuilding the decision logic around every move.

Primary Unreal Engine State Tree for The Absolute showing cleanup, evaluation, distance tests, and ability selection
Phase 1 and 2 decision pipeline. Cleanup → evaluation → context tests → ability selection → Root.
Short- and long range State Tree branches showing The Absolute's available combat moves
Distance and resource tests shape the move pool. Range, player health, stamina, and sword charges narrow the available responses before the selector chooses the next move.
DESIGN ITERATION

Problem → decision → player impact

Each change had a clear job: make the boss easier to read, more strategically meaningful, or fairer to learn without removing the pressure.

01 / READABILITY

Turn a threat into a learnable cue.

Problem

The Absolute’s projectile was difficult to read and dodge.

Decision

With limited animation coverage, I slowed the opening, smoothly restored its speed, and added a windup sound that players could learn.

Player impact

Players recognized the dodge window and found several successful evasion routes. The cue taught a response instead of simply lowering the challenge.

02 / COUNTERPLAY

Make adaptation visible.

Problem

Players could not tell when the n-gram system was countering a repeated move, so they could not learn from the mistake.

Decision

I moved prediction from n=2 to n=3, so The Absolute needed a longer pattern of player moves before countering. I paired that change with eye and spear VFX whenever a counter began, plus a brief ignite effect if it connected.

Player impact

Dodge spam could trigger a fiery stab toward the predicted dodge location. Repeated attacks could make her evade, deny damage, and reengage. Players could finally connect cause and effect.

Predictive AI. The Absolute recognizes a repeating attack pattern and begins to dodge or back away before the next strike.

03 / FAIRNESS

Let a smart boss breathe.

Problem

Early versions countered too many player behaviors, making Phase 1 feel relentless rather than intelligent.

Decision

With no tell animations available, I lengthened windups by 10% using cuts, slowed parts of existing attacks, extended recovery windows by 15%, and moved prediction from n=2 to n=3. Together, those changes gave players more time to react while preserving a boss who could learn their habits.

~10%→~35%Phase 1 success rate after all three pacing changes
Playtest result

Across two playtests with about 100 players, I tracked time to kill, heals and buffs used, and damage in recovery windows. The windup, recovery, and prediction changes raised Phase 1 success from about 10% to 35% and cut average phase time from about 140 seconds to under 2 minutes without losing the fight’s challenge.

SUPPORTING SYSTEMS & LEADERSHIP

Technical design that moved with the team.

The encounter worked because the decision logic, combat abilities, animation, and production plan were built to change together.

AI ARCHITECTURE

Reusable behavior.

I built State Tree flows for patrol, engagement, stun recovery, and evasion, then connected the prediction model to counter selection.

GAMEPLAY ABILITY SYSTEM

Make every charge a choice.

I designed sword charges as a meaningful choice between healing and extra damage, built the player’s moves and upgrades on a modular Abilities and Effects pipeline, then raised the damage boost about 15% and reduced healing about 5% after playtests showed players undervalued damage.

TEAM LEADERSHIP

Design into production.

I scoped sprints, assigned work, reviewed code, and translated combat and level design needs into systems the team could build and tune.