Caves, Shrooms & Crystals
Project length: 4 weeks
My position: UI, Character & Shader Programming
Engine: Unreal Engine 5
Genre: First person Shooter, Roguelike
Platform: PC
Team size: 12
About
Caves, Shrooms & Crystals is a first person shooter, roguelike made in Unreal Engine 5 and C++ for game project 4 at Futuregames.
Contributions
Character
Movement
In this game the player has classic first person player movement but our player can also dash and double jump (if you have the upgrade).
The dash works by getting the direction of the walk inputs and launches the player in that direction.​
​
The player can jump in the air a set amount of times and resets when the player hits the ground.
Weapon
The weapon in our game is a separate blueprint entirely, it represents a component on the gun to tell the gun what the camera forward vector is and when to shoot.
​​
The weapon uses a line trace from the forward vector of the camera to a point further away to get were the player is aiming and then spawns a bullet that is rotated towards the aimpoint and then moves forward.
Settings
Gameplay
In the gameplay settings you can change camera sensitivity, toggle head bobbing, and camera tilting.
​
The camera sensitivity uses a slider to control how fast the camera moves when locking around.
​
The head bobbing and the camera tilting settings each control animations for varied levels of immersion.

Graphics
The graphics settings can set the screen mode between borderless and window mode and the desired resolution of the window. It also includes fidelity presets.
​
The graphical fidelity and the resolution settings both use a drop-down box where you can chose what graphical fidelity or resolution you want.
​​
The screen mode setting uses a check box to switch between borderless and window mode.
​
These systems use Unreal Engine 5 Game User Settings.

Audio
The Audio settings uses two sliders, one for music and one for sound effects. In this game we use Fmod for the music and meta sounds for the sound effects.
​
When the music sliders value change I set the value of there corresponding Fmod parameter to the value of the slider to change music volume.
​​​
The sound effects slider uses the audio mixer in Unreal to change the volume of all sounds connected to the SFX audio class to the sliders value.

Shaders
I made the shaders for when the player is damaged by different effects like ice, electricity and poison.
​
​​​
​
​
I also made the shader for the round progress bar. It is used to visualise the cooldown of the dash, the abilities cooldown, ability duration and reload time.
Take Aways and Reflections
​​
When making the character and the weapon I managed to do most of it myself. The only thing I needed was the designers input on what effect the gun and the character movement should get from the upgrade system.
When creating the settings menu I collaborated with the UI designer because I needed the layout to implement the behaviour. I communicated a lot with the designers to make sure the implementation went well with Fmod.
​
When creating the shaders the only thing I needed was for the AI programmer to add a trigger for when a enemy attack the player so the shader can appear.​
I was supposed to only do the UI and gameplay programming but we had some problems with the the development of the post-processing effects, so I had to take over that responsibility and do shader programming too.
​​​
All of the above reflects the need to communicate with other people on a regular basis and using tools like Jira, I realise this after this project.
​​​​
​
​
In this project I was responsible for the character, shaders and menu UI. We used Perforce and Git as source control, Miro for prototyping, Jira for project management.
​
​