top of page
Undead Onslaught Combat Design
In this breakdown, I will be showing how I designed as a modular, scalable wave-based AI framework for Unreal Engine, built entirely using Blueprints. The goal was to create a responsive and engaging Horde Mode where enemies spawn in waves, track the player using Behavior Trees, and escalate in difficulty over time.
Role
Lead Developer
team size
1 person
development time
on-going
Game Engine
Unity
Genre
First Person Shooter
Technologies used

Unreal Engine 5

C#

GIT

Photoshop

Trello
Combat Design Overview
​This demonstration showcases the AI system’s core features in a live gameplay environment, highlighting how AI characters seamlessly transition between states, adapt their combat behavior in real-time, and react dynamically to player actions. From idling and pursuing the player to engaging in complex boss encounters with health-based phase transitions, These clip illustrates the depth and flexibility of the AI system I designed and implemented.
Dynamic Wave Spawning
This Blueprint showcases a modular stun and poise system designed for enemy characters in Unreal Engine. When the enemy receives a valid hit, the system accumulates poise damage over time, evaluating whether it exceeds a threshold that would trigger a stun. Once stunned, the enemy enters a vulnerable state, halting its behavior and enabling the player to perform a critical hit or riposte. The Blueprint manages poise decay, ensuring the value resets gradually if the enemy is not being hit. This layered approach allows for dynamic and rewarding combat mechanics that reinforce skill-based gameplay, while remaining performance-efficient and scalable across multiple enemy types.
AI Combat
This handles the logic for an AI enemy melee attack. It begins by validating the AI reference using Get BP Enemy AI and an IsValid node to ensure the script proceeds only if the AI is active. It then checks if the player is within attack range using a line or sphere trace based on the AI's mesh socket location. If the trace confirms a valid target, the system selects a random integer between 0 and 2 to determine which of several predefined attack animations to execute. A Switch on Int node branches the logic accordingly, leading to one of two nearly identical attack sequences. Each path retrieves the AI mesh and socket location, plays the chosen attack montage using Play Montage, and includes a delay to sync the behavior with the animation. The script also sets a boolean to indicate the AI is currently attacking and ends the behavior with a Finish Execute node, likely used in a Behavior Tree. This setup adds variation to the AI's combat behavior while maintaining clear structure and animation timing.
Weapon design
The weapon design focuses on creating responsive, satisfying, and strategically diverse firearms that support the game's escalating wave-based combat. Each weapon is carefully balanced to serve a distinct role, from reliable early-game sidearms to high-impact automatic rifles. I designed the system to be data-driven, allowing for quick iteration, modular upgrades, and consistent performance tuning across the entire arsenal.

Combat Loop Breakdown
Combat Loop (Moment-to-Moment)
The core gameplay loop is structured around four key phases: Engage, Earn, Spend, and Survive each designed to keep the player in a state of constant tactical decision-making and action.
Engage
Players are regularly confronted with waves of increasingly challenging zombie enemies. Encounters are designed to escalate both in intensity and variety, requiring players to actively engage with ranged firearms and melee attacks to dispatch threats. The combat design emphasizes constant movement, situational awareness, and positioning to avoid being overwhelmed or flanked.
Earn
Eliminating enemies rewards players with a universal in-game currency, Points, which serve as the primary progression mechanic. Points incentivize aggressive yet efficient play and form the foundation of player advancement and survival.
Spend
Players use Points to make meaningful progression decisions, such as purchasing new weapons through wall-buys or the Mystery Box, unlocking previously inaccessible areas of the map, acquiring gameplay-enhancing perks, or upgrading existing weapons via the Upgrade Machine. These spending choices directly impact a player's combat effectiveness and map control.
Survive
The increasing enemy threat and limited player resources force constant adaptation. Survival is dependent on mastering key skills such as optimal positioning, effective map traversal, and precise timing—whether for reloading, executing crowd control maneuvers, or initiating escape routes. Players must stay ahead of the difficulty curve to avoid being overwhelmed.
Player Strategy Layer (Mid-Loop)
Beyond the immediate action, the game incorporates a mid-loop strategy layer that rewards planning, experimentation, and mastery over time.
​Training / Kiting:
Players can employ advanced crowd control tactics, such as “training” zombies—leading enemies in loops to group them before executing efficient kill sequences. This not only reduces risk but maximizes point generation and resource conservation.
Map Progression:
Exploring and unlocking new areas introduces access to higher-tier weapons, perk machines, and strategic choke points. Map design encourages exploration while also offering players multiple options for traversal and defense.
Loadout Optimization:
Players are encouraged to develop a personalized combat identity by assembling a tailored loadout of weapons, perks, and equipment. This customization supports various playstyles—from high-mobility gunplay to defensive zoning allowing players to adapt their strategy as difficulty scales.
Player Mechanics (Combat-Focused)
Movement Mechanics
Sprint
-
Guns with varying stats (fire rate, damage, ammo, etc.); include pistols, SMGs, ARs, etc.
Jump
-
Helps in movement over obstacles or quick repositioning
Strafe & Circle Strafing
-
Core to “training” zombie hordes—used for crowd control and survival.
Weapon & Equipment Use
Primary & Secondary Weapons
-
Increases movement speed temporarily; essential for dodging and repositioning.
Melee Attack
-
Default knife or specialized melee weapons; one-hit kill early on, useful for point-maximization.
Upgrade Machine (Weapon Upgrade)
-
Increases weapon stats
Weapon Design
To manage weapon stats across all firearms in Undead Onslaught, I implemented a scalable Data Table-driven weapon system in Unreal Engine 5. This allowed me to rapidly iterate on balancing and easily add or modify weapons without hardcoding values.

