Skip to content

A collection of open source c/c++ libraries for gamedev

Notifications You must be signed in to change notification settings

TheMostDiligent/junkyard_gfx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 

Repository files navigation

junkyard_gfx

A Collection of C/C++ libraries for game development

header

System

Base

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

Math

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:https://cmldev.net
sce_vectormath Vector math library
Imath Imath
Handmade-Math A simple math library for games and computer graphics.

Windowing/Inputs

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

Threading

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

Sound

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

Networking

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:https://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.

SIMD

Lib Title
p12tic/libsimdpp Portable header-only zero-overhead C++ low level SIMD library
VcDevel/Vc SIMD Vector Classes for C++

Engine Components

Rendering

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

UI

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

Scenegraph

Lib Title
buserror/libc3 Lightweight C Scene Graph Library

ECS

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

Animation

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:https://google.github.io/motive/

Physics

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:https://www.newtondynamics.com
erincatto/Box2D Box2D is a 2D physics engine for games http:https://box2d.org
AvtechScientific/ASL Advanced Simulation Library - hardware accelerated multiphysics simulation platform. http:https://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

Pathfinding

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

Database

Lib Title
symisc/unqlite An Embedded NoSQL, Transactional Database Engine

Asset Management

Meshes/Geometry

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

Importers/Exporters

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.

Texture Baking/Packing

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

Misc

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

About

A collection of open source c/c++ libraries for gamedev

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages