Xolotl - Ludum Dare 36 Mac OS
Ever wanted to know how to compose a music track for a game? In this post I’m describing how I did just that with the main theme for “Lethal Blow”. Read on!
Designer/Developer: Double Fine Productions Platforms: Linux, Mac OS X, Microsoft Windows, Xbox One Release Date: June 1, 2015 Game Location: www.massivechalice.com Explanation Massive Chalice is a tactical combat strategy game that requires the player to not only manage their units on the battlefield, but throughout their lives.
- Competed in Ludum Dare 36, a game making competition where I was given 48 hours or less to make a game. This was my first time creating a game for Ludum Dare and I finished it with a couple of.
- I was doing the Ludum Dare game jam, and as I was about to submit, I realise that all my builds weren't working. I'm on OSX, El Capitan 10.11.2, and Unity 5.3, just updated 2 days ago.
- Artifacts is a platformer about a girl who makes a living retrieving ancient treasures from long forgotten civilizations.Inspired by games like Worms and Flinthook, you must use your grappling hook to survive through the dangerous corridors and towers and the restless spirits that inhabit them. Artifacts was developed during Ludum Dare 40 (2017).
The game
“Lethal Blow” is a beat-em-up game that takes minimalism seriously. There’s a single level. There’s a single hero. There’s a single objective. And you can have any colour you like, as long as it’s grey. Download and play, it’s fun! There are binaries for Windows and OS X. Linux works as well.
This game is the brain child of The Sheep who drew and programmed the damn thing in Python. I made music and packaged the OS X binary. But we’re here to discuss the soundtrack so let’s stick to that.
The end result
Let’s start from the very end by presenting you how the final result sounds like. I mean, if you like it, you’ll be interested to hear how it’s done. Otherwise, well, ehm. Let’s just say I hope you like it.
The gear
I used Logic Pro 8 on Mac OS X 10.8. This by itself was not an easy task because Apple dropped support for that version of Logic Pro with OS X 10.7. I’m not willing to upgrade just because the backwards compatibility policy sucks at Apple so after a bit of fiddling I managed to make it run.
I started out playing a software MIDI keyboard but quickly became frustrated with it and after recording the drums decided to play the rest on my Yamaha CP300 stage piano. All sounds are virtual instruments bundled with Logic.
The idea
When The Sheep asked me to make music for the game, I immediately agreed because it sounded like fun. Then again, I didn’t know what the competition theme would be and what his interpretation of the theme might end up being. I decided to wait until the game is at least partially playable to try it out, get the feeling of it, and write a soundtrack like you would with a film.
I have to tell you that there aren’t many things that The Sheep likes. There’s Belgian beer, Python, tentacles in all forms, Japanese culture, and the Portal game series. Oh wait, and Irish music. Flutes and ocarinas, too. But that’s about it. I wanted him to like my soundtrack as well. So I thought to make it somewhat tribal, folkish and rhythmic. As I’m very fond of compound time signatures, I decided to go with 6/8.
The drums
As I mentioned above, I started out by recording the rhythm using a simple application called VMPK that acts like a MIDI keyboard. I just hoped to record the entirety of the track in the living room, without having to set up all the equipment in my office. That’s how lazy I am.
It turned out to be painful, a laptop keyboard is really not suitable for recording anything. I remember using that years ago for my demoscene tracks but that was a long time ago and I was a different man back then. One effect of using a software keyboard is the lack of any dynamic touch response in the recorded notes. In other words, each and every note is of the same volume. You can hear that on the drums.
I picked a preset called “Indian & Middle Eastern Kit”. It sounds great and very organic. It consists of samples of actual drums and percussion. This is how the drum track sounded with just the reverb:
For some reason I thought the rich sound doesn’t really fit the Minimalism theme of the jam. To dirty it up and make it sound more like a retro game, I put a “Guitar Amp Pro” effect on the track. After fiddling a bit with the presets, I ended up with the final sound for the drum kit. Note that there are no brass percussion instruments yet, only the heavy drums.
Ludum Dare 48 Theme
After recording the drum track I gave up fighting with VMPK and went to the office to set up a more serious environment for recording the rest.
The accompanying instrument
Most composed tunes throughout history are based on simple agreed harmonic structures. To say it in a different way, there are a couple of chords that are repeated on and on. But chords by themselves are pretty boring. There’s another thing you need, it’s what rock stars call a riff: an interesting way to play a chord.
Once I had the rhythm set up, I could play it back with Logic and improvise on a riff I found nice. For the folk theme I was targeting, using a fiddle or violin sound would be fun. Unfortunately, I am no violin player. You have to work with what you have. And when life gives you Chinese Guzheng Zither samples, make world music. After some improvisation with basic chord progressions, I recorded a 4 minute long jam on the guzheng. Here’s how Logic rendered the score for the counterpoint:
OK, I have some riffs on a Chinese instrument I have never seen in my life. I slapped some chorus and reverb on it for good measure but it still sounded dull and empty. I decided to fill the space by adding some legato strings in the background. But improvised music has its problems. For instance, what were the chords I used? I went through the track once again writing down chord after chord. This is the actual piece of paper I used:
The leitmotif: a melody
Once I knew the chords, recording a string track was easy (just use the same chords and progress them slowly). Here’s how it sounds on its own:
But now what? We need a lead instrument playing the theme of the game! Thanks to The Sheep, I immediately thought about an ocarina or a flute. Logic provides a great modular synthesizer called Sculpture which provided me with the sound I wanted (the preset’s called “Airy Lead”). After another hour of improvisation I finally came up with an idea for a simple melody that sticks as a leitmotif.
The bass and the funk
The human ear finds music lacking without distinct bass lines. I needed to add a bass track but I wanted to balance the folk sound with something more game-like. I went with a synth based “Metro Bass preset” and played it on every second beat. This unfortunately sounded very alien and the result was inconsistent. Instead of dropping the idea altogether, I decided to merge the game world with the folk world by introducing a funky e-piano riff. I picked a suitcase preset, dirtied it up with some guitar amp, and the effect was great. I am very happy with it.
As a finishing touch, I added the brass percussion from a sampled drum kit to make it sound more realistic and less repetitive. This time, recording with an actual stage piano, the sound has lots of variety in the volume. The drums, the bass and the funky piano sound like this on their own:
Mastering
Ludum Dare 41
What I silently passed over in the paragraphs above is mastering, in other words making sure all the tracks are as loud as possible without sounding too loud. This is unfortunately out of scope for this article. Let me just say there’s lots of compressors, limiters, metering and EQ involved. And quantization where my fingers failed to play well enough.
The “source code”
If by any chance you have access to Logic Pro 8 or newer, feel free to grab the project files to all three tunes on the soundtrack. It’s a small archive and the projects only use the built-in instruments and samples. There shouldn’t be any problems with running them on your machine.
If you have to ask about the license, you’re asking the wrong question. But if you insist, it’s CC BY 3.0.
I hope you had as much fun reading as I had composing the piece. Cheers!
Ludum Dare Jam
I originally posted this on April 9, 2013 on my blog on Gamasutra. Cross-posting here, as I should have done before.
I first learned of Ludum Dare last August. I wasn’t in time to participate, but I was able to play a wide variety of interesting games. That got me fired up — I definitely wanted to participate in December’s 48-hour compo (hereafter LD48). I hadn’t programmed in years, really, but I was signed up for an Intro to Computer Science MOOC and was pretty sure I would be capable of pumping out something come December.
Participating in Ludum Dare #25
When December and its LD48 came around, I was not at all confident in my abilities. I had successfully brushed up on basic computer science concepts and learned some new things, but the MOOC had been taught in Python instead of the C/C++ I originally learned in. I could do some things with Python, like perform computations and output things to IDLE, but I had no clue how to do things like play sound and draw graphics. To make things worse, I live in Japan, which meant that the event would be starting at noon on Saturday for me. In order to be functional for work on Monday, I needed to get to bed around midnight on Sunday, leaving me with only 36 hours to make my game. In short, my limitations were many. Read more…