I participated in the Global Game Jam last year after Chris peer pressured me. The game jam is where you meet up with a bunch of friends and strangers and work to knock out a game in 48-hours. I enjoyed the spontaneously creative environment and the new faces I met. Our game last year, Triune Soldier was something that wouldn't have been made without the Game Jam so I wanted to see what would come out of it if I did it again.
This year, Chris wasn't able to participate because he was caught up in moving into a new apartment. That was a bummer but my coworker Alex was joining in so I was planning to work with him and whoever else I met along the way. I showed up late again this year and wasn't able to find my coworker. When I made it to the GamePipe Lab, I found my teammate from last year, Gabriel, and his team working out the game concept. I decided to jump right in.
The theme for this game jam was "Extinction" -- like what happened to the dinosaurs. They were working out a concept involving a guy swatting mosquitos. The game was being created in Unity 3D. When I got there, Gabriel was pitching a sort of departure from the concept, trying to simplify the idea and abstract it to make it something more reasonably attainable in the short 48-hours.
The concept was less literal. Instead of mosquitos, the players were destroying these docile "white balls". The personality of the balls was to be communicated by how they reacted and animated. Gabriel wanted to communicate the story through the movement and sound design similar to what's exemplified in the Heider-Simmel demonstration or the classic Chuck Jones animation The Line and The Dot. This direction was majorly influenced by Gabirel having to pull an all-nighter last year to finish up the artwork and animations for Triune Soldier. I supported the direction to go abstract. We were working in 3d and didn't have time to create, setup, and animate assets. And we were working in Unity, which none of us had created any finished games with before.
This new direction created a divide within the team. Our lead programmer was set on creating a literal concept. And even when explaining that the gameplay would remain unchanged, just the presentation would differ, he couldn't agree to work on something with an abstract direction. The argument against the literal direction was basically scope related: we didn't have assets, mosquitos would be hard to read visually in a 3d environment, there's more expectations of what the player could do (jumping, collision with objects, environment, etc.) He insisted that wasn't gonna be a problem but if there's anything that I know to be true, everything in 3d takes way longer.
I strongly backed Gabriel's idea because it was fully conceptualized. He drew up mockups of the style, rendered a short 3d Studio Max animation of gameplay, created a first pass at sound, and the story had a beginning and end. This was hard evidence for his concept. My support for the abstract direction was a bit of a surprise to Gabriel as I was adamantly opposed it last year ("I don't want any abstract bullshit I wanna see some characters and a story!" haha ), but I was more open to it now that we were working in 3d and he already drew up mock-ups for the concept.
So anyway, shortly after I joined, I broke off into another team. We were wasting too much time arguing and we needed to move forward confidently. I booted up Unity and began setting up a scene for Gabriel's concept.
I had mentioned briefly that none of us had completed a game in Unity before -- Flash is my area of expertise. I'd done some tests and tutorials before and between the arguing I was giving our developers Jacob and Vishak a primer of what I knew about Unity. Basically how to setup a scene, link code to objects and instantiating objects. Jacob was set to do AI for the game, he'd done a lot of stuff in C++ and C# and was planning to implement some concepts he learned from an AI book. The split of our team didn't affect him much because his AI code could be used for both projects, as the concepts were practically the same!
That was the first night. The next day, I came in with a basic demo of the game. There was a player with movement, enemy spawning, and some basic shaders applied to them for a graphic look. That morning we got an e-mail from Jacob saying that he wouldn't be making it back but he sent the AI code he created. I spent an hour or two implementing the enemy code. Throughout the day I worked to get enemy targeting and destruction working. Vishak was handling UI and sound related things. One of the game jam organizers, Mihir, served as our tech-support and goto guy for Unity help as he was in the lab with us and he had finished some Unity projects before. That night Chris H. made it to the game jam and joined our team, offering a variety of abiltiies.
On the 2nd night, I punked out and went home early. I wasn't intending to burn myself out over the game jam, because that sorta negates the benefits of it for me. Overnight Mihir joined the team officially and took over -- working to implement all of the features that weren't in there. A proximity based enemy targeting system, new modes of enemy behavior, sound and more. When I returned on Sunday, the game transformed a great deal.
On the final day, the rest of the team mostly polished bugs. Working out the enemy movement, sound effects, adding the title screen and whatnot. I pretty much just sat back and watched, and uploaded it when it was done. The result was great and it was great to see everyone pull it off and smile at the result.
I'm looking forward to Game Jamming again next year!
Game: Download devoid (about 40MB)
Source Files: We've released this Unity project as open-source.
- Download the source files here (187MB). Requires Unity 3.1.