Gameplay and 3C's Programmer
A third-person parkour system made in Unreal Engine and C++. It allows the player to move in various ways depending on situation, and the camera changes behaviour to keep the player's target in focus.
This project has been done on the side of Futuregame's curriculum, lasting approximately 12 weeks part-time.
IMPORTANT NOTE:
Animations are not in focus. They are used for visualization purposes only. I have used free animations from Mixamo and retargeted them to fit Unreal Engine's mannequin. Since my options were limited, some movements could have used better suited animations. There is additionally a stickman being animated, for clarity.
Below, you can see all features used in an obstacle course, in the style of Getting Over It. You can also review the code on GitHub.
Initiate climbing
If the player gets up to a climbing wall, it automatically starts climbing.
Change how movement works
The player climbs in relation to the character's forward vector instead of the camera's.
Follow the wall
When climbing a curved or tilted surface, the character's rotation follows.
Find ledge
If the player finds a ledge, it climbs on top of it.
Drop down
The player can interrupt climbing.
Floor angle
The player changes speed depending on the floor angle.
Speed over time
The character's movement speed is changed over time instead of instantly.
Run up a wall
When running into a wall, the player starts running up on it.
Success
Fail
Sliding down wall
When the character is mid-air facing a wall it starts sliding down instead of free falling.
Aiming
Time is slowed down and camera zooms in to let the player aim better.
Using the hookshot
Looking for something to hook to in the direction the player is aiming.
Leave aiming
Resets all the settings to how they were before aiming.
Drain energy
Energy is drained when running up a rising floor and performing certain actions. When depleted, the player's actions are limited.
Restore energy
Much restoriation
Little restoration
Regular jump
An impulse on the character's up-vector that can be performed while on the floor.
Wall jumping
Jump in the direction of the wall surface normal.
Climb jumping
Jump in the direction that the player is moving.
Basic movement
The camera rotates around the character on the yaw and pitch axes.
Field of view
The FOV (Field Of View) is changed depending on movement input.
Offset camera
The camera is offset on the right vector in relation to the character depending on where the player is heading and looking.
Moving character
Moving camera
Climbing
Moving character
Moving camera
Idle
When there has been no input for a while, the camera starts rotating around the player, zooms out and decreases FOV.
Wall behind the character
The camera zooms out when the player can perform a wall jump.
Coding practices
Abstraction
The project is seperated into several scripts that each have a specific task.
See for yourself
Take a look at the project on GitHub. Click the button below.