PLATFORM
PC
GENRE
Third Person Shooter
ENGINE
Unreal Engine
DURATION
Four weeks
TEAM SIZE
Solo Project
In this Third Person Shooter, the player must navigate the map while completing set objectives. These objectives include finding quest items and eliminating threats. The player can find weapons and pickups including access cards to unlock areas, quest items, health packs and ammunition.
The player must aim directly at the enemy and fire until the threat is eliminated, there is a variety of sights and optics that are effective at different ranges and situations, the player must take these factors into account.
If preferable, the player can avoid direct combat and use a more stealthy approach by avoiding alerting the enemies and using the sniper rifle to eliminate the threats.
RESPONSIBILITIES
Level Design
Gameplay Design
Gameplay Scripting
This is a solo project in which I created all game mechanics. The objective was to create a project with the modular systems and game feel as the focal points. To achieve the modular aspect, I used the same logic when creating both the pickup- and weapon system in which the latter is showcased in further detail below. In regards to the game feel, I focused on smooth transitions between the character movement states and responsive controls with an intuitive control scheme. The movement mechanics are showcased in further detail below.
Enums allow you access to your own custom list of settings or states. Using switches and select nodes, you can use one line of code where you would otherwise had to create several different states. This enumeration is called in the struct variable to set the weapon type.
The blueprint struct variables allows you to store different data types which contain related information together. This struct variable is called in the parent blueprint and is collection of different types of data which are related and held together for easy access.
The parent blueprint contains script for the basic weapon such as the fire and reload function. The child blueprints automatically inherit the functionality of their parent, which can then be augmented, added to, or altered so that each weapon does something different while sharing the same basic features. This is useful because any updates made to the parent blueprint's script will apply to all its child blueprints. In the construction script, which is designed to execute upon creation and update of an object, the struct variable is split, called and set.
The process of adding new weapons and additional functionality is simplified by only needing to create a child blueprint of the parent blueprint, adding and the mesh and adjust the settings in the class defaults according to weapon type.
Blendspace
AnimOffset
The animation blueprint event graph performs updates to the values which are used in the anim graph to drive the state machines, blendspaces and anim offsets.
The anim graph is used to evaluate the final pose for the skeletal mesh. To achieve smooth transitions between the movement states different caches are saved, combined and blended per bone.