List of C game engines and frameworks
This is a list of game engines, frameworks and libraries that offer a C API to program our games in pure C without C++. Worth note here, most game engines, frameworks and libraries are moving to C++ away from C, so it is highly recommended to consider C++. But in case you prefer programming in pure C then this is the options you have.
SFML (Simple and Fast Multimedia Library) is a portable and easy-to-use API for multimedia programming. It is written in C++ with bindings available for C, D, Python, Ruby, OCaml, .Net and Go. It can be thought of as an object oriented alternative to SDL.
SFML provides hardware accelerated 2D graphics using OpenGL, supports OpenGL windowing and provides different modules that ease multimedia and game programming. SFML site offers complete SDK bundle in single pack, and tutorials to ease the developers. SFML Source code is provided under the terms of the zlib/png license.
raylib is a game development library highly inspired by Borland BGI graphics lib and by XNA framework. Made as a simple and easy-to-use library to enjoy game programming.
- NO external dependencies, all required libraries are bundled into raylib
- Multiple platforms supported: Windows, Linux, MacOS, Android... and many more!
- Written in plain C code (C99) in PascalCase/camelCase notation
- Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES 2.0)
- Unique OpenGL abstraction layer (usable as standalone module): rlgl
- Multiple Fonts formats supported (XNA fonts, AngelCode fonts, TTF)
- Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC)
- Full 3D support, including 3D Shapes, Models, Billboards, Heightmaps and more!
- Flexible Materials system, supporting classic maps and PBR maps
- Animated 3D models supported (skeletal bones animation)
- Shaders support, including model and postprocessing shaders.
- Powerful math module for Vector, Matrix and Quaternion operations: raymath
- Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD)
- VR stereo rendering support with configurable HMD device parameters
- Huge examples collection with +95 code examples!
- Bindings to +25 programming languages!
Allegro 4 and Allegro 5 are cross-platform, libraries mainly aimed at video game and multimedia programming. They handle common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like.
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."