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
- 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!