As an example of the system in action, the pistol (Row 1 in the data table) is configured as a single-fire sidearm intended for early-wave reliability and precision. It features moderate recoil values (RecoilAmount = 1.0, RecoilYaw = 0.3), a relatively slow fire rate (0.1), and a 12-round magazine with 72 rounds in reserve. Its high bullet speed (400) and narrow aim-down-sights FOV (80) are tailored for accuracy under pressure. This weapon is designed to reward careful shot placement during the initial waves of combat. The overall system was built with scalability in mind—its data-driven structure allows for fast and intuitive balance tuning, clear visibility into individual weapon profiles, and easy integration of upgrade logic, such as increasing fire rate, improving reload speed, or expanding ammo capacity. By centralizing weapon data in a table, I streamlined the iteration process and ensured that new weapons or combat scenarios could be developed and balanced efficiently, supporting long-term content growth.

Balancing and Tuning
Balancing and tuning were critical to delivering a combat experience that feels both fair and rewarding, while supporting diverse player strategies. To streamline this process, I implemented a scalable, Data Table-driven weapon system allowed for rapid iteration and consistent tuning of weapon stats without the need to hardcode individual values, greatly improving maintainability and scalability during development.
Each weapon entry—such as the pistol shown in the editor—includes detailed configuration fields covering fire type, recoil behavior, firing rate, ammo capacity, bullet speed, and aim-down-sights (ADS) properties. For example, this pistol is configured as a single-shot sidearm with moderate recoil (RecoilAmount = 1.0, RecoilYaw = 0.3) and a relatively slow fire rate (0.1). It fires high-speed projectiles (BulletSpeed = 400) with a tight ADS field of view (ADS_FOV = 80), emphasizing accuracy under pressure. These stats are tuned to support early-game reliability while encouraging careful shot placement and resource conservation.

The structured nature of the Data Table also enables rapid comparison between weapon profiles, streamlining the process of balancing across weapon tiers. This ensures that each firearm fills a distinct combat role and contributes meaningfully to player progression. Furthermore, the system supports scalability for long-term content development, making it easy to integrate new weapons, upgrade paths, and gameplay modifiers without increasing system complexity.
This Blueprint showcases a complex ranged weapon firing system developed in Unreal Engine 5, incorporating animation syncing, projectile spawning, and conditional logic to handle firing input and cooldowns. The system starts by verifying whether the player can shoot, checking ammo counts, and playing a corresponding animation montage for visual feedback. It then performs several logical checks—including cooldown gating and firing conditions—before spawning the projectile actor in the world with precise orientation and positioning using the character’s weapon socket.
To ensure responsive and immersive gameplay, the Blueprint also includes line trace logic for hit detection and applies damage to valid targets via Unreal’s damage interface. Additionally, the system is tightly integrated with a custom cooldown timer and camera effects to simulate recoil, enhancing the player’s tactile experience. This implementation demonstrates my ability to build performant and feature-rich combat systems using Unreal Engine's Blueprint Visual Scripting system, while also ensuring scalability for future weapon variations.
bottom of page