This jam is now over. It ran from 2022-01-07 18:00:00 to 2022-01-22 18:00:00. View results
C turns 50 this year.
It's probably one of the most important events in computing history, and such milestone can not be missed.
Welcome to the C gamejam! In this time frame of two weeks, your task is to make a game in C!
The goal of the jam is to play around with C, and extract different ways to code certain things using the tools C provides. I really recommend throwing all dogmas you know out of the window for the code you are writing. This way you may understand how different approaches to same problems can be used. Using (arguably) primitive tools of C to it's limits, and extracting all their power is encouraged.
* Unless other languages are required for inter-op with platforms. For example macOS requires Objective-C to access platform functionality. This also means you are allowed to use shading languages like GLSL or HLSL. However, vast majority of your game must use C.
** Unless the dependencies have code in other languages required for inter-op.
C has a lot of useful libraries and guides, take a look:
The game can be on any or multiple platforms, but keep in mind, that if you choose platforms with lesser coverage your game will be less likely to be played. Dedicate your time to making your game run on the platforms you desire, and platforms people commonly use. The best platform for that is: a browser. Unfortunately compiling C for browsers/WASM is notoriously painful (I have troubles with emscripten every single time). I recommend picking libraries very carefully so you can deploy your game in a browser. The web games in C I had made used SDL, I also have tested sokol games in web and they worked really well.
As an additional challenge, try to make your game binary small.
Handwriting as much code as possible is more than welcome. There is a voting option that encourages that.
You can use any language for the build systems (or any code that doesn't affect the runtime). (For example, you can use makefiles for building your game)
Embedded (or domain specific languages) are allowed, so long they are implemented by you (or your team) within the time frame of the jam.
(THIS IS NOT REQUIRED) Please adhere to standard C (C99, C89, ANSI C), your code should be compile-able by Clang or GCC, avoid using extensions (but it's fine to use __attribute__ if needed). C11 is also fine but MSVC has poor support for it.
They are mostly self inserts, and might not be good to learn from, but regardless here are some examples:
No submissions match your filter