Jazz It Up

After the other thread that I posted about the topic, @KRYSH and I jammed an audio-heavy game for this past Ludumdare.

image

We started the jam knowing we wanted to make something about animals playing jazz. We came up with the idea that, as long as you knew what the chord progression was, then in theory you'd be able to pick any note that belonged to those chords, and it should just "work".

Here were some of the things I learned during the jam:
  • You can't just have pre-written note sequences. You have no idea how quickly or slowly a player is going to play a sequence, so the chord progression might have moved on to the next chord before you're done. A broken sequence can sound quite weird.

  • You can't just pick random notes. A chord might contain only a few notes, but it could have them at many octaves. You actually have to be selective about which notes you pick from, otherwise the song becomes complete chaos.

  • If you only pick notes that are close by, it sounds okay most of the time, but can end up quite "samey" too.

  • Having drums as a playable instrument is extremely difficult (hence we left it out), because of how the tempo defines when your chord progression changes (e.g. at the end of some number of bars). If the drums can be played arbitrarily, then the game has no way of knowing whether the tempo is speeding up or slowing down. The drums played quickly -- is the tempo speeding up, or is it just playing at double-time, but slower? No idea!

  • Even if you're picking the perfect notes, it'll still sound like utter chaos if the timing is even slightly off between multiple instruments.

  • If you discretize the timing, it immediately sounds much better (less like chaos), but it also can feel too mechanical. Furthermore, if you snap too aggressively to time periods that are too far apart, the game no longer feels responsive. (We never addressed this in the jam version, but it shouldn't be too hard to weight the snapping to include the player's actual input.)

  • Some composer-authored sequences are really good for reducing the chaos. With long enough sequences written for each chord, you can potentially start the next sequence at a random point (or closest note to the previous note) to add some variation.

  • Not something I learned exactly, but I spent a good couple of hours writing tools to help KRYSH enter chords and audio sequences. (It would, for example, take a string and convert that into the data we needed internally, e.g. "cmaj,gmaj,dmin,gmaj" became an array of chords. This was much faster than having to drag things around in the inspector, and -- I hope -- allowed for more space for iteration.)

  • Animating loosely is very liberating. The most exaggerated animations seemed to be the most memorable. Understated animations (for this style anyway) should only be used if being understated itself (e.g. being stone-faced) is part of the personality/humour.

  • Jamming remotely can work, but needs some prep for screen-sharing without echo. It also reduces organic communication, and can get in the way of actually getting to know people. It can feel more like contract work than jamming. (i.e. You plan goals, then you work toward them, only communicating when a goal is in danger or you're faced with new information.)
image

Play it here!

Comments

Sign In or Register to comment.