A Collection of C/C++ libraries for game development
| Lib | Title |
|---|---|
| bkaradzic/bx | Base library |
| septag/sx | Portable base library for C programmers, tailored for performance and simplicity |
| nothings/stb | stb single-file public domain libraries for C/C++ |
| RandyGaul/cute_headers | One-file C/C++ libraries with no dependencies, primarily used for games |
| vurtun/mmx | single header libraries for C/C++ |
| zpl-c/zpl | Your C99 Powerkit |
| Lib | Title |
|---|---|
| g-truc/glm | OpenGL Mathematics (GLM) |
| recp/cglm | Optimized OpenGL/Graphics Math (glm) for C |
| google/mathfu | C++ math library developed primarily for games focused on simplicity and efficiency. |
| ferreiradaselva/mathc | Pure C math library for 2D and 3D programming |
| demianmnave/CML | The Configurable Math Library http://cmldev.net |
| sce_vectormath | Vector math library |
| Imath | Imath |
| Handmade-Math | A simple math library for games and computer graphics. |
| Lib | Title |
|---|---|
| SDL | Simple DirectMedia Layer |
| glfw | A multi-platform library |
| gainput | C++ input library for games |
| wgois/OIS | Object oriented Input System https://wgois.github.io/OIS/ |
| ziacko/TinyWindow | a cross platform (Linux and Windows) OpenGL window library in a single header |
| nyorain/ny | Modern C++ cross-platform window abstraction |
| Lib | Title |
|---|---|
| rhoot/sc | Cross platform co-routine library exposed through a minimal C API |
| deboost.context | "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms. |
| SergeyMakeev/TaskScheduler | Multithreaded task scheduler experiments |
| dougbinks/enkiTS | C++ and C multithreading task scheduler |
| Freeeaky/fiber-job-system | Multi-Threaded Job System using Fibers |
| RichieSams/FiberTaskingLib | A library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies. |
| JodiTheTigger/sewing | Small C API Multiplatform multithreaded fiber based job system |
| Lib | Title |
|---|---|
| openal-soft | software implementation of the OpenAL 3D audio API |
| soloud | Free, easy, portable audio engine for games |
| BareRose/atomix | Portable, single-file, wait-free atomic sound mixing library utilizing SSE-accelerated mixing |
| Lib | Title |
|---|---|
| librg | Pure C99 game networking library |
| bkaradzic/bnet | Message oriented networking library using TCP transport |
| zeromq/libzmq | ZeroMQ core engine in C++, implements ZMTP/3.1 http://www.zeromq.org |
| rxi/dyad | Asynchronous networking for C |
| lsalzman/enet | ENet reliable UDP networking library |
| jarikomppa/ipc | Public domain, cross platform, single header inter-process communication primitives. This is a "stb like" public domain header-only C/C++ library that provides inter process communication functionality, released under unlicense. |
| Lib | Title |
|---|---|
| p12tic/libsimdpp | Portable header-only zero-overhead C++ low level SIMD library |
| VcDevel/Vc | SIMD Vector Classes for C++ |
| Lib | Title |
|---|---|
| bkaradzic/bgfx | Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. |
| DiligentGraphics/DiligentEngine | A modern cross-platform low-level 3D graphics library that supports Direct3D11, Direct3D12, OpenGL/GLES, Vulkan and Metal |
| Kode/Kore | Modern low level game library and hardware abstraction |
| floooh/sokol | minimal cross-platform standalone C headers |
| floooh/oryol | A small, portable and extensible C++ 3D coding framework |
| pplux/px | Single header C++ Libraries for Thread Scheduling, Rendering |
| google/filament | Filament is a real-time physically based rendering engine for Android, Windows, Linux and macOS |
| intel/fastuidraw | library that provides a higher performance Canvas interface |
| mosra/magnum | Lightweight and modular C++11/C++14 graphics middleware for games and data visualization |
| GPUOpen-LibrariesAndSDKs/V-EZ | V-EZ is an open source, cross-platform (Windows and Linux) wrapper intended to alleviate the inherent complexity and application responsibility of using the Vulkan API. |
| ssloy/tinyrenderer | A brief computer graphics / rendering course |
| Lib | Title |
|---|---|
| ocornut/imgui | Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies |
| vurtun/nuklear | A single-header ANSI C gui library |
| andlabs/libui | Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports |
| rxi/microui | Tiny immediate-mode UI library |
| julianeisel/bWidgets | Basic UI widget toolkit designed for Blender |
| Lib | Title |
|---|---|
| buserror/libc3 | Lightweight C Scene Graph Library |
| Lib | Title |
|---|---|
| skypjack/entt | A fast and reliable entity-component system (ECS) and much more |
| redxdev/ECS | C++ single-header entity component system library |
| alecthomas/entityx | EntityX - A fast, type-safe C++ Entity-Component system |
| discoloda/Diana | Entity Component system like Artemis implemented in C |
| Lib | Title |
|---|---|
| guillaumeblanc/ozz-animation | Open source c++ skeletal animation library and toolset |
| google/motive | A cross-platform, memory efficient, and performant animation system written in C++ http://google.github.io/motive/ |
| Lib | Title |
|---|---|
| NVIDIAGameWorks/PhysX | NVIDIA PhysX SDK 4 |
| bulletphysics/bullet3 | Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc. |
| MADEAPPS/newton-dynamics | Newton Dynamics is an integrated solution for real time simulation of physics environments. http://www.newtondynamics.com |
| erincatto/Box2D | Box2D is a 2D physics engine for games http://box2d.org |
| AvtechScientific/ASL | Advanced Simulation Library - hardware accelerated multiphysics simulation platform. http://asl.org.il |
| gjk.c | Gilbert-Johnson-Keerthi (GJK) collision detection algorithm |
| nudge | A small data-oriented and SIMD-optimized 3D rigid body physics library. |
| gpu sph fluids | GPU SPH fluids |
| phyx | 2D physics engine with SoA/SIMD optimizations |
| ParticleSolver | CPU and GPU implementations of a particle-based physics |
| PlayRho | Real-time oriented physics engine and library that's currently best suited for 2D games |
| Chipmunk2D | A fast and lightweight 2D game physics library. |
| PositionBasedDynamics | PositionBasedDynamics is a library for the physically-based simulation of rigid bodies, deformable solids and fluids |
| Lib | Title |
|---|---|
| jps | Jump Point Search, public domain, single .h (Super fast pathfinding on uniform grids) |
| astar-algorithm-cpp | Implementations of the A* algorithm in C++ and C# |
| MicroPather | A* solver (astar or a-star) written in platform independent C++ |
| recastnavigation | Navigation-mesh Toolset for Games |
| Lib | Title |
|---|---|
| symisc/unqlite | An Embedded NoSQL, Transactional Database Engine |
| Lib | Title |
|---|---|
| libigl | Simple C++ geometry processing library |
| MathGeoLib | library for linear algebra and geometry manipulation for computer graphics |
| sseculling | SSE Frustum Culling Demo |
| Cullminator9000 | The fastest culler ever |
| SeamAwareDecimater | Mesh simplification with UV's boundary preserved |
| zeux/meshoptimizer | Mesh optimization library that makes indexed meshes more GPU-friendly |
| Lib | Title |
|---|---|
| assimp | Official Open Asset Import Library Repository. Loads 40+ 3D file formats into one unified and clean data structure |
| nem0/OpenFBX | Lightweight open source FBX importer |
| syoyo/tinyobjloader | Tiny but powerful single file wavefront obj loader |
| syoyo/tinygltf | Header only C++ Tiny glTF 2.0 loader. |
| Lib | Title |
|---|---|
| caosdoar/Fornos | GPU Texture Baking Tool. A fast and simple tool to bake your high-poly mesh details to textures. |
| kmkolasinski/AwesomeBump | AwesomeBump generate normal, height, specular or ambient occlusion textures from a single image |
| dariomanesku/cmft | Cross-platform open-source command-line cubemap filtering tool |
| Cheetah-Texture-Packer | High efficient and fast 2D bin packing tool |
| thekla_atlas | Atlas Generation Tool |
| Lib | Title |
|---|---|
| fungos/cr | cr.h: A Simple C Hot Reload Header-only Library |
| Manu343726/ctti | Compile Time Type Information for C++ |
| easy_profiler | Lightweight profiler library for c++ |
| spdlog | Fast C++ logging library. |
| color | C++ library thats implemets class color |
| libmorton | C++ header-only library with methods to efficiently encode/decode Morton codes |
| pugixml | Light-weight, simple and fast XML parser for C++ with XPath support |
| opengex | Scene format specification |
| rxi/log.c | A simple logging library implemented in C99 |
