handmade.network » Forums » Work-in-Progress » CGDFW - C Game Development Framework
6 posts

Biologist (genomics); C programmer; Game development and art as hobbies.

#13546 CGDFW - C Game Development Framework
5 months, 1 week ago Edited by Pengo on Nov. 21, 2017, 7:54 p.m.

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

Planned Features
  • PBR (Physically-Based Renderer (as optional feature)
  • Audio engine

Not Planned
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.

  • GLFW
  • OpenGL
  • OpenAL (OpenAL-soft)
  • MATHC (git submodule)

With what other framework CGDFW looks like?
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.

CGDFW - C Game Development Framework | MATHC - Math library for 2D and 3D programming