Home Skills Projects Resume Contact
AI Combat Development

Blood and Sand

From Concept to Combat: Building Intelligent AI Enemies

3 Enemy Archetypes
15+ AI Behaviors
3.5km Combat Arena
60+ FPS Performance

Combat System in Action

This demo showcases the Berserker's relentless aggression, the Warrior's tactical defense, and the Cleric's supportive healing behaviors all working in harmony to create challenging combat encounters.

My Development Journey

Creating Blood and Sand's AI combat system was about solving a core challenge: How do you make AI enemies that feel intelligent, varied, and fun to fight? My approach focused on giving each enemy archetype a distinct personality through their combat behaviors, creating a rock-paper-scissors dynamic that keeps players engaged.

My Core Design Philosophy

Distinct Personalities

Each enemy needed to feel like a different opponent, not just a stat variation

Tactical Variety

Players should need different strategies for each enemy type

Group Dynamics

Enemies should complement each other when fighting together

Emotional Impact

Combat should feel visceral, strategic, and rewarding

Designing the Enemy Archetypes

Each enemy type was designed to solve a specific gameplay problem and create unique tactical challenges

The Berserker

Relentless Aggressor

Design Challenge

Create constant pressure that forces players to stay mobile and think quickly under stress.

My Solution

  • No Shield: Pure offense - vulnerable but dangerous
  • Constant Aggression: Never stops attacking once engaged
  • High Damage Output: Punishes players who get caught
  • Predictable Pattern: Readable but relentless

"The Berserker teaches players to maintain distance and timing"

The Warrior

Tactical Defender

Design Challenge

Create a methodical opponent that rewards patient, strategic play over button mashing.

My Solution

  • Guard Stance: Blocks incoming attacks strategically
  • Random Attack Windows: Unpredictable openings to exploit
  • Counter-Attack Focus: Punishes reckless aggression
  • Defensive Positioning: Controls space effectively

"The Warrior forces players to learn patience and timing"

The Cleric

Support Healer

Design Challenge

Add a priority target that changes the entire flow of multi-enemy encounters.

My Solution

  • Evasive Behavior: Runs from direct confrontation
  • Smart Healing: Only heals damaged allies (<100% HP)
  • Positioning AI: Stays behind other enemies for protection
  • Threat Assessment: Prioritizes healing the most damaged ally

"The Cleric creates tactical depth in group encounters"

Technical Implementation Deep Dive

Building Intelligent Behavior Trees

My approach to AI behavior was to create modular, readable behavior trees that designers could easily modify and expand.

Key Design Decisions:

  • Hierarchical Structure: Each enemy has a master behavior tree with specialized sub-trees for combat, movement, and decision-making
  • State-Based Logic: Clear separation between idle, combat, and special ability states
  • Priority Systems: Higher-priority behaviors can interrupt lower-priority ones (healing trumps attacking for Clerics)
  • Contextual Awareness: AI considers player position, ally health, and environmental factors

Berserker Behavior Tree Logic

Simple but effective: Can See Player? → Chase → Attack → Repeat

The beauty is in the relentlessness - no complex decision making, just pure aggression.

Main Behavior Tree

Master Behavior Tree

Combat Sub-tree

Combat Sub-tree

Movement Sub-tree

Movement Sub-tree

Scalable AI Architecture

Building a system that could handle multiple intelligent enemies required careful architectural planning.

My Architectural Approach:

  • Component-Based Design: Separate components for perception, decision-making, and action execution
  • Shared Knowledge System: Enemies can communicate threats and coordinate behaviors
  • Modular Abilities: Easy to add new attacks, movements, and special abilities
  • Data-Driven Configuration: Designers can tweak AI parameters without code changes

AI System Architecture

AI Controller

├── Perception Component

├── Behavior Tree Component

├── Combat Component

└── Movement Component

Group AI Coordination

Clerics communicate with other enemies to determine healing priorities, while Warriors can call for backup when overwhelmed.

Behavior Tree Architecture

Advanced Behavior Tree

Decision Making Sub-tree

Decision Making Sub-tree

Performance Optimization & Polish

Smart AI means nothing if the game doesn't run smoothly. My focus was on maintaining 60+ FPS even with complex AI calculations.

Optimization Strategies:

  • LOD System for AI: Distant enemies use simplified behavior trees
  • Perception Optimization: Staggered sight checks to spread CPU load across frames
  • Smart Update Rates: Non-combat AI updates less frequently
  • Memory Pooling: Reuse objects for projectiles and temporary effects
60+
FPS Maintained
20+
Concurrent AI

The Polish Phase

Fine-tuning AI timing, attack telegraphs, and visual feedback to make combat feel responsive and fair. Players needed to feel like victories and defeats were earned.

Combat Flow & Feel

Combat Polish 1 Combat Polish 2

Before and after polish passes - notice the improved visual clarity and spacing

Creating the Right Combat Feel

Beyond the technical implementation, I wanted to create a specific feeling when players experienced combat. Every decision was made to support this emotional goal.

Visceral Impact

Every hit needed to feel weighty and consequential. AI timing and player feedback were tuned to create that satisfying "crunch" when attacks connect.

Strategic Depth

Players should feel smart when they figure out the optimal approach for each enemy combination. The "aha!" moment when they realize they need to target the Cleric first.

Mounting Tension

Combat encounters build intensity naturally. Starting with single enemies, escalating to coordinated group attacks that test everything the player has learned.

Earned Victory

When players win, they should feel like they outplayed intelligent opponents, not just executed the right button sequence. AI behaviors reward skill and punish mistakes fairly.

Epic Combat Moment

"The moment when everything clicks"

Player facing multiple enemy types, using terrain and tactics to overcome the challenge

Key Development Insights

01

Simple Can Be Sophisticated

The Berserker's straightforward aggression was more effective than complex behaviors. Sometimes the best AI is the most readable AI.

02

Player Psychology Matters

AI behavior timing had to account for human reaction time and decision-making patterns. Frame-perfect AI isn't fun AI.

03

Group Dynamics Change Everything

Individual enemy behaviors that worked perfectly solo needed adjustment when fighting in groups. The whole is different than the sum of its parts.

04

Performance Is Part of Design

Optimization wasn't an afterthought—it was integrated into the design process. Smooth performance enhances the feeling of responsive, intelligent AI.

Technology & Tools

Core Development

Unreal Engine 5
C++
Blueprint Visual Scripting

AI Systems

Behavior Trees
AI Perception
Navigation Mesh
State Machines

Development Pipeline

Perforce Version Control
Custom Profiling Tools
Debug Visualization

Want to Discuss AI Combat Design?

I'd love to talk about the specific challenges, architectural decisions, and lessons learned from building this AI combat system. Every project teaches something new about creating engaging, intelligent opponents.