Frogatto & Friends

Frogatto sprite

Frogatto & Friends is an action-adventure platformer game, starring a certain quixotic frog.
We're an open-source community project, and welcome contributions!
We also have a very flexible editor and engine you can use to make your own creations.

Foley for Frogatto

May 16th, 2014 by Action Jack

Hello!  My name’s Adam, and I’ve been doing sound effects for Frogatto.  About 90% of the sound effects currently being used are fresh recordings by me (the rest are made with bfxr; it’s a lovely program and a quick, easy and free way to get classic “video-gamey” sounds).  This is the first time I’ve done sound for a video game, and since the process has been absolutely fascinating for me I thought I’d share a little bit about what I’ve learned.  I’ll have a video at the bottom showing whatever specific sounds I mention here.

I fancy myself a budding foley artist.  And since telling people that usually raises more questions than it answers, “foley artist” is a term originally applied to movies for somebody who records sound effects that weren’t picked up by the camera.  However, since then the term has been extended to other media as well, so I use it to distinguish the fact that I create my own sound effects rather than pull them out of a library.  Most projects do a mix of both, but I’ve been challenging myself to get as many sounds as possible with foley to expand my range.

Foley for a video game is a completely different set of challenges from foley for a movie (or at least in this case; I imagine it would be closer if Frogatto had more cutscenes).  The majority of what movie foley artists do is footsteps.  They put on the pair of shoes they own that most closely matches what the character is wearing (I’ve had a hell of a time looking for a pair of heels that fits my size-thirteen feet) and watch the footage, walking in sync and timing their movements to match the actors’.  Not only does their rhythm need to be perfect, but since they have a microphone pointing at their feet they have to walk in place and still make it sound natural.

I don’t have to worry about any of that.  It’s impossible for every footstep in a video game to make a unique sound, because any given character will take an infinite number of steps.  So I just supplied about ten footstep sounds for each of Frogatto’s different podiatric movements (walking, running, jumping, and skidding) on each of the surfaces we have in the game.  And I didn’t have to worry about my timing, because the game just picks one sound from my collection at random every time Frogatto hits the frame of animation where his foot hits the ground.  So all I had to do was pick my favorites, crop them, and upload them.  Footsteps are the bulk of the job for a movie, but for Frogatto they only took a few hours.  It took me longer than that to clean up all the scattered bits of confetti that stuck to my feet and tracked all around my apartment after I used them for shrubbery; I was still finding pieces when I moved out.

But even though this project has allowed me to bypass what appears to be the toughest part of foley work, I’ve faced plenty of hurdles that aren’t an issue for movies.  Most of them deal with the unpredictable flow of action; while a sound well-chosen, well-edited and well-timed in a movie will be great every time you watch it, events in a video game unfold a little differently for each player.  I have to make sure my sounds meet the needs of the game under every circumstance.

Most importantly, I have to be mindful of which sounds will be heard repeatedly and make sure they won’t be annoying or overbearing.  Something that sounds cool once isn’t necessarily going to hold up over time.  I contributed a few sounds to  Cube Trains.  One of our programmers’ other side projects, as well as a beautiful demonstration of the flexibility of the Frogatto engine, Cube Trains is a puzzle game where you build a track to get trains from one side of a map to another.  The creator initially wanted me to do some big metal clang sounds for the laying of the track, but we agreed that since the player is laying track with every click of the mouse, those would grow tiresome rather quickly.  So we scrapped the clang and went with more of a clink; to get a nice snappy metal resonance without a lot of reverberation, I wound up hitting my microphone stand with a slap bracelet.  The nineties will never die.

Sometimes, I find myself needing to deliver sounds in such small pieces that I have no idea what they’ll sound like until they’re in the game.  In our next release, you’ll notice that we’ve diversified the death animations of our enemies.  As a result, many animal-type enemies now die by bursting into a flurry of bones.  Jetrel’s inspiration was a similar effect from Secret of Mana for the SNES, but whereas Secret of Mana’s enemies skeletonized with a single self-contained animation, ours do so by turning into a bunch of individual and separate bones that bounce several times along the ground.  Secret of Mana had one “bones-rattling” sound synched up to the animation, but I couldn’t do that because our animation’s timing is always different depending on the terrain.  So I did about ten takes of flicking my fingernail against the bottom of one of those plastic ramekins a restaurant gives you when you take sauce to go, and had the game play one at random every time a bone bounced.  Alone, they don’t sound like much, but in practice they make a nice little macabre symphony.

And while the coding makes it easier to sync audio with specific actions, it can also throw me some curveballs.  I feel quite blessed that even with zero programming background Frogatto Formula Language has been extremely accessible.  If I want to, say, add a sound for an enemy shooting something, I’ll just go into the enemy’s data and search for the command that creates the projectile and I can add a command to make the sound happen simultaneously, guaranteeing it will by synched each and every time.  However, as I assume is the case with any programming language, FFL will follow the letter of what I say and ignore the spirit.  For example, I made a sound play every time a particular enemy was injured.  Most of the time it sounded fine, but Frogatto also gets an acid attack that rapidly scores damage over the course of a few seconds.  If this enemy was caught in a patch of acid, the game would play my sound every time damage was sustained, which was all of the times.  So we had to put in an extra condition dictating that every time the enemy was damaged, it would check whether the sound had played within the last few seconds and decide accordingly whether to play the sound.

But implementation aside, this has mostly been a surprisingly simple process for me.  There isn’t much high concept here; I just picture what any given action would sound like and try to make that sound with whatever I’ve got on hand.  Frogatto grabs onto a wall?  Slap my hands against things.  Frogatto spits acid?  Pour some champagne and record it bubbling in the glass (as for the sound of expelling acid from one’s stomach… let’s just say I’m glad I can belch on command).

On the other hand, sometimes I need to make a sound for something that doesn’t exist in the real world and I’m shooting more for a “feel” than a re-creation.  Our forest area has giant spiders that crawl around on the ceiling and try to pounce you when you walk under them.  My microphone isn’t going to be picking up any sounds made by a spider anytime soon, so I was just looking for something sudden and startling.  I made the sound by scratching my fingers across a duffel bag, and topped it off with a little “spider chatter” by rapidly repeating the sound of two eggs clicking together.  We also have some synthetic plasticky golem-type enemies who pop when they die.  Since I didn’t have any plastic golems handy to smash, I made this sound by throwing handfuls of flour against an empty bathtub.

Other times, the real sound just isn’t as pleasing as it could be.  Our last area has spike traps that shoot out from the ground and retract.  At first, I tried to make a mechanical release sound, but it just didn’t do them justice.  So I made a few of those lovely *SHING!* sounds by scraping a hinge across the edge of a glass table.  I can’t imagine real spikes ever making a noise like that, but who’s going to complain?  If you have first-hand experience with spike traps, either your real life is way too cool for you to have any interest in video games or you’re some creepy baron in a dank castle and you probably don’t have internet access.

Here are some demonstrations of the specific sounds I mentioned:

So that about sums it up for my adventures in videogame foley.  If anyone needs me, I’ll be over here spanking an empty bottle of apple juice with a sock filled with BB’s.