Skip to content

A curated list of awesome C++ (mainly) things for Game Development. Inspired by awesome-... stuff.

Notifications You must be signed in to change notification settings

RuidongWang/AwesomeCppGameDev

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Awesome list of C++ GameDev project

If you want to add projects here, do a push request or an issue.

C++, C, C#, Lua, and some exceptions for other languages.

List of projects :

C++

  • Bits
    • tinybits : Tiny bits and useful snippets that I keep using everywhere (C, C++)
  • MultiThreading
    • dwThreadPool : A simple C++ 11 based Thread Pool implementation with no external dependencies
    • Scheduler : Modern C++ Scheduling Library
    • ThreadPool : Lightweight, Generic, Pure C++11 ThreadPool
    • ThreadPool : A simple C++11 Thread Pool implementation
    • CTPL : Modern and efficient C++ Thread Pool Library
    • thread-pool-cpp : High performance C++11 thread pool
    • jobxx : Lightweight C++ task system
    • delegates : Fast delegates implementation
    • Awl : Awl (Asynchronous Work Library) is a C++ library that aims at making parallel programming as easy as possible.
    • FastDelegate : C++11 version of Don Clugston's FastDelegate library, by Ceniza.
    • termite-jobs : Fast, multiplatform fiber based job dispatcher based on Naughty Dogs' GDC2015 talk.
    • ConcurrentQueue : A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
    • cpp-concurrency : cpp implementation of golang style concurrency
    • coroutine : C++11 single .h asymmetric coroutine implementation via ucontext / fiber
    • MAN : Man is Thread Pool in C++17
  • Memory
    • jemalloc : jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support.
    • rpmalloc : Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
    • flatbuffers : Memory Efficient Serialization Library
    • mio : Cross-platform C++11 header-only library for memory mapped file IO
  • Parsers
    • pugixml : Light-weight, simple and fast XML parser for C++ with XPath support
    • json : JSON for Modern C++
    • simpleini : Cross-platform C++ library providing a simple API to read and write INI-style configuration files
    • ini : A tiny ANSI C library for loading .ini config files
    • yaml-cpp : A YAML parser and emitter in C++
    • pureconfig : A boilerplate-free library for loading configuration files
    • SimpleJSON : Simple C++ JSON library
    • ViliData : A nice and readable data format !
    • juson : lightweight json parser in c
    • jsonpack : JsonPack is a high-performance and extremely easy-to-use JSON serialization library
    • simple-ini-reader : Fast, Simple, Public Domain INI Reader written in C
    • rapidjson : A fast JSON parser/generator for C++ with both SAX/DOM style API
  • FileSystem
    • dirent : C/C++ library for retrieving information on files and directories
    • tinydir : Lightweight, portable and easy to integrate C directory and file reader
    • cfgpath : Cross platform C header for obtaining paths to user configuration files and directories
    • filesystem : A tiny self-contained path manipulation library for C++
    • apathy : C++ Path Manipulation
  • Reflection & Serialization
    • MetaStuff : Code I use in my game for all serialization/deserialization/introspection stuff
    • cpgf : cpgf library is a cross platform C++ library for callback, reflection, serialization and script binding.
    • iguana : universal serialization engine
    • cpp-generic-serialize : C++11 Header-only generic binary-serialization for arbitrary types (and nested containers)
    • reflect : Reflection and serialization in C++
    • CPP-Reflection : C++ Reflection Parser / Runtime Skeleton
    • rpoco : (R)eflect (P)lain (O)ld (C)++ (O)bjects, is a small header based reflection system that supports JSON serialization,etc
    • cereal : A C++11 library for serialization
    • tinyrelf : A work in progress minimal C++ static reflection API and codegen tool.
  • Metaprogramming
    • STT-C-Compile-Time-Snake : Snake/Nibbler implementation using C++ template metaprogamming
    • brigand : Instant compile time C++ 11 metaprogramming library
    • cxl : A metaprogramming library for C++17. Strings, Parsing, Typelists...
    • meta : Header-only, non-intrusive and macro-free runtime reflection system in C++
  • Functionnal Programming
    • Fit : C++ function utility library
    • fixed_size_function : Fixed size function wrapper like std::function
    • Function : Heap allocation free version of C++11 std::function
    • any_function : any_function is a functional counterpart to std::any
    • functionIdentifier : functionIdentifier
    • reactive : Simple, non intrusive reactive programming library for C++. (Events + Observable Properties + Reactive Properties)
  • Patterns
  • Containers
    • EASTL : EASTL stands for Electronic Arts Standard Template Library
    • flat_hash_map : A very fast hashtable
    • hashMap : A concurrent thread-safe hash map implemented in C++
    • hopscotch-map : C++ implementation of a fast hash map using hopscotch hashing
    • devector : Resizable contiguous sequence container with fast appends on either end.
    • MPMCQueue : A bounded multi-producer multi-consumer lock-free queue written in C++11
    • prio_queue : C++14 cache friendly B-heap priority queue
    • dep_sort : Generic topological sorting for sorting a list of dependencies in C++17
    • sort : Sorting routine implementations in "template" C
    • Unity-Reorderable-List : Extended version of the Reorderable List in Unity
  • Logging
    • loguru : A lightweight C++ logging library
    • Frlog : A tiny, fast, thread safe, easy to use logging class.
  • Signals and Slots
    • SISL : a user-friendly , light, and fast library for the signal/slot pattern in standard C++11
    • nano-signal-slot : Pure C++11 Signals and Slots
    • signal11 : C++11 signal slot implementation
  • Profilers
  • Cryptography and Hashing and Compression
    • miniz : Single C source file zlib-replacement library
    • cocoa : Cocoa is an uniform hashing library with no dependencies that provides interface for CRC32, CRC64, GCRC, RS, JS, PJW, ELF, BKDR, SBDM, DJB, DJB2, BP, FNV, FNV1a, AP, BJ1, MH2, SHA1, SFH (C++11)
    • bundle : Bundle, an embeddable compression library: DEFLATE, LZMA, LZIP, BZIP2, ZPAQ, LZ4, ZSTD, BROTLI, BSC, CSC, BCM, MCM, ZMOLLY, ZLING, TANGELO, SHRINKER, CRUSH, LZJB and SHOCO streams in a ZIP file (C++03)(C++11)
    • lz4 : Extremely Fast Compression algorithm
    • andyzip : A fast and compact modern C++ (header only) zip, bzip2 and brotli library
    • luazen : simple compression, encoding and cryptographic functions
    • lizard : Lizard (formerly LZ5) is an efficient compressor with very fast decompression
    • cryptopp : free C++ class library of cryptographic schemes
    • lonesha256-ansi : Portable, endian-proof, single-file, single-function sha256 implementation in ANSI C
    • meow_hash : Official version of the Meow hash, an extremely fast non-cryptographic hash
  • Testing
    • Catch : A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++98, C++03, C++11, C++14 and later
    • benchmark : A microbenchmark support library
    • mettle : A C++14 unit test framework
    • portable-file-dialogs : Portable dialogs library
  • SystemAPI
    • sfd : A small C library for opening a file dialog
    • Boxer : Boxer is a simple library that allows for easy cross-platform creation of message boxes / alerts / what have you.
  • C++ Extensions
    • any : A simple variant type for C++
    • 0xABAD1DEA : Static global objects with constructors and destructors made useful in C++
    • modern-cpp-features : A cheatsheet of modern C++ language and library features.
    • better-enums : Compile-time enum to string, iteration, in a single header file
    • smartenum : Macros for declaring enums in C++ that include to_string conversion and looping through all enum values
    • ArticleEnumClass-v2 : Bitmask operators and typesafe comparisons for enum class
    • immutable-cpp : Persistent immutable data structures for C++
    • liberasure : A no-dependencies C++ extensible type erasure library
    • atria : A toolkit for modern C++ development
    • cpp-defer : defer action to end of scope (C++11 only / header-only)
    • FastDynamicCast : Fast dynamic cast in C++ for MSVC, outperforming the regular dynamic cast by up to 25 times
    • invoke.hpp : std::invoke/std::apply analogs for C++14
    • cppbackport : A backport of C++11/14/17 features to earlier versions
  • Command Line Arguments
    • cxxopts : Lightweight C++ command line option parser
    • gflags : The gflags package contains a C++ library that implements commandline flags processing
    • SLACC : Simple Lightweight Adaptable Command Console
    • Arguments : Command line argument handling for C++
  • Regex
  • Date
    • date : A date and time library based on the C++11/14/17 'chrono' header
  • PubBus : A simple implementation of a MessageBus.
  • yauid : A decentralized unique ID generator (int64)
  • nakama : Distributed server for social and realtime games and apps.
  • cppast : Library to parse and work with the C++ AST
  • unify : A C++11 function to normalize resource identificators
  • cxx-eventemitter : A minimalist event emitter for C++[1z].
  • unicode : C++ UTF-8 Strings and Utilities
  • Nimble : Nimble is a header-only utility library.
  • turf : Configurable C++ platform adapter
  • forvor : Fortune's Voronoi Generator
  • cpp-ipc : C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.
  • cftf : Clang from the Future: A C++17 to C++11 source-to-source compiler
  • lex : C++14 fast and efficient tokenizer
  • NativeJIT : A C++ expression -> x64 JIT

