My wife and I attended the HOGJam #1 and HOGJam #2 events in Seattle. At these events, known as game jams, a theme is announced, teams are formed, and then people work together to create games in a short period of time. This article will discuss the two games that we made in these events.
We formed a 2 person team where Judy Haber did the art, and I did the programming. I have spent a lot of time over the last few years developing my own game engine and tool chain, and I took these events as opportunities to test out the effectiveness of the tools. All sound effects are procedurally generated from Leshy SFMaker. Sprite sheets, sprite maps, and build scripts were made with Leshy SpriteSheet Tool. Levels were designed with the integrated editor in the game engine.
Due to the time constraints of the game jams, neither of these games have been optimized for mobile devices. They were developed with Google Chrome, and for optimal performance and behavior should be run with the desktop version of Chrome.
The first HOGJam was a 32 hour event. The announced theme was "perseverance."
We decided on a game involving a prince that intentionally gets himself turned into a frog so that he can escape the castle and live a peaceful life at the pond. Along the way he encounters many obstacles, but he must persevere. In the first level the prince-frog navigates his way through the kitchen, avoiding chefs who want to cook him. In the second, he works his way through the castle courtyard, steering clear of princesses who want to kiss him, and in doing so return him to his prince-form. The third level was going to involve a forest and end with the pond, but we ran out of time and never worked on that level.
We knew going in that 3 levels probably wouldn't be completed in the schedule. It is very nice when at the end of a game jam you have a complete game. In retrospect, I think that we would have been better off scoping down the game instead of ending up with something incomplete.
We used Box2D for physics. The song Nin10Day by Stratkat is used as background music. This was part of the Open Bundle, which is a great collection of public domain assets for game developers. For the web release I lowered the quality of the audio a lot. Go to the Open Bundle to hear the original in its higher quality.
Since the jam a few minor changes and fixes were made. Some artwork was simplified to reduce file size for the web release.
The game turned out well, but it ends too quickly. The look and feel does work, and the music brings it together nicely. If the third level is added in at some point, this could be a nice small game.
The second HOGJam event was shorter. There were less than 24 hours of time from the announcement of the theme to the end. The theme was "Free Chicken, Weird Chicken."
After trying to figure out what to do with the theme, we chose to make a tower defense game where you have to stop increasingly weird chickens that have escaped from a farm from crossing the road.
The game uses Box2D out of convenience, even though it isn't really necessary. By using Box2D I didn't have to write a whole lot of other code for handling the world simulation and collision detection. The game jam was short, so anything that could save time made sense.
Learning from our mistake at the prior jam, we considered what parts would be necessary for the game to be complete and focused only on those. We had other ideas (such as cars that run the chickens over,) but they were not considered necessary. The plan was to work on them only if we had extra time, which we did not. Animations were also considered unnecessary for a playable game, and so we never got around to making them.
My game engine didn't have many of the needed dynamics for tower defense games built-in, and so a lot of code had to be written. It was a late night, but by around 5am I had all the necessary features in place. I got a few hours of sleep and the next day all that remained was demoing the game.
The original plan was to implement paths for the chickens to follow to make this more like a traditional tower defense. As it progressed, I didn't like how that was coming out and how long it was taking, so instead I gave the chickens a jumpy random AI with a poor-mans flocking algorithm. Since the chickens were now able to go anywhere, including into the towers, I decided to try allowing them to damage the towers. This wasn't part of the original plan, but the dynamic seemed to work, so I continued building off that.
After the game jam a few updates were made, mostly to balance the gameplay and adjust the difficulty. The cannons were made stronger, the dollar rewards were adjusted, and the waves were made more interesting. I kept tweaking the difficulty of the waves until it was clearly possible to win, though hopefully still challenging. Adjustments were also made to the art in order to reduce the file sizes.
I am very happy with how this game turned out. In less than 24 hours a fully playable game was made. The game is somewhat fun, though it really needs more types of chickens and towers to keep it interesting.
The game jams have been a great way to test and work on my game engine and tools. Throughout the events many fixes and improvements were made. The downside is that by going this route and using my proprietary engine I have been ignoring the social part of game jams, and so in the future I may attempt to join a bigger team.
I've made the same mistake in a couple game jams now, but I think an important rule is to make something that can be finished within the time-frame of the jam. Finding time afterwards is often difficult, and it is much nicer to have a simpler game be fully playable then to just have an unplayable tech demo.
Tomorrow's Gamer has an article about the first HOGJam. It contains descriptions of each of the various games produced, and it may be found here.