Details
Engine: Unreal Engine 5.4
Team Size: 10
Duration: 32 weeks
Role: Programmer
Dates: August 2024 - April 2025
Rockstars!
Glass Record Studios
Gameplay Video
Currently a work in progress
Game Description
The player takes on the role of the lead singer/guitarist in a wandering band of space hippies on their way to the gig of their lifetime, the Protostar Palooza! In what is essentially a cosmic Coachella, bands from around the galaxy gather in one place to witness the forming of a protostar, and get this, they’re the opening act!
While on their way, their rocket minivan smashes into an asteroid and crash lands on a mysterious new planet, leaving the player and their other band members scattered on its surface. With the gig starting in only 4 hours, it’s up to the player to round up the troops, repair the ship, and head back into space before their chance is up!
The player has access to a grappling hook via the special ability of their mic instrument, which can be used to grapple to targets that are placed around the map.
The event tick of each grapple target begins by checking that the player has the mic instrument equipped. Next, it ensures the player is within the visibility distance of the target. There is both a visibility distance and a player grapple distance (point at which target can be grappled to) to allow the player to see targets before they can be used.
A line trace is then done from the target’s location to the player’s location to ensure that there is nothing blocking the target’s line of sight to the player.
The final bit of checking determines if the player is within their grapple range, or just the visibility range. If it is the former, the target is made visible, however, if it’s the latter, the target is made visible with a fade to it. The final check makes the target fully visible (no fade), when the player is within their grappling range and they are not grappling.
Having a grapple target that communicates information to the player such as, where the target is, and whether or not the player can grapple to it, aids the player in better understanding the usage of their grappling hook.
The player has 4 hearts, and when they take damage, the lose health function is called, which takes in a health value. Based on that health value, the function calculates which heart (index in the array) should be removed.
The health value is represented as 0 to 100, so the function begins by dividing the new health value by 25. The divided value is clamped to be within the bounds of the array. The clamped value is inputted into the lose hearts function.
The lose hearts function takes in an int (how many hearts are left) and disables, or hides, hearts. For example, if the int is 2, that means there are only 2 hearts left. The lose health function will therefore hide both the 4th and 3rd heart from the right. Hiding multiple hearts prevents hearts being visible when they shouldn’t be.
When the hearts have been removed, a lose health animation is played. Once the lose health animation has finished playing, the idle animation for the health UI begins playing again on loop.
The lose health function helps players understand how much health they have, and how much they lose when they are hit by the various enemies in the world.
There are 2d stylized VFX that need to be played at multiple points throughout the game. For example, there is a landing VFX that needs to be played once the player hits the ground. Playing the VFX could be done in a blueprint that checks if the player hits the ground, but an anim notify can be used to play the VFX the moment the player touches the ground in their landing animation.
The anim notify can be used to play whatever VFX is desired. To use it, a team member simply adds an anim notify to whatever frame they want in their animation. Within the animation, the team member can change what effect will be used, and that effect’s location, rotation, and scale within the details panel of the anim notify.
Creating the anim notify for VFX makes implementing VFX incredibly easy for other team members. For example, an artist could easily add an anim notify into an animation and set up when (what frame), and where (the location on the player) that the VFX will be played.
Code Snippets
Grapple Target Visibility
Grapple target is seen at multiple points in the gameplay video such as, at 20 seconds.
Health UI Lose Health
The lose health function can be seen at a few points in the gameplay video.
Anim Notify for Playing VFX
The playing of VFX can be seen at many parts throughout the gameplay video at the top of the page.