Libraries

  • libdhcore : Lightweight, performance oriented, Core library for 'C' programmers
  • tacent : A collection of C++ source files designed to be the basis for a game engine or other interactive project.
  • tinyheaders : Collection of one-file C/C++ libraries with no dependencies, primarily used for games
  • foundation_lib : Cross-platform public domain foundation library in C
  • ZeroTolerance : Collection of single header file libraries for C/C++ development, with a focus on games.
  • chobo-shl : A collection of single-header C++11 libraries by Chobolabs
  • ClanLib : ClanLib is a cross platform C++ toolkit library
  • kit : C++11 libs: coroutines, channels, reactive/signals, timelines, alarms, logging, args, etc.
  • TrinityCore : TrinityCore Open Source MMO Framework
  • stb : stb single-file public domain libraries for C/C++
  • single_file_libs : List of single-file C/C++ libraries.
  • folly : An open-source C++ library developed and used at Facebook.
  • fatal : Fatal is a library for fast prototyping software in modern C++.
  • kit : C++ framework for game development
  • slibs : Single file libraries for C/C++
  • CSteamworks : C bindings for Steamworks
  • cartographer : Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms.
  • game-jolt-api-cpp-library : C++ Library to connect games with Game Jolt
  • boden : Truly native C++ cross-platform framework for Android and iOS development
  • mozjpeg : Improved JPEG encoder.
  • OpenHMD : Free and Open Source API and drivers for immersive technology.
  • dr_libs : A collection of public domain single-file libraries for C/C++.
  • acd : Single file utilities for C++.
  • gif_load : A slim, fast and header-only GIF loader written in C
  • paq : public domain single-file C/++ libraries for game devs
  • FFMpeg-decode-example : Example how to use ffmpeg to decode video file.
  • single-file-libs : super permissive, drop-in, single file stuff

