Avoidance - Rhythm Bullet-Hell
Prototyping | Mechanics
Project Details
Team Size - 1
Duration - 1 week
Playtime - 1-2 minutes
Platform - PC
Distribution - Itch.io
Tools - Unreal Engine 5, Perforce, Trello, Audacity
Roles - Sole Designer and Developer
Summary
The goal of this project was to create a prototype to serve as a proof of concept that clearly demonstrates potential for further development. The idea behind this game is to synchronize hazards the player must avoid with music to create exciting gameplay and maximize the chance of inducing a flow state for players. The design of the prototype also focused on showcasing that the concept has a variety of potential applications to explore.
Planning Stage
Establishing Parameters
The first step with any project is to establish the project's goals and what parameters you are operating within. For this project, I had the following goals and parameters:
Goals:
- Develop my skills
- Provide teammates with an appealing concept to expand on
Parameters:
- 1 week time-frame
- Must demonstrate core gameplay
Core Diagram created to support game concept
Gathering Reference
The next step I took was to gather reference from relevant games. I focused on researching gameplay and aesthetics, drawing from familiar titles from my background as well as new discoveries through targeted searches. By playing or watching these games, I gained inspiration and established a baseline for the genre and its successful mechanics.
Player Movement/Camera: Hyper Light Drifter
Bullet-hell Gameplay: Ikaruga, Furi
Rhythm Gameplay: Hi-Fi Rush, Guitar Hero
A collage of screenshots from games used as reference
Clarifying Vision
To solidify the game’s direction, I created a static level to visualize its potential look and feel. This helped align the gameplay and aesthetics, ensuring they complemented each other from the start. I also solidified the concept as: a flow-inducing game about dodging various hazards and attacks that are synchronized with music by using several player movement abilities.
A static screenshot created in Unreal to represent what the game might look like
Building the Workflow
How do I synchronize in-game events with music?
The execution of this game concept hinged entirely on clearing this one major hurdle. Being restricted by the one week time-frame of the project, I needed a solution that would not take long to implement (such as learning an audio software like Wwise or Fmod). My research quickly found that the Sequence Editor, a feature of Unreal, was exactly what I was looking for. This tutorial demonstrated how I could trigger events in-time with music without the risk of de-synchronization.
Demonstration of a turret firing on each note of the melody
Marking the Timestamps
If the audio track I selected was made digitally, I could simply calculate where each note should fall using tempo and time signature. Because I used an orchestral recording instead, I had to confirm exactly at what time in the recording each note fell. I used the "expected" gap between beats to aid this process, but I still went through and manually timestamped every note using a label track in audacity. This way, I would know exactly what time in the sequencer to place each event.
Screenshots of the audio and label tracks in Audacity
Using the Sequencer
Learning to use the sequencer in Unreal allowed me to easily map out levels using the timestamps I made in Audacity. I was not only able to trigger functions on specific actors with parameter inputs, but I was also able to move the actors around the level using a transform track.
A screenshot of the the final level sequence
Streamlining the Process
When mapping the song I chose for the prototype level, I noticed that it was an incredibly time consuming process. After spending some time streamlining this process, I found the following improvements to be very helpful:
- Using the sequencer hotkeys
- Copying and pasting where possible
- Keeping the tracks organized into folders
- Making functions require less inputs
I've found that if you're going to do a task 1000 times, making that task take 2 clicks instead of 3 is worth it.
Screenshots of the workflow in action
Level Hazards
Turret Hazard
The turrets are the main hazard in the prototype level and fire bullets for the player to dodge. They are associated with the melody, and usually at least one turret fires with each note.
Bomb Hazard
I created the bombs for the specific purpose of briefly making an area of the level dangerous to the player. They are associated with the rhythm and are usually launched with an upbeat and land on a downbeat.
Laser Hazard
The laser creates a damaging line that sweeps across the entire level. There is only one laser used in the prototype level and it is associated with the end of musical phrases. It usually fires while moving to motivate the player to either dash through it or avoid that area of the level entirely.