DrummVR

“Rhythm action” has long been one of my favorite game genres. These games are such a fun intersection of music and computer graphics. Way back when, Guitar Hero was the first game I had for the PlayStation. Thumper was the first game I ever played in VR, during a GDC indie-game developer event hosted at Patreon. Since getting a VR setup of my own, Beat Saber and Audica have become personal favorites.

Though I’ve never spent much time playing the drums, it seemed like a fun rhythm game instrument to work with, since drumsticks would lend themselves well to the hand controllers in VR. This project also presented some fun modeling opportunities and logistical challenges.

While I accomplished some initial testing with simple cylinders representing the drums, the look and feel of the game really started coming together once I spent some time modeling a drum set in Blender. This improved model, when combined with materials included in Unity’s incredible Measured Materials Library, resulted in quite a nice-looking drum set. Small disc targets float down to intersect the drums at the times at which they should be struck.

It would have been possible, with patience, testing, and trial and error, to create drum sequences for songs by individually editing and hardcoding drum-id and timestamp pairs. However, this seemed like a perfect instance to invest some time upfront to create a tool to make this process much simpler. I used JUCE, one of my favorite music-software-related toolkits, to create a program that converts a MIDI file to the specific format I need to interpret as a drum sequence. Now, adding a new track is as simple as opening a song in Logic Pro X, using my MPK Mini drum pads to add my own drum pattern, exporting that pattern as a MIDI file, and running it through my converter. Voila — a text file including all the relevant information to load into DrummVR!

Next steps:

The scoring system is not yet fully implemented. The scores that display in the demo video above are not based on the timing accuracy of the drum hits. The logic for this scoring system should eventually give higher scores for lower time-deltas between the target time and the player’s hit time for each drum strike. I’d also like to add a total score above the drum set, and could then add a high score system as well!

Previous
Previous

Space Invaders VR

Next
Next

Hoop Jet 2