Engines

  • Urho3D : Cross-platform 2D and 3D game engine.
  • BansheeEngine : Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting
  • Serious-Engine : An open source version of a game engine developed by Croteam for the classic Serious Sam games
  • NazaraEngine : Nazara Engine is a fast, complete, cross-platform, object-oriented API
  • Lugdunum : A modern cross-platform 3D engine built with Vulkan, glTF 2.0 and modern C++14
  • darkhammer : darkHAMMER is a lightweight, open-source, multiplatform game engine
  • FishEngine : Simple, Unity-like Game Engine.
  • Intrinsic : Intrinsic is a Vulkan based cross-platform game and rendering engine.
  • LumixEngine : 3D Game Engine
  • AVA : A tiny 3D game engine in C; with C++ and Lua interfaces. Written in 32 random ̷d̷a̷y̷s̷ m̷o̷n̷t̷h̷s̷ years.
  • haxe : Haxe - The Cross-Platform Toolkit
  • WickedEngine : C++ game engine focusing on modern rendering techniques.
  • MAGE : MAGE - Matthias Advanced Game Engine
  • shiva : Modern Cross-Platform C++ Engine with modularity (MIT)
  • include-engine : #include engine
  • GameEngine : Little Game Engine that aims to be Physically Based for the lighting part
  • Limon : 3D game engine with builtin editor, focusing ease of use and ease of study.
  • SFML based engines

