Game programming

Game programing usually involves two parts, graphics and sound. On the graphics side you have OpenGL for 3D graphics. Notice how i left out sound, and 2D graphics. This is because game programing under Linux and X is typically done using a assortment of libraries. Linux supports ALSA for sound, tho, some old or binary games still use OSS. No real programs use Linux sound directly, but usually through another library. The same goes for 2D graphics. X is the main 2D display out there, but programing under Xlib (the X client API) is a pain to say the least.

For this reason, there are many 2D libraries out there, as well as several sound libraries, and several game libraries/engines. Game libraries just simplify game programing, usually by providing management/wrappers for graphics, sound, and input. Game engines, on the other hand, are typically complete running executables that only requires data, such as graphics files, sound files, etc. Almost every game can be classified as a engine, some projects act to be just the engine. For this reason, you can look at the game list to find a similar game, and modify it (usually just its data files).

Lots of game makers seem to enjoy doing things on their own, rather then using a existing engine, or even a game library. If your one of those, then look at the support section.

Game Libraries

 * Allegro
 * Crystal Space
 * SDL - Not specifically for games, but thats what its normally used for.

Game Engines
Only listing projects that are engine-like, if not actual engines.
 * Cube
 * Sauerbraten - Cube 2
 * Stratagus

Game Support Libraries

 * Graphics libraries
 * Audio libraries