Programming BPM Changes in Rhythm Games

I want to understand how to program a BPM change in a scrolling rhythm game. BPM changes, where the scroll speed increases, decreases, or stops entirely for periods of time, make playing songs significantly more immersive.

I am having a difficult time grasping how one creates this logic and need help understanding how to execute this behavior.


I’ve identified these variables:

  • Current BPM: The current BPM of the song.
  • Note Speed: Note speed set by the user to make the notes appear faster and more spread out, or, slower and closer together.
  • Viewing Distance: How far by default the player should be able to see into the song.

But now… the challenging part… how do I go about making them work together with code?

I appreciate your help! I’m really passionate about rhythm games and I’d like to get to the bottom of this, it has been puzzling me for awhile. Happy developing! :hidere:

1 Like

for the note speed maybe do tweening service maybe same for the BPM i dont know that much scripting but thats all i can help you with

As in a rhythm game without BPM changes, this can be produced by assigning a second from start value to every note and scrolling through the notes. However, one must add a multiple of delta time, that changes the scroll rate of notes and when they should appear on the screen.

1 Like