

Responsibilities
Developed an ability system supporting dynamic casting with player integration
Designed and implemented 20+ unique player abilities
Engineered a debug interface to accelerate development and streamline troubleshooting by allowing users to spawn enemies, switch levels, remove enemies, automatically finish objectives, and give the player abilities
Details
Team Size: 17
Role: Gameplay Programmer / Accessibility Lead
Engine: Unity
Ability System
Given our game being a rogue-lite, I had a lot on my plate as a Gameplay Programmer. We set out with quite a lofty goal, the player would have 6 separate types of slots that abilities could go in. Each ability for each slot would also have at least 1 ability from 7 different deities.
A weapon slot that effected how the player dealt damage
A movement slot that effected the players mobility
A special slot for attack abilities that are heavily themed with their respective deity
A support slot for abilities that gives the player a boost or lessens incoming damage
An ultimate slot for powerful abilities that dealt deadly damage over a large area
A passive slot that alters the player's playstyle by granting certain effects
This meant a LOT of background systems to support this. I was the one who created the dynamic ability system that allowed for these different abilities to be granted to the player during gameplay. I also connected it to the player's systems to ensure no hard coded connections to each ability. Other programmers could easily create a new ability and plug it into the system!
Status Effects
Some of the weapon cards could also add status effects to enemies. For this functionality I created a status effect system where effects could be easily added to enemies. These status effects also sometimes interplayed with player passive abilities. When a player had the Radiant Revenge passive card equipped and took damage from an enemy that enemy had a chance to take damage and receive the Sunburned status effect. That is just one example of many!
Accessibility
As Accessibility Lead for Relict I was responsible in creating documentation involving accessibility for our game. I was also in charge of making sure that these requirements were met in all disciplines. This involved in meeting with department leads and keep them up to date with any accessibility needs.
Reflection
Working on Relict was an absolute pleasure. Even as an undergrad project it turned out very well. Our team worked diligently to make sure it was as high quality as we could make it. We chucked as much content as we could into it! I am incredibly proud of the team. I learned a lot about working in larger teams during my time here.