Using C for games certainly isn't impossible but I find myself just recrafting a toy version of C++ with macros etc...
The following was a small prototype game developed using C a while back (compiled using Clang/Emscripten)
- I really missed exceptions.
- One level of inheritance is possible (using update, draw function pointers) but more gets really fiddly
- Works great with SDL (and OpenGL) and don't need to worry about fiddly unique_ptr deleter functions etc...
- Compiles in a fraction of the time as C++. Probably about 10% time taken (with Emscripten).
- Much smaller output size (matters more with Emscripten than a .bin for Linux or .so for Android)
- Compiles with minor tweaks in any "C family compiler" Objective-C, C++ (so quite portable perhaps)
- glm maths library is C++... this was a pain because I like using a "standard" maths library rather than a hand rolled one.
- Debugging C with lldb or gdb is trivial compared to C++.