We think it is really fun to play guitar hero. But what if we would drop the "guitar" and use any instrument you can think of, such as violin, drums or trumpet?

What it does

Keyvaldi allows you to load a track in a special FoF format after which it presents you a gameplay screen with 9 "strings", 3 for each player (3 player max). After that, the good old guitar hero game begins! However, with a slight catch. Your instruments are the keyboards connected to the computer (we recommend one for every player). You all need to cooperate and rely on your teammates in order to play the song. If all of you hit the correct key, a tune is played, but if any of you missed, you will not gain points and the game remains "silent".

How we built it

The game is based on an open source library FoFX, which we had to extend to support multiplayer guitar hero gameplay. This incurred a lot of challenges as the library is heavily revolving around single player gameplay, but it was great fun! We have split our work into 3 parts, first being the backend work revolving around new keymaps, extending the game logic to support multiple 'tabs' and modifying the audio library. The frontend work revolved around UI/UX multiplayer rework (splitting players by colour, retro fitting some of the game sprites). Lastly, there was .MIDI file modifications in which we had to reassign instruments to different players.

Challenges I ran into

Oh there were so many!

  • Keyboard drivers and the detection of the keys with several keyboards concurrently connected
  • Playing sounds in parallel from multiple sources, before we ran into a problem where the sound would often cut out in the middle of a tone for no apparent reason.
  • MIDI file sequencing and track/audio channel detecion
  • MacOS support for opengl and sdlilb
  • Beating the game, we are actually really bad at it

Accomplishments that we are proud of

After pivoting at around 1AM, we are really happy that we could put a playable (and enjoyable!) demo together. The game loop actually does not crash anymore and allows you to finish a whole song. Also, we always plays the tunes smoothly without cutting off, even with several keyboard connected, which just seemed impossible at the beginning.

What we learned

  • A LOT about .MIDI encoding
  • A bit about game loops and game dev in general
  • Resolving/installing very old dependencies

What's next for Keyvaldi

Hollywood? Probably not. We would like to open source this project so anyone would be able to install, grab their keyboards with friends and play without splurging any extra money. Feature-wise we now have only a cooperative mode, but we think that a versus mode against your mates could also be fun!

Built With

Share this project: