The video of the development of Cogri Is Missing for Ludum Dare 27. It actually cuts off the first several hours (I’m not sure how many). My autocapture script was stopped at one point, and when I restarted it I forgot to update the starting value for the image names, so it overwrote images 1 through 2000 or so. But, it’s mostly complete.
I did the Ludum Dare compo this weekend! A 48-hour solo game jam. It was challenging to try a jam solo, and even though I didn’t care for the theme I enjoyed the experience. I have a timelapse video to cut together to show the process — that and a full postmortem will follow soon. In the meantime, check out my silly game, “Cogri Is Missing”
Here is a gameplay video of our 2011 Rosetta Stone Game Jam entry, Notan. For an explanation of the game and what is going on here, see the two previous posts on the making of this game: The Baltimore Eulers at the 2011 Rosetta Stone Game Jam Part I and Part II.
[hana-flv-player video='/notan.flv' width='640' height='480'/]
Visit Rosetta Stone’s Careers page on Facebook for all kinds of good things, including photos and video interviews with all the teams.
This year, I, along with teammates William Miller and Jack Cooke, returned to the second annual Rosetta Stone Game Jam to try to win back-to-back 1st Place titles. This is the story of what happened (continued from Part I).
The sun is beginning to set outside as we pass the half-way point of competition hours. Setting aside six hours the night previous for sleep was a calculated maneuver to preserve high functioning, but with fifteen hours to go we need to make that count. Most of the big work is done. Will has written a fully functional 2D game engine in C in about as much time as it takes a normal person to run their weekly errands. But we have little time yet to appreciate the magnitude of that accomplishment as all our focus is trained on the work remaining.
7pm Saturday (-14 hours): Dinner break. Rosetta Stone caters three meals on Saturday and takes the whole competition out for banquet meals Friday evening and Sunday morning. While lunch was a more lively affair, dinner is somewhat austere. Competitors arrive haphazardly and do not linger, gathering food to take back to their work rooms. It has been some hours since we spoke with anyone not on our team, and sightings of fellow participants in the halls are getting rarer. The whole building is quieter, too.
Back in our room, I am completing the level tuning. Will is arm-deep in OpenGL, trying to separate the map data into separate render targets and passes so he can blend between them. He’s begun muttering to himself — talking himself through the tedious process and the bugs that are arising. We’re approaching the threshold beyond which fatigue will begin to inhibit the ability to remain in the abstract frame of mind necessary to program. For the first time, we begin to feel the hours we have left.
11pm Saturday (-10 hours): Not long ago Jack went down for a brief nap, hoping to take the edge off the headache that’s been building since midday. I’ve copied over all the latest assets from him and I am decorating and trimming the levels with the final art. It’s a good task for nighttime — mostly mindless, and mistakes are easy to spot. It’s been a while since any of us needed to speak to each other. We awoke at a reasonable hour today, but adrenaline levels have been high with the excitement of the event, and now we’re beginning to feel the effects of prolonged exposure. Small irritations are starting to become noticeable, and the quality of light and heat in the room begins to feel incorrect. We stay quiet, and work.
3am Sunday (-6 hours): The levels are done. Jack recovered, made a swath of new decoration sprites and a few re-dos at my request, then went down for another nap. Will has succeeded in getting the rendering system to display layers exclusively and recognize transition, but he’s blocked trying to get the ink blot texture to display properly and cause the renderers to swap with the mouse and the camera moving around it. Now trudging through sound effects and music I am largely oblivious, but I am aware that both of us are low on cognitive resources. We aren’t panicking yet, but we realize that if the game is going to work with all the systems in place by 9am, it could mean a death march.
6am Sunday (-3 hours): “Winning time.” The final stretch when everything either comes together or all is lost. The margin could not be thinner: the one mechanic we need, the one system that ties the whole game together and makes it unique and interesting, is the ink blot. And with mere hours remaining, after hours spent in dogged, wretched struggle with an obtuse system and his own weakening constitution, Will states aloud, “I don’t know if I’m going to get it.”
Having completed the level work and finished linking in sound, I’ve been brooding and pacing about for some time. My faith has not wavered until I hear this, like an icy chill. Will pledges to keep trying, and with no recourse I busy myself helping Jack make last-minute polish passes and setting up a credits screen. Finally, at loose ends, I’m looking over Will’s shoulder as he works through the bug. Every step seems to make sense, but it’s so hard for us to tell any more. We both seem only dimly aware of the code changes being made and the formulas being rearranged. Suddenly, a breakthrough — the blot renders the transition, but it looks burnt out, like someone picked the wrong blending mode in Photoshop. I realize the problem almost at the same moment Will finds the solution… invert the ink blot from black on transparency to white on transparency… and it works.
We both sag into our chairs, with a slow high five and a grin.
8am Sunday (-1 hour): Working with a new frenzy thanks to a fresh rush of endorphins from the breakthrough, we’ve managed to tie in the credits screen to a newly-made ending level, and we’ve tossed in some level-hopping cheats. We need to make sure that if we fail to play our own game well enough to advance, we can still show off all the levels. A few last-minute updates to the tileset from Jack go in, and Will makes a clean build to test on Jack’s laptop. Both of us are shaking badly enough that moving the mouse and typing require concentration. We get a last little heart attack as Jack’s computer appears to fail to recognize mouse input, breaking the ink blot mechanic, but it turns out his Command key was stuck down. Shaking with fatigue and adrenaline withdrawal, we move the files onto the provided jump drives and walk with nervous relief up to the reception desk at Rosetta Stone to hand it in.
I can recall little of what happened between then and the judging. We lounged about on couches until it was time to go to the restaurant, and then we enjoyed the presentations until it was time to give ours. Ten minutes is only just enough time, and as the speech-giver I found it hard to keep my sentences clear and descriptive after twenty-six hours awake. I managed to convey our central ideas, our creative choices and process, while Will played it on the projector behind me. People paid attention well, and they asked thoughtful questions about things like multiplayer options, the range of replayability in the game, and expansions to the ink blot mechanic. When our time was up I felt I could have said it better, but people came up to us continuously to comment that they thought it was excellent and that we had presented it well.
By this point, we had resigned ourself to the prospect of an average finish, and found to our pleasure that we felt good about that. The magnitude of what we had undertaken, especially compared to our work the previous year, reinforced that we had done ourselves proud, whatever the judges might say. We were all enamored of our idea and pleased with the results given the time frame. The C engine alone was a stunning achievement — even the Rosetta Stone code reviewers seemed hesitant to believe Will had written it all in a day and a half. And by this point, even one person coming up to us to say he thought the game was brilliant would have been enough.
However, we did get a little more 2nd Place proved to everyone that last year’s victory was not a fluke, and that we were a top tier team capable of standing up with the best that two years of jams could muster. More than anything, the jam gave us a renewed feeling of worth, a confidence in our ability as game craftsmen. If any thought could sum up the experience of finishing a game jam like this (let alone winning a prize), it would be “if we can do something like that, in this place and under these extraordinary circumstances, what could we go and do next?”
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.
Last year at the first annual Rosetta Stone Game Jam, I went to compete with William Miller and Jack Cooke. It’s was a thirty-six hour competition with a simple theme – “make a game that teaches something” and our project about viruses mutating and invading a human body, called Pathogen, won 1st place.[View a post-mortem on the win at Will's blog here]
This year we returned to the 2011 Jam eager to defend our title. The jam was revised somewhat, dividing the eleven competing teams into student and professional divisions and drawing their entrants from a much wider and more capable pool of applicants. The projects and participants were more sophisticated and interesting, and their games better crafted, than last year by far. It was truly a challenge among peers, a real competition. And as the judges ruled, we were honored with 2nd Place in the pro division.
Describing the competition as several steps up the tiers than the 2010 jam may sound like an excuse, but I assure you: it was a terrific jam and a tight competition. There were creative and well-executed games from many parties, many games that impressed me and challenged any notion of supremacy lingering from last year’s win. And the project we made — a puzzle-platformer with malleable reality called “Notan” — was a giant of a triumph for the three of us. It represented truly heroic effort from Will and Jack, who in twenty-nine hours along with me accomplished more than we had ever thought possible in such a span of time. We are all immeasurably proud of our result, and not at all perturbed with the almost-victory. The rewards for 2nd are swanky enough to please anyone, anyway!
During the next week I intend to write a complete retrospective or post-mortem of our experience at the jam. As I have now been awake for thirty-six hours, I’ll wait to start that until tomorrow. “Notan” will also be up online somewhere, soon, for playing. Watch for links to that.