How do you handle rhythm in a rhythm/platformer game?

Bonjour!

I’m working on a 2.5D rhythm/platformer game project with a graphics artist and a Tech/Sound Designer, really very similar to HarmoKnight (3DS) or rythme level of Rayman Legend on UE5 (because it’s the engine that my colleague and I know the best).

Overall, we have a Player who moves forward by himself and the player can attack and jump.

Despite some research, various iterations and thinking, I still have a hard time making a convincing control prototype.

- I use the Level Sequencer to manage the music, make enemies and collectibles appear.

- I have obstacles that I place manually in the viewport.

- And obviously, the player moves independently from the Level Sequencer, which creates some offset from time to time, which I suspected was going to happen.

Currently, I really don’t know how to do otherwise. My colleague and I are small devs, we only code in Blueprint because we have no experience in C++, which I suppose already holds us back quite a lot.

Anyway, could someone enlighten me on how I could manage everything that needs to be in rhythm with the player, because I’m really lost?

Thanks in advance to everyone who will help us! :light_blue_heart:

sequentencer will always drift from gameplay ticks, dont drive gameplay off it.

pattern that holds for harmoknight style: keep one master metronome in game thread. store BPM, compute beat time as GetGameTimeInSeconds with AudioMixer clock (GetAudioTimeSeconds from the music) and quantum = 60/BPM. on each beat/8th fire a delegate. enemies/collectibles subscribe and snap to that clock, not sequencer transform.

authoring trick: export a midi or json with beat markers from your DAW, import as DataTable of time->event, spawn/move off that table driven by audio time. sequencer only for cutscenes, not for gameplay rhythm.