This is a solo project of mine that I have started on summer of 2024 but was put into hiatus because of my university work.
Roles: Game Developer
Tools Used: Unreal Engine 5, C++ Blueprints
Timeline: June 6th 2024 - hiatus
Genre: Rhythm
Engine: Unreal Engine 5
Description: A rhythm game where the goal is to shoot the blocks at the exact time to get a perfect score. The idea of this is for players interested in aims labs to improve aiming skills while getting an enjoyment out of it.
Responsibilities Include:
Designing the UI/UX
Designing the level
Designing Core Mechanic
Creating a beat mapping system for players to map their own song
Programming systems using C++ Blueprints
Table of Contents
Aiming and Moving
The player can use the mouse to aim at the incoming blocks.
Using the keyboard the player can practice moving and shooting at the same time.
Perfect Timing
The player can listen to the beat of the music and the incoming blocks will turn a golden color to indicate to the player of the perfect timing.
Combo
Upon hitting the blocks the player's combo score will increase but however if the player lets the block hit the end zone it will reset the combo counter.
Pause menu
The player can pause the game by pressing esc. In the pause menu the player is given 5 choices:
- Restart
- Resume
- Menu
- Sensitivity
- Volume
Resume
When unpausing the game, the player is given a 3 second timer so they can prepare themselves again.
Sensitivity
The player can adjust the slider to increase or decrease the sensitivity of the mouse.
Volume
The player can adjust the slider to increase or decrease the volunme of the game.
Inspiration
I got inspiration of how the level is going to look by trying to mimic the looks of beat saber and I wanted to include elements from games such as OSU and aim labs as I wanted to create a game for players to practice their aiming skills while getting an enjoyment out of it.
I want this project to turn out to be similar to the OSU interface where players can browse songs.
I also want to make it so the community can map out songs of their own choices, similar to OSU where anyone can map out a song.
Mapping out the rhythm
The blocks below indicate each seconds of the song to help me map the rhythm of the song.
The indicating blocks also will be used to help others to map out their desired songs.
The image below is the audio graph of the song which helps me to locate the beat and rhythm so I can put the blocks according to it.
Blocks design
I used the chaos destruction plugin to make the blocks separate into little pieces so when the bullets hits the blocks it will give the player the satisfaction of hitting it.
The blocks are designed to the likes of beat saber where it has a neon glow around the edge of the blocks.
I started off making iterations of how the cubes are going to look in blender and came up with 2 similar designs but eventually decided to go with the right one as it was more visible to the player.
Blocks C++ Blueprints
The block's speed can be adjusted and there are two more movement options.
The C++ Blueprint is broken into 7 parts.
- Material Setting
- Colliders for Perfect or Near miss
- Half Score
- Getting Hit
- Break on its own
- Moving speed
- Going Up/Down
Material Setting
When the game begins it defines the material of the blocks that will be using later.
Colliders for Perfect or Near miss
This section toggles the hit box colliders for the blocks.
The blocks starts with the NearMiss collision and material state.
When the blocks hit the perfect score area the Perfecthit event is called and it will make the blocks golden.
Half Score
The bullet will trigger the blocks to break itself and stop it from moving or else the block will be broken apart but will still move foward while falling.
When the bullet hit the Box2 collider, it will cast to the Score Blueprint to trigger the add half score event and also to the combo score event.
The block will destroy all the colliders to prevent adding scores and after 5 seconds it will fully destroy for performance.
Getting Hit
The bullet will trigger the blocks to break itself and stop it from moving or else the block will be broken apart but will still move forward while falling.
When the bullet hit the Box collider, it will cast to the Score Blueprint to trigger the add score event and also to the combo score event.
The block will destroy all the colliders to prevent adding scores and after 5 seconds it will fully destroy for performance.
Break on its own
When the blocks aren't hit by the bullet it will hit a wall and it will trigger the Breakapart event.
Once on impact it will spawn break apart the block and spawn a force field at that area to force the pieces of the block apart.
The block will destroy all the colliders to prevent adding scores and after 5 seconds it will fully destroy for performance.
Moving speed
The blocks moves by the event tick function multiplied by the speed so it will not be affected by the player's FPS.
There is also another bool for making it going up and down custom events at intervals of 2 seconds if toggled.
Going Up/Down
Up and down are custom events that moves the blocks move 2 or -2 at the Z axis
Level Design: At the moment the level layout is very boring and bland and I hope to change it up adding lighting and moving objects or objects in the background to give it a more unique look.
More levels: There is only one level right now but I want to create more levels in the future.
Level Maker: I want to create a level making app that is similar to beat saber level maker so the community can make their own maps.
Different guns: Since this is going to be a aim training game I want to let the player to be able to choose different types of guns for their training preference.