CGDFW is a game development framework library written in pure C, licensed under ZLIB.
GitHub link: https://github.com/ferreiradaselva/cgdfw
This wasn't my first attempt working on a game engine or framework, but certainly a successful one. CGDFW add a layer to OpenGL, OpenAL, window management. The OpenGL abstraction is flexible enough to allow 2D or 3D programming, pushing vertices as you desire.
The most comparable to CGDFW is the C# framework MonoGame, but cleaner.
This project still hasn't reached the first major release (1.0.0).
I have plans to support Linux, BSD-based OS, Windows and Mac OS. Currently, only Linux was tested.
- Lightweight and fast
- Window management
- Input checking
- Shaders (for 2D and 3D)
- Textures and framebuffers
- Sound output
- PBR (Physically-Based Renderer (as optional feature)
- Audio engine
These are features that will not
be supported, since there are better external options:
- Model loaders: A search on github reveal libraries for that and even some to convert model files into C headers for directly reading the content.
- Network: I would recommend using LibUV for network. There's no other library more well tested than that.
- Multi-threading: Multi-threading can be used in unpredictable ways, and I'm not going to try to predict them. LibUV also offers multi-threading.
With what other framework CGDFW looks like?
- OpenAL (OpenAL-soft)
- MATHC (git submodule)
CGDFW is kinda similar with MonoGame (XNA) in the way you upload the data to GPU, but a bit more flexible than that. Another similarity is that MonoGame has built-in main loop options, the same as CGDFW.