Game Project 3

Final Blaze

During this game project, I worked with multiple backend systems handling checkpoints, saving and loading from file and subscene loading/unloading, as well as highly customisable moving platforms and an interaction system for buttons, levers and pressure plates.
Made in Unity 6 HDRP using C#, this game blends 2D and 3D platforming and combat gameplay through a fixed following camera.

Moving Platforms

Using a complex spline system, this tool for generating moving platforms allows for very precice control of the platforms movement, speed and behaviour.

This tool was created with full adaptability in mind, with potential usecases existing for anything that needs to move along a custom path either automatically or on a specific cue.

The platform will follow the path of a spline that the user generates, then this tool will allow for custom speeds either across the entire spline or along specific sections of the spline. Using UnityEvents, the platform outputs multiple signals regarding its state to allow for easy implementation of additional systems such as audio.

Moving Platforms

Two platforms travelling along their path and waiting at their start and endpoints

Enemies running using Spline Follower Script

Enemies running in the background of a level, using the same logic as a moving platform

Spline follower script

The script controlling an objects behaviour along a spline


Checkpoints, Saving and Scene Loading

As the player travels through the game, they will traverse through multiple checkpoints. Each of which hold information about which sublevels are relevant to this point of the game.

When the player enters a checkpoint, a unique ID belonging to that specific checkpoint is saved alongside which scene the checkpoint exists within into a JSON file and other variables regarding the players current state. If the user then were to restart the game, the scene containing that checkpoint is loaded and the checkpoint loads all missing related levels.

The loading and unloading of scenes was implemented asynchronously to ensure maximum stability and zero stuttering or freezing when playing through the game.

Subscenes loading

Subscenes dynamically loading and unloading as the player moves through the level