Maths

  • vectorial : Vector math library with NEON/SSE support
  • mathfu : C++ math library developed primarily for games focused on simplicity and efficiency.
  • xsimd : C++ wrappers for SIMD intrinsics
  • hlml : vectorized high-level math library
  • cmath3d : 3d math library for C. Vectors, 3x3 matrices, quaternions.
  • eigen : Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • xo-math : xo-math is an open source single header file module for optimized game math. C++11 or newer required.
  • linalg : linalg.h is a single header public domain linear algebra library for C++11
  • pcg-c : PCG Random Number Generation, C Edition
  • painless_gmm : A real-world implementation of a Gaussian Mixture Model in C++, without the pain.
  • vml : C++17 GLSL-like vector and matrix math lib
  • glm : OpenGL Mathematics (GLM)
  • Noise
    • FastNoiseSIMD : C++ SIMD Noise Library
    • FastNoise : Fast C++ Noise Library
    • SimplexNoise : Collection of Simplex Noise functions
    • SimplexNoise : Cpp port for Simplex Noise library
    • LowDiscBlueNoise : Low-Discrepancy Blue Noise Sampling
    • TileableVolumeNoise : Collection of functions that can be used to generate tileable volume/3d noise. An exemple of volume noise functions that can be specifically used for clouds is also presented.

