Beginning last year, the famous language software company Rosetta Stone, based in Harrisonburg, VA, decided to host a game jam. A game jam is a contest or competitive event involving teams wherein participants endeavor to build a video game from scratch within a short time frame. Most game jams are done in two days or less, and most are competitive in the sense that they are adjudicated and the teams and projects are ranked, with prizes going to the top performers. Most game jams are themed as well, requiring participants to make a game that conforms to a few specific ideas rather than letting them make whatever they wish. Most game jams do this to get more innovative results, but also as part of ensuring that the games are completely created on-site — including the design.
Rosetta Stone’s first jam, in 2010, stipulated teams of one to four persons and a thirty-six hour time frame, from 9pm on Friday to 9am on Sunday. The theme was given out ahead of time: “Make a game that teaches.” That jam was a great success with ten teams participating. The team we brought — myself, William Miller, and Jack Cooke — emerged the winner with our game about viruses in the human body. It was such a positive and inspiring experience that we resolved immediately to return the following year. 2011 came, and a new jam was on. This is the story of what happened.
The format for the 2011 jam was nearly identical to 2010. Rosetta Stone narrowed the team sizes to two to three persons. They also cast a wider net, drawing over forty applications. Eleven teams were selected to attend, divided into professional and student divisions. Prizes would go to the top two teams from each division. They also concealed the theme until Friday evening just before the go-hour. Several weeks before, each team was invited to submit three nouns that could be themes for the games. Rosetta Stone picked three from this pool, and revealed them just before we began. The chosen themes were “Exploration,” “Layers,” and “Ink.” Much head scratching and smirking ensued. Undaunted, we broke to our designated areas and got to work.
9pm Friday (-36 Hours): With a design to bang out, we arrayed ourselves in front of the whiteboard and started tossing around ideas. “Exploration” was a throw-away theme — virtually every game involves some kind of exploration, and any idea that seemed to lack it could be modified to include it with minimal alteration. “Layers” was likewise less compelling, being broad and open enough to interpretation that we were confident it would fold naturally into any design we chose to make. “Ink” was by far the trickiest and tastiest prompt. Ink as writing or language was obvious, but probably too obvious, and language games are risky. We jokingly tossed out ideas about squid, but quickly let those go as lame and unoriginal (this turned out to be prophetic as at least four other teams made games involving either a squid or an octopus). A rare connection between the term “ink” and tattooing came up, but presented no game mechanics. Similarly, thoughts on brush and ink painting, such as sumi-e, seemed compelling but revealed no game. The discussion grew more abstract until we hit upon the idea of taking a symbolic cue from “ink,” i.e. ink as a symbol for permanence. “Written in ink” is an idiom signifying something is certain and immutable. Ink is held to be the opposite of pencil as it cannot be erased. Running with the idea of permanence and impermanence and returning to a premise based on sumi-e, we blocked out the game:
- The player would be an ink painter or calligrapher, of Asian stylings.
- Their task would be to traverse some terrain. We took inspiration from sumi-e paintings and chose a mountain, using traditional platformer mechanics.
- The player would have a secondary ability to use ink to paint permanence or impermanence into the terrain. Their brush would add or subtract from the world and reveal the path for their character to take.
- Finishing off the Asian theme, they would be able to paint in a heavenly world that lay overlaid onto the mundane world. The mountain would be one reality, done in cool tones, and the heavens would be the layered reality done in warm tones. Painting with ink would hide one and reveal the other wherever it was used.
Game design done! Time to get to work.
10:30 pm Friday: We scoped it to three levels, generated an asset list, and chose a custom implementation done in C as the engine of choice. Will felt confident he could create a tile-based platformer engine within a day, and I agreed to let him. Jack began cranking on the asset list, starting with mood paintings to establish the color schemes before beginning on the two tilesets we would use to build the levels. Prevented from doing hard coding while Will was laying in the engine’s foundations, I planned out the three levels and the layered realities that would make up the player’s platforming experience. These were drawn on the whiteboard for everyone to comment on, and when they were agreed to I began blocking them out using our level editor tool, a free tile-based map designer called Tiled.
11:30pm Friday (-34 hours): With the backbone of the system in place on his Mac, Will diverted to helping me set up a Windows build on my laptop so we could work in parallel. We set up version control using Git and asset sharing using Dropbox. With Jack nearing completion of the basic 9-slice tiles for both colors, we cleared up a few ancillary logistics tasks and packed up for the hotel.
During the 2010 jam, the guys pretty much let me run the show in terms of priorities and schedule. A “schedule” for three people over a day and a half is a misnomer, but I did recommend that we try to sleep on the first night and plan to work through the second, rather than the other way around. We bunked in the hotel from midnight to 6am, returning to the site in time for breakfast. That proved to be an perfect use of the time, keeping energy levels high and ensuring that our subconscious minds had a couple REM cycles to crack the tough problems we were likely to face during the dev-heavy day. It was down to the wire getting it all done, but we scoped well and everyone agreed the modest night’s sleep was invaluable. Back for the 2011 jam, we saw no reason to change a winning strategy. We bundled off to the hotel shortly after midnight with alarms set for 6.
7am Saturday (-26 hours): Up in time to pack up and get some breakfast courtesy of Rosetta Stone, and we’re back at it. Will is moving into the core systems including physics, sound, and animation. Jack rolls back into the tilesets.
12pm Saturday (-21 hours): Lunchtime. Jack is done with the foreground tiles and is animating the main character. As the systems come online and the codebase is robust enough to support higher level dev, I get into the action and start on the character controller. We have two core systems that make the game: the character and his platforming movement, and the tile swapping ink blot. Will is on the ink, I’m on the character. Once I’ve got him moving and jumping and steering right, I can toss him into the levels and start tightening them up. I have to predict what will be fun or challenging to move through without the tile swapping system in place, so the levels end up being built full of holes and deliberately cramped and awkward. I’m counting on the two layers not being visible and colliding with the character at the same time to keep movement smooth. Will has rolled into the collision generation and re-generation based on the ink blot. A funny moment ensues: he’s trying to imagine a way to recalculate the world collision areas when you click the mouse and turn a collection of tiles on or off. He’s been going back on forth on ways to do this piecemeal, working only on the selected tiles. After listening to him for a while, I say, “why don’t you just recalculate the whole map?” He begins to protest that that could be a performance nightmare when he realizes that, with a relatively small number of square collision tiles in each map, it really wouldn’t be. He writes it; it works perfectly.
4pm Saturday (-17 hours): The character controller and level objects are complete and I am remaking the maps — the character can’t make all the jumps I thought he could make, and I need to rearrange large portions of each level. Will has moved on into working out the visibility blending via the ink blot texture. Jack is working on decorations and background tiles, and nursing a headache. We found out when we arrived the day before that he had his wisdom teeth taken out earlier in the week. He’s still on Vicodin and is trying to ration it to keep himself pain free without risking getting loopy or damaging his liver.
Outside the sun begins to go down as the final night comes on. We’ve used about half of the time we’ve got. From here, things look good — we only need to finish the visibility swapping mechanic and tie it in, toss in some music and sound, and take one more beauty pass over the levels.We don’t know it yet, but this will prove to be a far hairier endeavor than we expect, and will take our game’s completion and the lynchpin of the whole idea down to the wire — literally within sight of the end.
Continued in Part II.