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.
AI Behaviour
Learning how to use Unreal engineand its behaviour treesImplementingall of theAI behaviourPosition a set distance from the targetPosition in line of sightof the targetBurst fire at the targetIntended friendly fire
Summary:
My main task was implementing the behaviour as designed. Since
this was the first timefor me
using Unreal, behaviour trees, and EQS(environmental query system),
a lot of time went into learningall these systems.
I gave and got feedback from my designer along the way,
using that feedback to iterate on the AI.
The desired behaviour wasto get an
AI that would strafe around the player, stand still,
and then shoot a bursts of projectileswhile
giving the player enough time to react and dodge.
This was done using EQSfor 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 bodyon hitSemi homing projectileUsingunreal engine'sprojectile componentGive control of original body to AITake control of AI's bodyStuns 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 iterationwhere 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 targetthe 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 bodywhile it was stunned.
Showcase of the homing projectileused to transfer bodies