Graphics

  • SFML
    • SFML : Simple and Fast Multimedia Library
    • SFML-GameDev : Full and up-to-date source code of the chapters of the "SFML Game Development" book
    • Thor : SFML Extension with various game programming features, like particles, animations, vector operations
    • SFML-Book : SFML Blueprint book, source code
    • LTBL2 : A 2D dynamic lighting system with accurate soft shadows.
    • light_ungod : A reimplementation of the LTBL2-framework.
    • RichText : Rich text class for SFML2
    • QSFML : Library that integrates SFML 2.x.x and Qt 5.x.x, includes event handling etc.
    • SFGUI : Simple and Fast Graphical User Interface
    • imgui-sfml : ImGui binding for use with SFML
    • TGUI : An easy to use cross-platform c++ GUI for SFML
    • SimplGUI : SimplGUI is simple GUI library for SFML. It provides simple widgets that can be used independently.
    • Motion : Complete video and audio player for SFML
    • sfeMovie : sfeMovie is a simple C++ library that lets you play movies in SFML based applications.
    • Swoosh : SFML Activity and Segue Mini Library
  • OpenGL
    • magnum : C++14 and OpenGL graphics engine http://magnum.graphics/
    • LLGL : Low Level Graphics Library (LLGL) is a thin abstraction layer for modern graphics APIs such as OpenGL, Direct3D, and Vulkan
    • TinyWindow : a cross platform (Linux and Windows) OpenGL window library in a single header
    • GLUL : OpenGL Utility Library.
    • glgen : Minimal OpenGL extension loader
    • ToGL : Direct3D to OpenGL abstraction layer
    • glslang : Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator
    • glbinding : A C++ binding for the OpenGL API, generated using the gl.xml specification.
    • thebookofshaders : Step-by-step guide through the abstract and complex universe of Fragment Shaders.
    • glsl-optimizer : GLSL optimizer based on Mesa's GLSL compiler. Used in Unity for mobile shader optimization.
    • oglplus : OGLplus is a collection of open-source, cross-platform libraries which implement an object-oriented facade over the OpenGL
    • GPU-cloth : GPU cloth with OpenGL Compute Shaders
    • gl_vk_meshlet_cadscene : This OpenGL/Vulkan sample illustrates the use of "mesh shaders" for rendering CAD models.
    • surface_splatting : OpenGL demo of a point rendering and texture filtering technique called Surface Splatting.
  • Vulkan
    • Vookoo : A set of utilities for taking the pain out of Vulkan in header only modern C++
    • vulkan_minimal_compute : Minimal Example of Using Vulkan for Compute Operations.
    • VulkanSponza : Deferred Vulkan rendering playground using Crytek's Sponza scene
    • Vulkan : Examples and demos for the new Vulkan API
    • Vulkan-Hpp : Open-Source Vulkan C++ API
    • Vulkan-Example : Some example of Vulkan with C++
    • VulkanTutorial : Tutorial for the Vulkan graphics and compute API
    • laugh_engine : A Vulkan implementation of real-time PBR renderer
    • VulkanResources : A list of resources for learning Vulkan
    • Vulkan-Docs : The Vulkan API Specification and related tools
    • VulkanRTX : VulkanRTX
    • vkbind : Single file Vulkan API loader.
    • vulkan-base : Simple Vulkan application
    • VkBindingBenchmark : Sponza And Bistro tests to benchmark transform data handling in Vulkan
    • vulkano : Safe and rich Rust wrapper around the Vulkan API
    • SPIRV-Cross : SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
    • shaderc : A collection of tools, libraries, and tests for Vulkan shader compilation.
    • niagara : A Vulkan renderer written from scratch on stream
    • vuda : VUDA is a header-only library based on Vulkan that provides a CUDA Runtime API interface for writing GPU-accelerated applications.
  • DirectX
    • NebulaRender : A powerful physically based renderer with a fully featured editor.
    • D3d12info : Simple console tool to get all the information from DXGI and Direct3D 12 on current system
    • rostkatze : C++ implementation of Vulkan sitting on D3D12
    • DirectXShaderCompiler : This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
    • DeferredTexturing : A rendering sample that demonstrates bindless deferred texturing using D3D12
  • GUI
    • imgui : Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
    • nuklear : A single-header ANSI C gui library
    • polyscope : A prototyping-oriented UI for geometric algorithms
    • Ultralight : Ultralight— a lightweight, pure-GPU, HTML UI renderer for your C++ app.
    • yue : A library for creating native cross-platform GUI apps
    • qt3d : Qt3D
  • Animation
    • acl : Animation Compression Library
    • ozz-animation : Open source c++ skeletal animation library and toolset
  • ogre : scene-oriented, flexible 3D engine written in C++
  • tinygizmo : An immediate-mode 3D gimzo (translation, rotation, scale) in ~1200 LoC
  • fplbase : Cross platform low level rendering and I/O library
  • real-time-pbr : This is a physically based real-time renderer made for learning purposes.
  • draco : Draco is a library for compressing and decompressing 3D geometric meshes and point clouds
  • Shadows : A sample app that demonstrates several techniques for rendering real-time shadow maps
  • moderngpu : Patterns and behaviors for GPU computing
  • bgfx : Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library
  • Simd : C++ image processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, VMX(Altivec) and VSX(Power7), NEON for ARM
  • reshade : An advanced, generic post-processing injector for games and video software.
  • Separable-sss : Separable Subsurface Scattering is a technique that allows to efficiently perform subsurface scattering calculations in screen space in just two passes.
  • pbrtest : A small testbed for physically based rendering experiments
  • pbrt-parser : A simple parser for the PBRT file format
  • CIEDE2000 : C++ implementation of the CIE Delta E 2000 Color-Difference algorithm (CIEDE2000).
  • MaskedOcclusionCulling : Example code for the research paper "Masked Software Occlusion Culling"; implements an efficient alternative to the hierarchical depth buffer algorithm.
  • quickhull : C++ implementation of the 3D QuickHull algorithm
  • gDel3D : gDel3D is the fastest 3D Delaunay triangulation algorithm. It uses the GPU for massive parallelism.
  • UnitySpriteShaders : An Uber Shader for rendering Sprites in Unity.
  • aten : Easy, simple path trace renderer.
  • tinyrenderer : A brief computer graphics / rendering course
  • halfedge : A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoever. Public domain.
  • GettingStartedWithRTXRayTracing : Getting Started with RTX Ray Tracing
  • Fox2 : FoxRaycaster, optimized, fixed and with a CUDA option
  • Diligent Engine : A modern cross-platform low-level graphics library and rendering framework

