Game Project 3
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.
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.