Spectra is a unique FPS game in which each player starts with all three available weapons, and each weapon have two firing modes but all 6 combined firing modes use the same shared ammunition.
The Grenade launcher is one of the three weapons availabe to the players.
The Primary fire mode fires a projectile that explodes after a few seconds.
The secondary fire on the other hand freezes all the grenades fired by the player up until that point, which have not yet exploded creating mines. The mines will explode after a while or when touched by any player including teammates and the instigator.
Spectra is designed to have a fast paced player mobility. With this is mind, the players have been given the ability to double jump along with a dash and double dash.
The player can dash anytime during the game. Dashing after jumping will give max dash velocity to the player due to the low air friction of the world Lumina.
The player can dash in any direction irrespective to the direction of their jump or movement directions.
When the time to polish the features was upon the team, realizing that none of us have much experience with the Unreal Engine, I took it upon myself to create a reasonable Jump animation for the third person character. Spectra has a heavy emphasis on vertical movement and a proper Jump/Landing animation felt critical for an polished feel.
I collaborated with an artist to re-skin the default Unreal jump animation for our character.
Once the animation was re-skinned for our character, using the Unreal Persona tool, I cut the animation into "Jump", "Falling" and "Landed".
Using the AnimTree, and the Animation bluprints, I setup the character to play the appropriate animations which part of the animation to play ensuring blending with running animation is still intact.
With time and engineering resources in mind, Spectra was designed to not have a match maker lobby system.
One player creates a match and shares the game with peers while upto 7 other players are allowed to join the game.
Each player is dynamically placed in teams based on which team has fewer members when a player joins the game.
Upon joining the game, players are assigned a team and their materials are updated to match their team colors.
A simple team based spawning system which spawns each player upon death, at any one of the designated spawn points based on their team.
Spawn points are simple blueprint objects which indicate the team they represents. Designers may place any number of these spawn points in the level, where ever they wish to.
The game gathers all the spawn points in the level at startup, and records each of the spawn point transforms.
Upon death the players are respawned at a randomly selected spawn point representing their team. This allows the designers to strategically place these team-based spawn points closer to the team's base and safe spots.