Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Build a Rhythm Game in (Almost) Any Game...

How to Build a Rhythm Game in (Almost) Any Game Engine

I’ve been building a set of utilities for creating rhythm games, but I didn’t choose just one game engine to build this plugin for; I built it for many of them. Currently, it works in Unity, Unreal, Godot, SDL, and MonoGame, with Love2D and Bevy to follow.

This talk will walk through the steps to create a rhythm game from scratch using the plugin.

- Choosing how to import songs and how to chart the notes
- How to load the notes and render them in sync with an audio track
- How to detect user input
- How to resolve the user input and the notes in the song

A working example will be made available on GitHub for those who want to test it out after the talk.

Avatar for Scott Doxey

Scott Doxey

March 25, 2026
Tweet

More Decks by Scott Doxey

Other Decks in Programming

Transcript

  1. How to Build a Rhythm Game in (Almost) Any Game

    Engine Boston Game Dev Week – MiniCon 2026 1
  2. Who am I? • Web / Game Developer • Worked

    with Unity, Unreal, and Godot • Built games as well as consumer based products in game engines • Release a lot of what I do as open source projects • I love data-in-data-out systems, writing unit tests and regular expressions (seriously) 2
  3. My Favorite Rhythm Games • PaRappa the Rapper (Playstation 1997)

    • Guitar Hero (PS2 - 2005) • Rock Band (XBOX - 2007) • Patapon (PSP - 2008) • DJ Hero (XBOX - 2009) • Amplitude (PS4 - 2016) • Audica (VR - 2019) • Hi-Fi Rush (PC - 2023) 5
  4. My Favorite Rhythm Games • PaRappa the Rapper (Playstation 1997)

    • Guitar Hero (PS2 - 2005) • Rock Band (XBOX - 2007) • Patapon (PSP - 2008) • DJ Hero (XBOX - 2009) • Amplitude (PS4 - 2016) • Audica (VR - 2019) • Hi-Fi Rush (PC - 2023) 6
  5. But I’ve talked to people who are: 1. Good at

    rhythm games 2. Actual musicians 9
  6. Rhythm Games Have Complicated Systems 1. Charting Notes 2. Loading

    Notes 3. Rendering Notes 4. Syncing Notes With Audio 5. Calculating Accuracy From User Input 6. Beat Matching 7. (Bonus) Input Devices (Midi/Custom) 8. (Bonus) Handling Input Latency 12
  7. 2. Loading Notes • Song.FromChartData • Song.FromMidiData • ReadNotesFromChartData •

    ReadNotesFromMidiData npx chart-to-json ./notes.chart > notes.json 26
  8. 30

  9. 32

  10. 34

  11. 37

  12. Disclaimer: I’m awful at rhythm games & I’m not a

    musician. 😬 39 (and I’m not great at math)
  13. But I’ve talked to people who are: 1. Good at

    rhythm games 2. Actual musicians 40
  14. 41 But I’ve talked to people who are: 1. Good

    at rhythm games 2. Actual musicians 3. Good at math
  15. 43

  16. 45

  17. 46

  18. 48

  19. Upcoming Features • Stepmania Import • Love2D (Lua) Plugin •

    Bevy (Rust) Plugin • GameMaker (GML) Plugin • Desktop/Web Charting Tool 61
  20. 66