This weekend was the Full Indie Game Jam 2013! A Game Jam is an event where teams are given 48 hours to make a video game from scratch. Needless to say, this is a very challenging endeavour! Most full video games take upwards of months or years to create, so in order to make a game in 48 hours, you need some combination of good design, small scope, and/or highly honed skills.
To see the second game we created, skip to the bottom of this post or click here: http://shaunevans.net/evilgenius/
Keep reading for the story about making a game in two hours.
The weekend started out great. I hadn’t come to the event with a team, but fortunately I met a great group of developers and artists. The theme was announced: “Evil Genius”. We slung down our laptops and set up at a corner table and started brainstorming. After tossing around and discussing a number of ideas, we settled on a stealth/puzzle game involving three little monsters trying to escape from the laboratory of an Evil Genius. Gameplay would be similar to The Lost Vikings, except with a top-down view and point-and-click interaction. Each monster would have an ability that would help the other monsters get through the maze:
- Stinky would emit a cloud of gas that would block camera’s vision – a camera wouldn’t see him, and he would block line of sight to other monsters. By using Stinky, the player could sneak monsters past cameras that otherwise would trigger a nearby turret.
- Slinky was able to fly, allowing him to reach areas that were inaccessible to the other monsters.
- Ugg was super strong, allowing him to push crates around. If a path needed clearing, he was your man… er, monster.
The player would control one monster at a time, and would use each monsters’ ability to get all three to the end of the level, avoiding traps like turrets, lasers, and pits full of spikes.
With the above design fleshed out, I decided to head home and catch some sleep before the dive into level design and code. Unfortunately, when I arrived at home I found I had caught quite a chill. Wracked with sickness, I ended up being unable to attend at all on Saturday.
Fortunately, my sickness cleared up Saturday night, and by Sunday morning I was able to make it back to the Game Jam. I contributed a few level designs and solved a few bugs, but I was unable to contribute more. Art and animation were nearly complete. I was happy to see that my teammates had designed and implemented several impressive systems, such as stealth mechanics, A* pathfinding, and all of the monster abilities. This was especially impressive as three of our programmers (who implemented these systems) had never used Unity3D before. Everyone on my team had done an exceptional job.
Unfortunately, as the Game Jam deadline of 7pm crept closer, my teammates started noticing several errors and incompatibilities between the systems they had all created independently. To elaborate: each system (pathfinding, monster abilities, graphics, and stealth) had all been created more or less independently. This almost never happens in a work situation, but in a Game Jam when 48 hours is all you have, sometimes it works to make everything separate and smash it together at the end (without breaking much). Unfortunately, this was not one of those times. Having no experience with the code that had been written (due to sickness), I had to stand by, helpless, as my team tried to get everything working.
At 5:00pm, with two hours to go before the end of the Game Jam, I decided to see what I could do to make a game out of the art and animation we already had. I figured if the game got put together, we could use it as an intro screen, and if the game didn’t come together completely, we could demo this as its’ own game! And if I failed, nobody would know.
But what to make? I knew I couldn’t put anything complicated together in two hours – I had to really manage my time. We had all the graphics for the old game already done, and the little monsters looked really cute. Wouldn’t it be fun if they could jump around?
I had some old code lying around for a physics based platformer game I had started with my friend Pat, so I hurriedly copied that into a new project along with the graphics from the Game Jam. With some tweaks and ripping and tearing and mashing the keyboard, I had one of the little monsters jumping around in a box. Next step was making the world look pretty – I mashed whatever looked good into the background, and added a crate texture to some of the blocks, along with making a border. The fancy camera effects had already been put in by our artists, so soon I had a single monster jumping around in what looked like a testing lab.
I thought it would be fun to have to avoid lasers and stomp on turrets, so I started putting in that code, but quickly decided I couldn’t do it in the remaining 50 minutes. Instead, I would just copy the code from the first monster and make the other two monsters jumping around. Then, whoever was left would be the victor, and all of a sudden I had a game similar to TowerFall. To spice things up, I gave each critter a unique ability. Giant would be able to stomp, Batty would be able to fly and drop bombs, and Slime would have an electric forcefield that would slowly damage everything around it. Since I didn’t have controllers, I made each character use a set of four keys on the keyboard, like old-school Liero, so each of these abilities would be accessed by pressing their respective down keys.
Coding all of this in two hours seems like a madman’s delusion. I ended up taking several shortcuts, like a switch based on the monster’s type to change what the down button did, global variables to store needed information between two functions, and using player prefs to store each monster’s score! The code behind it was a bunch of hacks, but it worked!
With some jockeying, three people could play the characters at once, one with WASD, one with IJKL, and the other with 8456 on the numpad.
With 20 minutes left on the clock, I asked some of my teammates who weren’t involved in the other game’s merge attempt to test it. After killing each other a few times, they loved it!
I quickly got assets and ideas shoved into my hands: an audio music track, an evil overlord to watch behind the glass as his minions fought, and ideas for a scoring system. I quickly added those to the game and before I knew it we had a fun little game! (In adding some of these additional features, we did go over the Game Jam time limit, but I figured we might as well put a little more effort into making it look a little better)
After a bit of polishing, we got up on stage and presented both of our games to the audience, with great reception!
The first of our games, the puzzle game, we weren’t able to finish completely, but had amazing programming behind it. Alas, the colliders hadn’t been placed properly in the rush, so you couldn’t escape the first challenge. With a few more hours, the team would have had the whole puzzle game working well, but that’s the nature of Game Jam.
You can play the smash ‘em up platformer game here: http://shaunevans.net/evilgenius/ With three people playing at once, it’s a lot of fun!