Audio

  • steam-audio : Steam Audio
  • soloud : Free, easy, portable audio engine for games
  • kfr : Fast, modern C++ DSP framework, FFT, Audio Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, ARM NEON)
  • ass : ASS: Audio Stupidly Simple
  • FAudio : FAudio - Accuracy-focused XAudio reimplementation for open platforms
  • Audio Synthesis and Speech recognition
    • pocketsphinx : PocketSphinx is a lightweight speech recognition engine
    • stk : The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language
    • Tonic : Easy and efficient audio synthesis in C++

Physics

  • 2D Physics
    • Box2d : Box2D is a 2D physics engine for games
    • Box2D : C++ port of Box2D
    • b2dJson : Utilities to load scenes created by the R.U.B.E Box2D editor
    • liquidfun : 2D physics engine for games
    • phyxed-2d : A 2d physics engine with fixed-point support.
  • 3D Physics
    • NewtonDynamics : Newton Dynamics is an integrated solution for real time simulation of physics environments.
    • nudge : A small data-oriented and SIMD-optimized 3D rigid body physics library.
    • GridFluidSim3D : A PIC/FLIP fluid simulation based on the methods found in "Fluid Simulation for Computer Graphics"
    • RealtimeWater : The water simulation is based on the method that Fischer proposes for 2D heightfields
    • PhysX-3.4 : NVIDIA PhysX SDK 3.4
    • Bullet3 : Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
    • Blender-FLIP-Fluids : FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.
    • GPU-GEMS-3D-Fluid-Simulation : 3D fluid simulation on the in Unity
    • physics_playground : Improved version of real-time physics engine that couples FEM-based deformables and rigid body dynamics

Networking

  • TCP/UPD/HTTP
    • SFNUL : Simple and Fast Network Utility Library
    • asio : Asio C++ Library
    • tacopie : C++ TCP Library
    • cxxhttp : Asynchronous, Header-only C++ HTTP-over-(TCP|UNIX Socket|STDIO) Library
    • libclub : Lightweight Peer-to-Peer networking engine for real time applications
    • net11 : Simple embeddable C++11 async tcp,http and websocket serving.
    • uWebSockets : Tiny WebSockets
    • webby : A tiny webserver for game development
    • minihttp : A minimal 2-file (cpp+h) TCP & HTTP client implementation. Supports GET & simple POST. Optional SSL via PolarSSL/mbedTLS.
    • rinetd : TCP/UDP port redirector
    • swrap : Portable, single-file, protocol-agnostic TCP and UDP socket wrapper, primarily for game networking
  • SQL
    • SQLiteCpp : SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
    • NLDatabase : Lightweight C++ wrapper for SQLite
    • sqlpp11 : A type safe SQL template library for C++
  • RPC
    • Game-Net : RPC Network Library for Multiplayer Games
    • rpclib : rpclib is a modern C++ msgpack-RPC server and client library
    • libjson-rpc-cpp : C++ framework for json-rpc (json remote procedure call)
    • cpp-ORM : A project to create a simple ORM
  • oatpp : Light, zero-dependency framework. Create bleedingly-fast web-services. Organic. Pure C++
  • uvw : Header-only, event based, tiny and easy to use libuv wrapper in modern C++

AI

  • Neural Network & Deep Learning
    • darknet : Convolutional Neural Networks
    • tiny-dnn : header only, dependency-free deep learning framework in C++14
    • TinNet : A C++14 based deep learning library.
    • CubbyDNN : Deep learning framework using C++17 in a single header file
    • CppDNN : Machine Learning for C++11
    • neural : Some plays with neural network
  • Path
    • MicroPather : MicroPather is a path finder and A* solver
    • lib_2d : A c++ library for paths defined by points within the 2d space

