I made a blogpost about my experience making a game in C for the Global Game Jam 2026 (better late than never!)
Sébastien de Graffenried
Game dev, from Switzerland. Working on Terraformers. Game jams, homemade game engine dev
Enabled -Wimplicit-fallthrough on my engine+games codebase, and it solved a mystery for past seb!
I wish C functions and global variables would be "static" by default. I feel this is the common case, and it would make more sense to mark "public" or "exported" functions/variables
@MikkoMononen@mastodon.gamedev.place and then this one which I didn't look into:
In file included from /Users/seb/dev/data_inheritance/src/edit_gradient.c:4:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdlib.h:66:
[...]
MacOSX.sdk/usr/include/sys/_types/_uid_t.h:31:31: error: typedef redefinition with different types ('__darwin_uid_t' (aka 'unsigned int') vs 'int32_t' (aka 'int'))
typedef __darwin_uid_t uid_t;
Uh! I kind of expected clang to catch that unused variable.
Yes, it's technically modified, but I wouldn't say it's really "used"?
RE: @seb_degraff@mastodon.gamedev.place
I implemented a record+replay feature in C for the "interrogation" mechanic of our game jam game. I think it turned out quite well! More details in the blogpost
@MikkoMononen@mastodon.gamedev.place Got this first, which I could solve by adding set(CMAKE_CXX_STANDARD 23) in CMakeLists.txt
In file included from /Users/seb/dev/data_inheritance/build/_deps/imgui_external-src/imgui_tables.cpp:198:
/Users/seb/dev/data_inheritance/build/_deps/imgui_external-src/imgui.h:303:5: error: unknown type name 'constexpr'
constexpr ImVec2() : x(0.0f), y(0.0f) { }