basic rules

  1. The source code for your entry should be less then (or equal to) 4096 bytes.
  2. Only ANSI C and C++ are allowed.
  3. You have to use SDL (or glut).
  4. No other API calls allowed.
  5. No external data files, just code.
  6. Sound is allowed.
  7. ESC quits.

detailed rules

Some of these rules may seem a bit harsh, but please keep in mind this is an open source compo. Most of these rules deal with getting your code to be portable - the voters would like to be able to run your entry on Win32, GNU/Linux, and even Mac OSX.

  1. The size limit for all the source code in the project is 4096 bytes, this doesn't include makefiles/projects or whatever you use to build it. Whitespace (space/tab/newlines) is not counted for the size limit, however the `real' size of your source files should not grow beyond 8192 bytes.
    The real size of your source files is the size you see with dir or ls -l (this should be <= 8192 bytes).
    We're using the following command to calculate the size without counting whitespace (should be <= 4096 bytes):
           cat source.c | perl -pe 's/\s//g' | wc -c
    Using compiler switches to add source code at compile time is strictly prohibited (that means no funky -D tricks in the Makefile guys).
  2. You are not allowed to use compiler extensions, only ANSI C and/or C++ is allowed.
  3. You have to use LibSDL to get a video buffer to play with :). This cuts down on overhead for the window init and msg loop and it's portable too. If you really want you can use glut too instead of SDL.
    note: only stock SDL is allowed - do NOT use any of the additional libraries).
  4. You cannot use any OS specific libraries or API calls - i.e. No Direct3D or other Windows API calls (and no X11 either). OpenGL is allowed if you really want it :)
  5. No data files are allowed, we might allow this in a future edition of the compo, but for now just use your mad coding skillz :)
  6. Sound is allowed with SDL audio or OpenAL (don't use /dev/dsp or something like that directly).
  7. Pressing escape should quit the intro.