Scripting

  • scriptorium : Game Scripting Languages benchmarked
  • Lua
    • sol2 : Sol v2.0 - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great!
    • lualite : a one header library for creating Lua bindings to C++
    • lua-intf : A binding between C++11 and Lua language
    • Selene : Simple C++11 friendly header-only bindings to Lua
    • LuaInPractice2SourceCode : Using Lua with C++ in Practice part 2 source code
    • Lua-Low-Level : Per function, Lua JIT using LLVM C++ toolchain
  • duktape : Duktape - embeddable Javascript engine with a focus on portability and compact footprint
  • ChaiScript : Embedded Scripting Language Designed for C++
  • zippypy : A simple, lightweight Python 2.7 interpreter, with predictable memory management and without global locks.
  • protobuf : Protocol Buffers - Google's data interchange format
  • breadboard : C++ graph based event system
  • CppSharp : Tools and libraries to glue C/C++ APIs to high-level languages
  • pybind11 : Seamless operability between C++11 and Python

GameProgramming

  • EntityComponentSystem
    • corgi : C++ entity-component system
    • ECS : C++ single-header entity component system
    • EntityPlus : A C++14 Entity Component System
    • ecst : Experimental C++14 multithreaded compile-time entity-component-system library
    • entityx : EntityX - A fast, type-safe C++ Entity-Component system
  • Inputs
    • gainput : Awesome C++ input library for games
    • libgamepad : Cross-platform library for gamepad input. MIT licensed.
  • Maps
    • USD : Pixar Universal Scene Description
    • voxels : Voxels Library - C++ library for voxel manipulation and polygonization
    • tmxlite : lightweight C++14 parser for Tiled tmx files
  • Achieve : Library to manage and implement achievements in a game.
  • GA-SDK-UNREAL : A repository containing the GameAnalytics Unreal4 Plugin including documentation.
  • : A simple, header-only match maker(match making) implementation for C++.

Tools

  • NormalMap-Online : NormalMap Generator Online
  • TextureGenerator-Online : Procedural texture creator Online
  • unosolo : Work-in-progress Rust application that converts C++ libraries to single self-contained headers.
  • incbin : Tiny cross-platform utility for including binaries into C source.
  • blink : A tool which allows you to edit source code of any C++ project live at runtime
  • SIMD-Visualiser : A tool to graphically visualize SIMD code
  • MarkovNameGenerator : Markov process-based procedural name and word generator
  • Procedural-Terrain-Estimator : Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm(DPS, BFS, Gradient Descent ... etc)
  • dxil-signing : Utility to sign DXIL code after compilation
  • ShaderConstructor : ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
  • nvtop : NVIDIA GPUs htop like monitoring tool

GameDesign

  • gamebook : An unified game design document convention (CC0, Markdown)

Awesome

  • awesome-cpp : A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff
  • awesome-c : A curated list of awesome C frameworks, libraries and software.
  • awesome : Curated list of awesome lists
  • awesome-vulkan : Awesome Vulkan ecosystem
  • awesome-bits : A curated list of awesome bitwise operations and tricks
  • awesome-gamedev : A collection of free software and free culture resources for making amazing games
  • awesome-game-networking : A Curated List of Game Network Programming Resources
  • awesome-behavior-trees : A list of awesome Behavior Trees resources
  • awesome-gametalks : A curated list of gaming talks (development, design, etc)
  • awesome-design : Best UI/UX Design Sources For Developer & Designer Ever :)
  • magictools : A list of Game Development resources to make magic happen.
  • cpplinks : A categorized list of C++ resources.
  • ModernCpp : A curated list of Modern C++ articles, examples, tutorials, frameworks, libraries, and shiny things.

GameProgrammerPath

Tutorials

About

A curated list of awesome C++ (mainly) things for Game Development. Inspired by awesome-... stuff.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published