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!


Why 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.

Rules

  • You may only use C as your programming language. *
  • You can only use dependencies that are implemented in C. **
  • Source code must be published to verify that the game is written in C.
  • Follow the theme.
  • The entries must be exclusive to the jam. 
  • Don't include accidental C++ism's. Configure your editor/IDE and toolchain to use C instead of C++
  • Languages that transpile to C aren't allowed (Nim, Vala, V ...)

* 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.

Directions

C has a lot of useful libraries and guides, take a look: 


Notes

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.

Examples

They are mostly self inserts, and might not be good to learn from, but regardless here are some examples:




Submissions(7)

All submissions
·
Browser playable (1)
·
Windows (4)
macOS (1)
Linux (2)

No submissions match your filter

A very small puzzle game for CJam
Puzzle
Play in browser
A game where you play as a mage and try to defeat the evil dragon genie Qoxirohod.
Shooter
Help a lost bit escape a sea of bytes, using bitwise operations to advance and get the correct values through the exits
Puzzle
An "upgraded" version of the very first game I programmed.
A small sports trivia game (2 players)
A dumb game with bad code, running directly on top of X11
Adventure