ARI JHANGIANI
Neon cyberpunk key art for Rhythm Rider: a hover vehicle races down a magenta-lit city street beneath the game's glowing title

Game Project · 2026

Rhythm Rider

A third-person arcade rhythm game built by a five-person team, with music, sound design and UX/UI by Ari Jhangiani.

Overview

Rhythm Rider is a third-person arcade rhythm game built around precision rather than speed. Driving automatically through a neon cyberpunk city, the player must dodge obstacles synchronised to the music, preserve their health and build the highest possible score.

Year
2026
Role
Sound Designer, Music Composer & UX/UI Designer
Tools
Logic Pro, Figma, Unity
Engine
Unity
Team
5-person team — see Collaboration

My Contribution

My work on Rhythm Rider focused on how the game communicated rhythm, timing and player performance. I composed and produced the soundtrack, designed the dodge and Perfect/Good/Miss feedback cues, and built the HUD, menus and interface flow in Figma, keeping one consistent visual language across all of it.

I collaborated closely with Steven Gao, the team's programmer, on how that audio and interface work was implemented in the build, and with Michael Wu on sound. A small amount of 3D modelling aside, the environment and vehicle work throughout the game is the rest of the team's.

Core Gameplay

The vehicle moves forward on its own, there's no acceleration or braking. The only input is dodging: obstacles are timed to the music, and how accurately each dodge lands is scored as a Perfect, Good or Miss. Perfects build a streak that pushes the score multiplier up to a temporary 1.5×; misses cost one of three hearts and drop the multiplier back down, and losing all three hearts ends the run.

Because every read has to happen in time with the beat, none of that works if the player can't hear or see it coming. That's exactly where my sound and interface work came in.

Third-person gameplay view of Rhythm Rider: the hover vehicle dodging a lane of obstacles, with score, multiplier and heart health displayed on screen
The final gameplay loop, showing incoming obstacles, score, multiplier and remaining health.

Music and Sound Design

Because every obstacle was tied to the beat, the music shaped the timing and pace of the entire run rather than just setting the mood. My sound work needed to support both the game's cyberpunk identity and the player's ability to read its rhythm.

I composed and produced the soundtrack in Logic Pro, building tracks around a steady, clearly readable pulse so the beat driving the obstacles was always something a player could feel, not just see on screen. Sound design followed the same logic: dodge feedback and the Perfect/Good/Miss cues needed to be instantly identifiable at speed, without cutting across the music.

Logic Pro session for the Rhythm Rider soundtrack, showing layered melody, beat and bass tracks arranged around a steady pulse
The Rhythm Rider soundtrack arranged and produced in Logic Pro.

UX/UI and Player Feedback

The interface had to communicate timing, health and scoring without pulling attention away from the track. My UI work focused on keeping that information readable at speed while maintaining the game's neon visual identity.

That meant a HUD that stayed out of the way until something changed: hearts, multiplier and score needed to update clearly the moment a dodge landed or was missed, and Perfect, Good and Miss each needed their own instantly readable state. I designed the HUD, menus, level-selection and restart flow in Figma, using one consistent colour palette throughout, then worked with the programming team on how it was implemented in the build.

Figma UI board for Rhythm Rider: menu buttons, Perfect/Good/Miss feedback states, score multiplier tags, playback icons and heart health indicators over the in-game title screen
Interface assets and visual states developed for scoring, health, timing feedback and menu controls.

Iteration and Development Challenges

Challenge

One challenge was that sound and UI were initially treated as separate deliverables, while many important decisions depended on how they would behave inside the final build.

Lesson

That made scope and ownership hard to judge early on, and it's the reason I now plan implementation alongside asset creation instead of treating them as separate tracks.

Future approach

On a future project, I'd want sound and UI scoped against the build from day one rather than as parallel tracks. I'd review cues and HUD states directly in-engine early, instead of finalising them in isolation and adjusting once they met the game.

Collaboration

Rhythm Rider was a five-person team project. Steven Gao was the team's main programmer, and a lot of my process came down to making sure the audio and interface work I created fit cleanly into the game he built, rather than the other way around. Michael Wu, credited as assistant sound designer, worked alongside me on sound; Yasith Kalubowila and Aaron Tiew handled the 3D modelling and texturing, with Aaron leading the environment art direction. My own 3D contribution was limited to a small number of assets, the environment and vehicle work throughout the game is theirs.

Steven Gao
Main Programmer
Aaryan Jhangiani
Sound Designer, Music Composer
Yasith Kalubowila
3D Modeller
Aaron Tiew
Main Environmental Artist, 3D Modeller/Texture
Michael Wu
3D Animation, Assistant Sound Designer

Final Outcome

Rhythm Rider shipped as a playable third-person rhythm game, with my music, sound design and interface work running throughout the final build. The track underpins every dodge, and the HUD reads out hearts, multiplier and score in real time.

Working across music, sound and UI on the same project taught me how much those three areas depend on each other once something is actually playable. A HUD change can throw off how a sound cue reads, and a track's tempo decides how forgiving the whole interface needs to feel. If I revisited this project, I'd want sound and UI planned against the build from day one, instead of catching up to it partway through.

Trailer plays muted, enable sound in player