Parkour System
ROLE
Independent
DESCRIPTION
This idea was strongly inspired from Titanfall's movement system. I managed to implement a variety of parkour systems and make them work together to feel seamless for the player.
This was done over the course of a week between assignments. The mechanics I implemented are sprinting, wallrunning, vertical wallrunning, ledge grabs, mantling/quick mantling and jumping backwards off ledges.
The video below shows a small course I set up to introduce these skills.
YEAR
2022
GENRE
Parkour
PLATFORM
PC
SETUP & DESIGN
In my first year of university, my big project for the year (Containment Squadron) had a parkour system implemented into it, and although I was fairly happy with it at the time, there were a lot of ways I could improve on it. The player was simply stuck to the wall, and moved. There was nothing momentum-based about it whatsoever. You could force the player to sit still, and they would simply sit on the wall. A year later, I decided to revisit this concept, improve on it, and work off of that.
I started off by taking another look at Titanfall 2, and really dissecting how the movement felt and played, and how I would be able to have all of these systems work together so seamlessly. I eventually decided I would create an enumerator to decide on what movement the player was trying to make, and opening/closing certain 'gates' to make sure the player could not accidentally wall run instead of grab a ledge, etc. This enumerator began with just wall running, but overtime it grew as more mechanics were implemented.
I was not looking to copy Titanfall directly of course, but many aspects are done really well, so I tried to improve or modify where I felt it was needed.
WALLRUNNING
The wall running was the first, and probably one of the simpler, mechanics I implemented, as this was my main goal.
I remembered from last time I tried to make this, I used line traces to determine whether the player was trying to wall run, and also which side the wall was on, then simply rotate the camera and stick the player to it. I used the line trace method to create the basics for this mechanic.
If one of the line traces hit something, this will check that the wall is valid for the player to use, set the wall run normal (which side the wall is on), and launch the player forward so that the player runs a little faster on the wall, just like Titanfall does. This made the wall running feel a little more fun, and even gives the player a slight incentive to use the mechanic in a speedrun etc.
There is a lot more code that was needed to control the end of the run, or the player jumping off etc. but this is the main function that controls it.