Each level within a run is randomly procedurally generated. These levels consist of a combination of multiple areas that are hand designed. The Random Level Generator starts with choosing a boss area at random, which also acts as the main area.
From the main area, there are multiple branches that get created. These branches use a combination of areas that are chosen based on a few rules within the algorithm. With a combination of the hand designed areas with the branching algorithm, the levels are able to achieve a lot of unique, organic results that take full advantage of the 3D platforming element of the game.
The hand designed areas can contain multiple combinations of different enemies and items in order to create engaging combat encounters for the player.
The player is able to switch freely from melee to projectile focused combat. The player has a main energy bar and a projectile bar that locks off a specific amount of energy from the main energy bar to use for shooting.
The player has a 3 hit combo melee attack that was implemented using Unreal Engine's blueprint, animation, and montage tools. Worked with the art lead in order to ensure that the animations for the attacks for the player felt responsive and the attacks for the enemies were readable.
Created a system for the art and sound leads to utilize which would be used to easily link SFX and VFX to the animations.
Aside from the responsive attacks and the use of SFX and VFX integration to improve player feedback, larger hitboxes being managed by a custom hitbox system and player hit stop were used to improve the player's combat experience.
This system allows for multiple variables to be altered depending on the level the player is currently on. Some variables that are altered dynamically are enemies' respective stats, the amount of experience dropped on kill for the player, item chest costs, and the amount of tokens for the enemies to use. Area configurations get chosen based on a flat difficulty scale of easy, normal, and hard.
The system uses multiple CSV files to track all of its data, making it easy to quickly iterate the difficulty. All enemies stats have their own columns that are able to be adjusted per level row.
I designed a lot of different aspects of this game, here is a link to my game design document.