top of page

Combat & AI

Auto Sentry & Enemy AI

In this project, I developed an AI-driven friendly sentry and enemies with a strong emphasis on modularity and reusability by using a shared combat component for both the turret and enemy AI to handle target detection, evaluation, and prioritization.

Shared Target Picking Logic

The component finds and assigns the best target to the owner's blackboard, which the behavior tree references to determine who to attack or move towards.

The target is chosen based on
line-of-sight checks to ignore obstructed enemies and updates each time 
an enemy target enters or leaves the range, as well as adjustable periodic refresh to maintain accurate prioritization in dynamic scenarios.

Additional role-specific behaviors are layered on top of the shared system, such as enemies defaulting to the player when no valid targets are available, ensuring continuous engagement.

Duck
Duck
Duck
Duck
zoom-in-512.png

Sentry Behavior Tree 

Duck
zoom-in-512.png

Enemy Behavior Tree 

There are also some usefull debug logic which can be enabled/disabled easily. Once enabled, the target range will be visible and the owner of the combat component will display a message when the it has a target, and print on the target for easy debug tracking of logic during gameplay.

The sentry behavior tree is focused on fetching the current target from the combat component,
rotating and firing at it. There are no need for extra checks here as the target fetched could only be a valid target with clear line of sight.

While the enemy behavior tree revolves around
moving towards the the current target, rotating and attacking if it reaches the minimum distance required.

Sword & Shield Combat Demo

In this prototype I created a short game featuring a first person sword and shield combat with emphasis on creating a short but polished experience.

Each player action (each swing animation, sheathing etc) has it's own fine tuned subtle camera shakes to enhance impact and weight. Both the player and enemies use randomized attack animations, but trigger corresponding hit reactions on the receiving end for consistent visual feedback.

I tweaked the player movement, camera, and controls for fluid and readable combat. I balanced enemy spacing and approach speed to give players room to react without breaking the pace of combat, keeping encounters challenging and cinematic.

1740477737873.gif
1740477746692.gif
1740477742292.gif
Behavior Tree
zoom-in-512.png

 AI Behavior 

The AI detects the player, moves toward them, and attacks when in range. While effective, this approach is quite could be expanded with more dynamic behaviors such as evasive maneuvers in the future.

Boss Battle Prototype

In this prototype, I worked on various attack types and patterns for a boss fight featuring a massive enemy. Additionally, I also worked on the player abilities, like dashing, slow motion and weak spots to shoot.

I made a simple system which triggered different animations on the enemy blueprint, resulting in different types of attacks, combos and environmental changes. Then I edited and created different values to balance the experience as my team and I gathered feedback from playtest sessions.

Many thanks to Mukund Narayan for implementing the bow mechanic and dynamic level changes. Also, a big shoutout to Viktor Ganzha and Erik Löfving for their work on creating two distinct levels and Fredrik Nilsson for sound design!

Untitleddesign-ezgif.com-optimize.gif
Untitled design.gif
Untitleddesign-ezgif.com-optimize.gif

Wizard Arena

In this prototype, the player is thrust into an epic 2v2 underground wizard battle arena, where they face off against an AI enemy team alongside their AI teammate. There is one small problem though, the player's character haven't mastered any attacking spells yet, so they must rely solely on deflecting incoming attacks to emerge victorious.

Untitleddesign-ezgif.com-optimize.gif

 Gameplay 

© 2025 by Yankı Savgat

174857_edited_edited.png
bottom of page