The Indie Game Jam
Accessing the Source Code

Machines generously loaned by Intel

Hosting and source code control provided by
SourceForge Logo

The Indie Game Jam Source Code
The source code to the Indie Game Jam engine and all of the games is open source, available on SourceForge under the GNU General Public License.

Note: The sprites used by the games are copyrighted and not open source. Please see the sprites page for more information.

All of the games and the engine are in a single CVS tree on SourceForge. All of the games are Win32 OpenGL applications, and are compiled with Microsoft Visual C++ 6 (except Wrath, which is compiled with VC7). If you'd like to port the games to another compiler or operating system, please feel free (send mail to checker'at' and we'll make the code available.

Each game is in a different branch on the tree. You can figure out which branch a specific game is on by looking at the game's description. The trunk (or main branch) of this tree is the latest version of the engine code, with the most bugs fixed.

The decision to put each game on a different branch has pros and cons. On the upside, putting each development machine on a separate branch enabled each programmer to modify any code he wanted without worrying about screwing up anybody else's game. Almost everyone modified the core engine files in some way or another. It also allowed people to team up by syncing to the same branch. The downside is that each game has a different version of the engine, and bug fixes do not automatically propagate to the branches (and CVS makes it slightly painful to merge from the trunk to a branch). So, the game branches all have different bugs and fixes. Such is the price you pay for enabling people to hack away for maximum productivity.

The main trunk of the CVS tree has three games on it and the latest version of the engine code. If you're starting a new game, use the trunk. The three games use a simple function pointer dispatch data structure and a much more modularized window system interface file, so it is much easier and cleaner to develop a new game with the trunk than with one of the other game branches.

If you have bug reports or fixes to the engine on the main trunk, please use the IGJ project page ( to report them.


  1. Get CVS set up on your machine, and get it working with SourceForge (either make an account or use anonymous CVS). SourceForge has tons of excellent documentation on how to do this.

  2. Follow the directions on the IGJ project CVS page and check out the source tree. Feel free to browse the tree with the web-based browser first to get a feel for it. All the IGJ0 code is in the 0 (zero) module.

  3. Once you've got the tree on your local machine, switch to the branch you want to work in, or stay in the trunk. The branch names are listed with the game descriptions. Remember, branches are "sticky" in CVS, so you'll have to explicitly switch back to the trunk if you want to access the latest code.

  4. Download one of the game binaries to get all the sprites for that game/branch. You can also rip your own sprites if you want. You should have a directory that has the main source code and binary in it, and then you should have subdirectories called sprites and data and optionally wads. If you rip your own sprites, you'll have a dudes.html file in the main directory that will contain thumbnails of all the sprites and their animations, for easy access when you're creating a new game or modifying one of the current ones.

  5. Load the MSVC workspace file and compile. Remember that MSVC will put the executable binary into a subdirectory that corresponds to your selected build-type (Debug, Release, dbopt, etc.). The binary is called igj0.exe.

Return to Indie Game Jam Home
Chris Hecker <checker'at'>