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.