I want to learn about the creation of rhythm track games. In particular, a song plays and a beatmap formatted by note timings plays. There are notes to press and notes that you just hold. I analyzed source code for RoBeats and it’s still hard to really see how it all goes together. I gathered one fact which is that they lerp a pressing note from A to B using a calculation.
I plan to create “classes” (modules) of the notes to better organize and structure the code as well.
What I really need is how to setup the note track system entirely, starting from one track to have the two different kinds of notes, one for press and one for holding. I want to be able to record user input to see if the player has pressed or held the note relevant to what they’re inputting.
One thing I worry about is how can I record a note press or has finished its holding duration. Should I use collision detection with the notes? Is there some way I can calculate when a note passes in a specific spot that allows the player to press/hold to register it?
I already know the API of UserInputService and Audio instances. I just want the programming gist. Anyone familiar with programming a rhythm track game can help?
If code examples are possible, that is nice. I don’t want the entire thing coded out for me but I just like to see an example to get the point if you can.
Feel free to provide any resources if it can help me at least a bit with my question.