Diana Calistru
A.R.D. Alien Removal Division
Alien Removal Division is a fast-paced, action packed first-person shooter, set in a military research facility during the 1950s. The base has been overrun by aliens and you find yourself as the only survivor at the center of the invasion.

Lead Programmer

26 people

Unreal Engine

Best Programming & Best Design
BUAS Awards 2022
About A.R.D.
Alien Removal Division is a fast-paced, action-packed first-person shooter, set in a military research facility during the 1950s. The base has been overrun by aliens and you find yourself as the only survivor at the center of the invasion. Your mission will be challenging, but you’ll have an array of weapons and movement abilities to help you deal with the infestation.
PARKOUR
Use your parkour skillset to wall-run, double jump, and dash while making your way through the infested military research facility. Improve your skills by combining the moveset with precision shooting in a specifically crafted Time Trial section to showcase your true mastery!
COMBAT
Engage in gory combat and discover the different ways to destroy your enemies. Use your movement skills to stay agile against the aliens as you fight back using an arsenal of high-powered weapons with devastating alternative fire modes, arming you to deal with the threats to come.
ALIENS
Fight against hordes of aliens as you make your way through the facility. You will encounter different types of enemies that vary from explosive slug-like creatures to highly mobile predators, each with their own unique behavior and fighting tactics.




Project Roles & Responsibilities

Lead Programmer
-
Creating High Level and Short Term Plannings.
-
Cooperating with the Lead Designer and Lead Artist to ensure productivity and good interdisciplinary communication and organization.
-
Establishing and managing the Perforce version control review process.
-
Agile Project Management through Atlassian Jira.

Gameplay Programmer
-
Research and implementation of the camera system in a first-person-shooter.
-
Collaborated with designers to develop the AI of enemies in a first-person-shooter.
-
Developed various UX features, including a dynamic crosshair system.
Lead Programmer
As the Lead Programmer, together with the Lead Designer, Lead Artist and Producer, we created the High Level Planning spanning the whole development year. We worked with an Agile workflow, so we also prepared the Jira Backlog before every Sprint Planning session. We reported to the project stakeholders every 2 weeks and represented the team at presentations and project updates. Multiple times I have been a feature team lead, ensuring good communication between people from different variations working on the same feature.
As the Lead of the Programming department, I adapted the daily structure of the enemy AI team to better suit their needs. I noticed the programmers working on the enemy AI had a hard time planning their tasks in the later stages of the development, as the main logic of the enemies was done, but there were a lot of bugs and a lot of uncertainty as to what tasks they will be working during the sprint. So I decided to stray away from the Scrum structure, and work with a daily cycle, using a Functionality Tracker instead of Jira.

Enemies Team Daily Structure created by me
Enemy Testing Gym Level created by me which tests the enemy behavior in different scenarios.


AI Programming
As a gameplay programmer, I worked on the implementation of one of the enemies in the game called The Shredder. I implemented the Behaviour Tree based on the feature breakdown written by the design team, I created the Blueprint logic for the different states of the enemy and worked on the Animation Blueprint to bring the alien to life.
It was important for the enemy logic to be structured into different ranges (close, mid and long range), as well as creating some variety in the individual enemies spawned, by making an aggressive variation to the original Shredder.
First Prototype
Iteration
Final State
Feature Breakdown & Behavior Tree


Camera System
Since the game is a first person shooter, the team spent a lot of time working on the shooting and the weapon feel. As part of the weapons feature team, I worked on a camera shake and recoil system. I did research into what options Unreal Engine 4 has available for implementing camera shakes and quickly noticed the default solutions were rigid and hard to work with.
Because I was working on the weapon feel together with animators and system designers, it was important to me to create a setup that is easy to use and highly visual. So, I made use of the Unreal Sequencer because it gives freedom in tweaking the camera shakes as curves and making changes per frame, similar to the software used to create the animations. I described how to use the system in our Weapon Systems Manual.
Video of 2 shotgun reload camera shakes done by one of the team's animators. He was able to quickly make iterations and showcase them because of the camera system I implemented.


Combat Manager
The combat encounters created by the designers of the team needed a coherent structure, so I was tasked with creating a combat manager. I created a tool using an Editor Utility Widget which includes an interface that the designers interact with to create and manage waves of enemies. The tool sets up enemy spawn points, and manages the combat states (start, end, wave logic).
​
There are 2 types of spawners: a selective one that can spawn one enemy at a time, and a continuous one that spawns enemies indefinitely until the enemies from the other spawners in a wave are dead. Waves advance based on points assigned to the spawned enemies. Through this point-based system, designers are able to create encounters where players aren’t required to kill all enemies in a wave in order to progress.
​
​
Video of how to set up a combat encounter within a level using the tool I created:
Presentation I created to onboard the team on how to use the combat wave manager:




Cinematics
Later in the production of the game, we decided to create several cinematics to introduce the main enemies of the game, onboard story elements and bring a polished feel to the experience. For that, I created a reusable blueprint for the designers and animators to make use of, containing the logic needed to play the level sequence, disable UI elements, make an array of actors hidden and anything else needed for the smooth transition between gameplay and cinematic.
I even created one of the cinematics myself, at the end of the onboarding section, introducing the time trial where you can master the high-mobility movement features.


Perforce & Shelving
At the beginning of the project, I created some rules for submitting work to Perforce, our version control system, as well as an Unreal Naming Conventions document.
After researching different possibilities of incorporating pre-commit reviews of people's work into our existing pipeline, I decided to use Perforce's shelving system. I made sure people understand the importance of such a system, learn how to shelve correctly and eventually be able to review other people's commits well.
Part of the shelving process was automized by using a Jenkins pipeline to create a review from the existing shelve and post a summary in the team's Discord server. There, people could react to signal they are reviewing the shelve and start threads discussing why a shelve is accepted or rejected.


