ROLE: GAMEPLAY PROGRAMMER
TEAM SIZE: 17
DURATION: SEPTEMBER 2025 - APRIL 2026
On this project I was tasked with creating a movement system that enabled diverse traversal through our world. This involved a dash and glide ability, speed boosts, and a boost system that controlled how speed influenced Revna. Each one of these mechanics was accompanied by documentation that was written for the team's designers. While these features were implemented into the project within the first two months, they underwent several iterations throughout the course of the project, which saw my abilities as a gameplay programmer grow.
My goal for this ability was for it to be responsive and consistent, with the same distance traveled whether the dash was activated in air or on the ground. This would give it use for traversal, as well as combat. This feature went through the most iterations out of anything else that I worked on.
Initially our playtests indicated that the dash felt floaty and inconsistent, with its usefulness decreasing the faster the player moved. I fixed this by storing the magnitude of the previous velocity before dashing, and reinstating it once the dash completed. I also converted the dash to be input based, rather than based on the direction Revna was moving. These two elements combined allowed for the magnitude of the pre-dash velocity to be applied in the direction of the dash.
The glide was meant to be used in tandem with the dash, to cross large gaps, rise above combat to set up devastating aerial attacks, and break up the movement sandbox. While implementing a natural feeling glide was simple at first, the challenge came from preventing players from boundary breaking by flying away without totally nullifying the fun of a gliding mechanic.
To solve this issue, I implemented a glide drop off feature. This was a timeline that gradually lerped the gravity scale and air control of the player to a more reasonable value. The designers could control how long it would take for the drop off to complete, a float curve that allowed for non-linear progression, and what values were desired at drop off completion (for example, halfway between gliding values and default in-air values).
The speed boosts were used to unlock the players maximum movement speed, allowing for engaging, fast-paced traversal. There were two types of speed boosts used in the game, a normal version that allowed Revna to run faster, and a directional version that launched her into whatever direction it was facing.
When picking up a speed boost, Revna’s max walk speed increased by an amount desired by the designers and would last for an easily adjustable duration. If the player managed to pick up another speed boost before the time was up, they’d get an extra boost and the timer would reset. This system allowed players to chain together dashes and glides to maintain high speeds (up to an adjustable cap). To sell this effect, and indicate to the player that they were boosting, I increased the field of view and moved the camera closer into Revna, based on how fast they could go.