<< First< PreviousNext >Last >>
A Game Jam is the gathering of disparate game developers to hurriedly create entire experimental video games within a single competitive weekend. Game Jams often have a theme or objective or constraint to guide the imagination.
Ludum Dare is pronounced "LOO-dumm-DAW-ray" because it's Latin. Ludum Dare is an organized Game Jam, a challenge periodically issued to game developers around the world to make a video game in 48 hours.
A Game Jam was organized through the local IGDA chapter to coincide with Mini Ludum Dare #20. Work space and computers were provided by UAT for the entire weekend. IGDA provided snacks. About ten people were in the room working at some point.
The purpose of Game Jam is to brainstorm experimental game concepts in a context where one cannot afford to inhibit oneself with reservations. It's a good opportunity to quickly test an isolated mechanic or idea without over-thinking fine details. In other words, if you're a perfectionist, Game Jam lets you be spontaneous for a change. Or you could simply think of it as a challenge, like the 24-Hour Comic. If you're too busy to make all the games you ever wanted, Game Jam serves as the excuse you need to prototype that new idea you've been putting off forever. The physical proximity of competitors provides extra mutual encouragement. For some, it's also a way to meet cool people and forcibly learn how to do this stuff. The experience reminds me of those engineering competitions they have at fine universities where students are forced to solve a problem fast and then code like the wind while hoping their decisions were wise. Of course, it helps if you already have a repertoire of techniques up your sleeve.
I've heard about these events for several years now, but I've always felt that I already had a good project to work on instead of wasting a whole weekend making something that would probably be gimmicky and pretty broken. But since people I know were going to be there this time, I decided to give it a shot.
Some use the pressure of Game Jam as an opportunity to work on existing projects or ideas already in mind. But I wanted to test myself. Can I really code something from scratch that resembles a game in 48 hours? I went into this with a self-imposed constraint: in order to focus on programming and interaction, I would use only boxes, cubes, or simple shapes to represent whatever would be in the game in order to eliminate concern for graphical assets such as 3D models or sprites. This means some concepts might be too difficult to visualize, but with this restriction in place, I felt much more comfortable that I'd be able to complete something as fast as these damn kids with their Game Maker tools.
"This sounds hard." Well, actually that's all up to you. You don't have to sleep under your desk during Game Jam unless you really want to.
On Friday at 8PM local time, the topic keyword was announced: Greed. Then there was the stipulation that the game may not contain more than one of any item; every object had to be unique. There was also an optional bonus theme: Fishing. Each game had to be made by a single person, and all assets (graphics and sounds) had to be created within the 48 hours.
I immediately joked that someone could satisfy all the requirements by recreating Fishing Derby so long as all the fish looked different.
After much brainstorming, I settled on the idea of putting the player in a position of power where it would be easy to be so greedy as to ruin the world, and by consequence, himself. This concept eventually took the form of a food chain with the player as the very topmost predator. One must eat to survive, but if any species gets completely wiped out, a chain of extinctions will occur that indubitably spells the player's doom. To satisfy the non-duplicates rule, I would slightly randomize the attributes of every creature on the map (I would like to have randomized their appearances more if there was time). I knew it would be impossible to balance all the numbers in a few hours to create the proper challenge for this to be a game, but I decided it would be a worthwhile experiment regardless. Some of this is based on ideas I got from SimLife (about 15 years ago!) that I've been meaning to play with. Also, I've been meaning to implement this mouse control scheme since I experienced it in a dream.
I didn't actually submit mine to Ludum Dare because they want the source code included, and I'm sensitive about that.
Also, I went over the deadline by a couple hours. I count this as a failure on my part for spending too much time playing with AI, but it might be excuseable considering I was not fully prepared and lost the first couple hours fixing all my code to build on a compiler I'd never used before.
I regret that I did not add sound. I could have used the program sfxr to generate some 1980s style noises, but I kept putting it off until it never happened. I should have just thrown some sound effects in on Saturday instead of "planning" to do it at the last minute.
Technical Stuff: I built my game in C++ using OpenGL and SDL. I used a few utility classes of mine to handle timing, drawing fonts, etc. All of the graphics are simple polygons (some rendered via GLU). I didn't even use vertex buffers nor display lists, which means that the rendering speed could be improved several times, although such issues are of little concern for this experiment. I used a simple grid of containers to reduce unnecessary calculations when checking to see which creatures are near one another; I didn't use a quadtree because my actors are merely points rather than boxes, and their size is 99% irrelevant. When a creature needs to "look around", I only loop through a few nearby containers instead of the entire map; the game would not have been capable of so many creatures without a technique like this.
The hypnotizing movement of polygon animals swarming around one another cannot be conveyed by these still images.
You should check out other people's entries. Many platforms were used, including Unity, Flash, Game Maker, MMF, Lua, Allegro, and... Python. (Didn't anyone use XNA?)
Thanks to Tyler Coleman for making this Game Jam happen and David Koontz for talking me into going.