Project Rewrite Main

My Role

During this project I have managed to refind my love for AI programming and it has started my career as an AI programmer. For this project, I implemented all the AI logic from the ground up.

  • Monster player tracking and time travelling
  • Monster Attacking Behaviours
  • Monster Pathfinding
  • Throwing Mechanic of the player
  • The Claymore behaviour
  • The Medkit Behaviour
  • Player Inventory System
  • UI flow


Progress Shots

My Experiences

Project Rewrite 1

Basic AI

The first thing for me to do was to implement the basic AI logic like spawning, moving, and seeing.
To implement this I used Unreal Engine 5s built in AI & Navmesh system. I also made a simple behavior tree with the essential tasks in C++.

Project Rewrite 2

Movement

After implementing the monster's basic AI, I had to implement some of it's movement behaviors, this being: 'chasing, wandering and patrolling'.
When the monster sees the player, he will chase them.
When the monster loses sight of the player, he will start wandering in the direction the player was.
If the monster has no sight of the player, he will walk on set patrol points.

Project Rewrite 3

Monster Abilities

After the monster could move, it was time to implement his basic abilties, attacking and screaming.
When the monster comes close enough to the player he will stop moving and attack. After that it will do a small scream, allowing the player to escape.
When the monster is chasing the player and the player managed to hide in a locker, the monster will also do a scream at the locker.

Project Rewrite 4

Teleporting

The monster his most complex abilty is time travel. The monster would only time travel on 2 occasions, when he sees the player time travel or when his spectral form comes into contact with the player.
In order for the monster to time travel, there had to be 2 Navmeshes in the level, one in the past and one in the present. When the monster time travels, he swaps position with the spectral monster, causing him to also change navmesh.