Postmortem: The Floor is Jelly

I met Ian Snyder standing on the GDC Expo Floor back in 2012. He was showcasing his game ‘The Floor is Jelly’, a nominee for the IGF Student Showcase that year. The game was a platformer, and a bit of something old made new. I loved the aesthetic of the demo, as well as the gelatinous physics that made up most of the game’s interactions. I could not imagine the lengths to which experimentation would take this game over the next two years. Despite the game’s lack of success, I feel very fortunate to have been a part of the process.

I played the demo for a bit, and we spoke about the mechanics and the audio. I loved the organic, floaty aesthetic that he had already started coming up with for the music. Acoustic instruments weaved in and out to create pleasant, persistent landscapes. A week passed, and Ian reached out to me over e-mail, looking for advice. We sought to understand what the potential for audio in this game was, in a way that would help create a solid plan of action. We talked about our favourite examples of sound in other games. We spoke about some of Ian’s music prototypes, and my past work on projects like Fez and January.

It became apparent that we envisioned similar things, and so we decided to work together on The Floor is Jelly. After many long conversations, we set out to first create a system for the rain world in the game. The idea seemed simple enough in the beginning; each raindrop plays a note. After months of working on this idea, we had an in-game editor that used rain drops to generate chords. You could have chords change as the player moves from platform to platform. We also made bounding boxes, invisible planes that you could step through to play a note. All this tech was exciting, but the caveat turned out to be severe. The system overpowered the frame rate. Flash (the architecture of our game) limited our optimization options. So we decided to put the system aside and move on to more traditional implementations.

In the last two weeks of development, I got as much work done on the project as I had in the previous six months. I worked on the game on and off for two years. But looking back, I feel that I could have done better if I had showed up earlier and more often to work on the project. One of the most frequent obstacles I’ve faced as a freelancer has been the tendency to procrastinate and push “non-essential” work back. Juggling multiple projects sometimes requires a sense of prioritization. Of course, the lesson here is that the work I care most passionately about is all essential. If I had taken on fewer projects or asked for help, I might have been able to give The Floor is Jelly the extra attention it could have used. I am very pleased with how the work turned out in the end, and many of the methods and ideas were a direct result of working under a tight time restraint. They may not have happened otherwise, so it’s hard to use the word “regret”. However, it’s easy to imagine that we could have done some truly sophisticated things if only I’d dedicated more time.

One particularly interesting and slightly disheartening thing I should mention is that a lot of the ideas that were brought up in our initial e-mails fell by the wayside, and many were never even tried. I think part of the reason this happened is because it took so long to get really off the ground. I worked on the project in spurts, never for more than a few days in a row before moving on to something else. It was only towards the very end of production that I was working on the game every day.

In hindsight, all signs for me point to starting on projects early and setting aside consistent time to work on a single project. I have experimented with different ways of working over the years, including splitting my weekly time up between projects to stay on top of a lot of work. I think that cohesion of the work can suffer, as well as the possibility for thoroughness. I want to focus my energy on one project at a time when I can, instead of jumping back and forth too much.

For more info about the game, visit The Floor is Jelly website.

Tidbit: Roadblocks as Stepping Stones

While at Berklee, I took a Game Audio class with Michael Sweet. Earlier this year, he asked me to share an experience from my career for his recently published book, ‘Writing Interactive Music for Games’.

We spent months prototyping a music system for a series of rain levels in “The Floor is Jelly”. The system played an individual note for each drop, as it hit a surface. These drops generated harmonies that changed as the player moved. We even made an in-game editor. Unfortunately, playing a sample for each drop was too CPU intensive. Our system trashed the frame rate. The issue crept on us because we prototyped the idea using a sparse amount of rain. When we found we couldn’t increase the notes and droplets together, we had to scratch the whole system.

Instead, we created short loops of rain-like music that change as you progress through the world. The frequency of rain is great enough that synchronizing with each droplet was unnecessary.

For ‘Cannon Brawl’, we prototyped another system. The music comprised of four bars; two for the blue team on the left side, panned to the left, and two for the red, panned to the right. The concept seemed sound; the notion of two marching bands, in a never-ending call and response. The intensity of each team’s band fluctuated, depending on the game state. While this idea seemed great on paper, “trading twos” turned out to be annoying.

The final solution involved a longer piece of looping music, made up of many stems. Certain instruments represent each team, and are often panned to their respective side. When either team gains a level, the appropriate stem gets added to the mix. The concepts of our first prototype informed the simpler solution we reached.In both cases, our 'what if’ approach created useful roadblocks on the path to the final solution.

'Rain' from the Floor is Jelly

This is a demonstration of the audio system for the rain levels from 'The Floor is Jelly'.

Sound by yours truly. Track is available here.