Oh man what a great question! I could write an entire blog post on it. Maybe I will.
My biggest learnings were:
- Use the audio file as your single source of truth. Animate everything else based on the position of the audio file. That way you’re guaranteed to keep everything in sync.
- Use MIDI files to store note plans. It requires setting up a conversion script/pipeline but makes writing and editing the level design really straightforward. I was even able to adapt MRKL’s original midi files directly.
- Give players as much feedback as possible whether they get a note wrong or right. I was surprised how much of a difference it made when I added the “great/good/ok/miss” graphic.
- I never did work out how to make the graphics “dance” to the beat, like New Super Mario Bros. That would be cool.