Home
Team: 4 programmers, 5 designers & 5 artists.
Project period: 2022, for an 8-week period.
My role: AI/Gameplay Programmer.
My contribution:
  • AI Behaviour
  • Skill shot transfer mechanic
  • Assisting development wherever I could
The Game

The game is a 2.5D shooter where you can transfer to an enemy’s body. Switch to other bodies to take advantage of the enemies’ weaknesses and stay healthy.

The game can be found on Itch.io through this link.

AI Behaviour
  • Learning how to use Unreal engine and its behaviour trees
  • Implementing all of the AI behaviour
    • Position a set distance from the target
    • Position in line of sight of the target
    • Burst fire at the target
    • Intended friendly fire
Summary:
My main task was implementing the behaviour as designed. Since this was the first time for me using Unreal, behaviour trees, and EQS (environmental query system), a lot of time went into learning all these systems. I gave and got feedback from my designer along the way, using that feedback to iterate on the AI. The desired behaviour was to get an AI that would strafe around the player, stand still, and then shoot a bursts of projectiles while giving the player enough time to react and dodge. This was done using EQS for getting the exact location to walk to based on distance, line of sight and other environmental aspects, favouring locations further away from other AI actors to avoid them bunching up too much. The AI always shoot after moving and can hit other enemies. This was intentional behaviour the player could abuse.

The AI in action, positioning and shooting at the player and sometimes hitting each other

Transfer Mechanic
  • Transfer body on hit
  • Semi homing projectile
    • Using unreal engine's projectile component
    • Give control of original body to AI
    • Take control of AI's body
    • Stuns original body, while stunned still a target for enemies
Summary:
After some back and forward over a few iterations, what we wanted came down to a semi homing projectile. This would be easy enough to pull off using a controller while still being fun to use. While developing the mechanic I periodically asked for feedback to encourage constant iteration where needed. To create the semi homing bullet, I used Unreal's built-in projectile system, using its parameters to make a bullet that would be attracted to the target the player aimed at. The potential for overshooting made for a fun dynamic where you might overshoot and swap to the wrong target. After swapping bodies the AI stayed focused on the old body while it was stunned.

Showcase of the homing projectile used to transfer bodies