Producer | Academic | Tech Designer
BOT ARENA
[AI TECH DEMO] N/A
Unreal Engine | C++
Description
As an attempt at a project that's AI-Based, I wanted to create a team-based shooter game, played only by the AI versus the AI. The core technologies used here are EQS (Environment Query System), BTs (Behavior Trees) and pure C++ for the logic of each bot.
The rules of the game are simple. Each team has a number of bots. When all bots of any team reach zero, the other team wins!
Each bot can have a certain Skillset (determines Aim, Damage, Speed, Evasiveness, Criticals, Headshots), a certain Personality (Strategist vs Brute Force, Fearless Fighter or Scaredy Cat) as well as a specific role among 4 Roles (Warriors, Tacticians, Guards and Berserkers).
Each bot depending on his personality may choose enemies based on different criteria (Distance vs Health), and has a different chance of fearing death. Some roles are immune to death. Others fear when being hurt while others when targeted by more than 2 enemies.
Warriors roam the arena freely and when they encounter an enemy based on their personality they filter out who is the most threatening enemy and they start shooting.
Tacticians support all other roles, by engaging in combat only when their teammates are under fire.
Guards don't move at all, and stay put at a predefined spot, and shoot enemies on sight.
Berserkers have no fear of death, and charge in battle targeting a random prioritized enemy and chase them until any of the two die (the target or the berserker).
Last but not least, a morale system is in place, which if enabled, grants bonuses to the team with the higher morale and negative buffs to the team with the lowest morale. Morale is calculated based on team performance (Kills, Headshots, Successful Shots). Morale is always shifting towards the Red or the Blue Team.
Contribution
Solo Developer: Gameplay, UI, Animation, Audio, AI, Game Design
-
Dynamic Skill & Personality Distribution on each session.
-
Morale System
-
When Red Team Gains Morale, the Blue Team Loses as much Morale.
-
Morale is used as a bonus to calculate Speed, Aim and bonus Damage.
-
-
4 Unique Roles using BTs:
-
The Warrior - Wandering Steering Behavior and Shooting Enemies on Sight.
-
The Tactician - Pure Support-Only unit with emphasis on cover fire.
-
The Guard - Stationary unit shooting other bots on sight.
-
The Berserker - Fearless Warrior who charges into battlefield at random enemies and hunts them down.
-
-
Dynamic Targeting System (Aggro) based on Personality and Role.
-
Fear System - When each unit is taking damage or is being targeted by many, a chance is applied for being feared.
-
Dynamic Pathfinding using EQS Systems
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |