apaas.dev
31 May 2022
SEO Title
A curated list of awesome C++ (mainly) things for Game Development. Inspired by awesome-... stuff.
~2000 projects listed here!
If you want to add projects here, do a pull request or open an issue!
(Maybe some new categories should be added to sort everything a bit better) (Maybe some repositories could be removed from the list too)
Index
- C++
- Libraries
- Engines
- Maths
- Graphics
- Multimedia
- Physics
- Networking
- AI
- Scripting
- GameProgramming
- Rust
- Tools
- Awesome
- GameProgrammerPath
- GameDesign
- Website
C++
- rangeless : c++ LINQ -like library of higher-order functions for data manipulation
- variant : C++17
std::variant
for C++11/14/17 - tweeny : A modern C++ tweening library
- arrow : Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for effic…
- EAMain : EAMain provides a multi-platform entry point used for platforms that don't support console output, return codes and command-line arguments.
- cxx14-graph : A C++ 14 implementation of graph data structures
- lex : C++14 fast and efficient tokenizer
- lager : C++ library for value-oriented design using the unidirectional data-flow architecture (Redux for C++)
- cpp-std-fwd : forward declarations for C++ std headers
- hedley : A C/C++ header to help move #ifdefs out of your code
- scnlib : scanf for modern C++
- pipet : c++ library for building lightweight processing pipeline at compile-time
- scope_guard : Scope Guard & Defer C++
- pdbex : pdbex is a utility for reconstructing structures and unions from the PDB into compilable C headers
- optional-lite : optional lite - A C++17-like optional, a nullable object for C++98, C++11 and later in a single-file header-only library
- libinsanity : libc functions (and related) without bugs mandated by standard C or common OSes
- kangaru : A dependency injection container for C++11, C++14 and later
- CppCoreGuidelines : The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
- span-lite : span lite - A C++20-like span for C++98, C++11 and later in a single-file header-only library
- replxx : A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed.
- stateful_pointer : Use unused bits in your pointer
- type_erasure_and_dispatch : Code related to ACCU meet up talk.
- modern-cpp-features : A cheatsheet of modern C++ language and library features.
- msgpack11 : A tiny MessagePack library for C++11 (msgpack.org[C++11])
- trackable_ptr : Smart pointer for any movable objects. When trackable object moved/destroyed, trackers updated with new object's pointer.
- reactive : Simple, non intrusive reactive programming library for C++. (Events + Observable Properties + Reactive Properties)
- liberasure : A no-dependencies C++ extensible type erasure library
- any : A simple variant type for C++
- FastDynamicCast : Fast dynamic cast in C++ for MSVC, outperforming the regular dynamic cast by up to 25 times
- 0xABAD1DEA : Static global objects with constructors and destructors made useful in C++
- PubBus : A simple implementation of a MessageBus.
- cppbestpractices : Collaborative Collection of C++ Best Practices
- emscripten : Emscripten: An LLVM-to-Web Compiler
- gcpp : Experimental deferred and unordered destruction library for C++
- patterns : Pattern Matching in C++
- cmcstl2 : An implementation of C++ Extensions for Ranges
- invoke.hpp : std::invoke/std::apply analogs for C++14
- cppbackport : A backport of C++11/14/17 features to earlier versions
- libuv : Cross-platform asynchronous I/O
- uvw : Header-only, event based, tiny and easy to use libuv wrapper in modern C++
- opt : Class template designed to express optionality without having to sacrifice memory to store additional bool flag
- shared_ptr_2.0 :
- undo : C++ library to implement non-linear undo/redo functionality
- Configuru : Experimental config library for C++
- strong_typedef : A class template that creates a new type that is distinct from the underlying type, but convertible to and from it
- dry-comparisons : C++17 Utility classes for comparing multiple values in one simple expression
- determine_c_or_cpp : Determine programatically C from C++ as well as various versions
- optional : C++11/14/17 std::optional with functional-style extensions and reference support
- promise-cpp : C++ promise/A+ library in Javascript style.
- mod : MASTERS of DATA, a course about videogames data processing and optimization
- ring-span-lite : ring-span lite - A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library
- outcome : Provides very lightweight outcome and result (non-Boost edition)
- semver : A C++ Library for Dealing with Semantic Versioning
- cpp-cheatsheet : Modern C++ Cheatsheet
- BareMetalLib : A C++ support library for bare-metal programming
- Mastering-Cpp-Game-Development : Code files for Mastering C++ Game Development, published by Packt
- std_function :
- ska_sort :
- strong_type : C++ implementation of strong types
- type_safe : Zero overhead utilities for preventing bugs at compile time
- Bits
- BigInt : BigInt in C++ using bitset
- huge-long-number : This is an implementation of arbitrary range of integers written in C++14
- BigInteger : Be limited not by the size of your register but by the bulk of your RAM.
- bitmask : A generic implementation of the BitmaskType C++ concept
- BigInteger : An Implementation of BigInteger library in C++
- bigint : A lightweight big integer library for c++
- bitwise : Bitwise is an educational project where we create the software/hardware stack for a computer from scratch.
- varint : Variable-length integer encodings.
- mppp : Multiprecision for modern C++
- enum-flags : Bit flags for C++11 scoped enums
- MultiThreading
- marl : A hybrid thread / fiber task scheduler written in C++ 11
- EAThread : EAThread implements a unified cross-platform interface for multithreaded programming.
- arcana.cpp : Arcana.cpp is a collection of helpers and utility code for low overhead, cross platform C++ implementation of task-based asynchrony.
- relacy : Automatically exported from code.google.com/p/relacy
- partr : Parallel Tasks Runtime
- deadlockempire.github.io : The Deadlock Empire: Slay dragons, learn concurrency!
- MAN : Man is Thread Pool in C++17
- cpp-concurrency : cpp implementation of golang style concurrency
- tbb : Official Threading Building Blocks (TBB) GitHub repository. For Commercial Intel® TBB distribution, please click here: https://software.intel.com/en-us/tbb
- bikeshed : Lock free hierarchical work scheduler
- lucy_job_system : Fiber-based job system with extremely simple API
- libgo : Go-style concurrency in C++11
- ThreadPool : A fastest, exception-safety and pure C++17 thread pool.
- thread_pool : Thread pool using std::* primitives from C++17, with optional priority queue/greenthreading for POSIX.
- concurrentqueue : A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
- ck : Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance conc…
- GTS-GamesTaskScheduler : A task scheduling framework designed for the needs of game developers.
- cpp-taskflow : Modern C++ Parallel Task Programming Library
- cppcoro : A library of C++ coroutine abstractions for the coroutines TS
- cpp-taskflow : A Modern C++ Parallel Task Programming Library
- mx : C++ coroutine await, yield, channels, i/o events (single header + link to boost)
- px : Single header C++ Libraries for Thread Scheduling, Rendering, and so on...
- FiberTaskingLib : A library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies.
- elle : The Elle coroutine-based asynchronous C++ development framework.
- thread-pool : Thread pool implementation using c++11 threads
- thrust : Thrust is a C++ parallel programming library which resembles the C++ Standard Library.
- enkiTS : C++ and C multithreading task scheduler
- enkiTSExamples : Examples for enkiTS
- fiber : Header only cross platform wrapper of fiber API.
- px_sched : Single Header C++11 Task Scheduler
- termite-jobs : Fast, multiplatform fiber based job dispatcher based on Naughty Dogs' GDC2015 talk.
- jobxx : Lightweight C++ task system
- thread-pool-cpp : High performance C++11 thread pool
- ThreadPool : Lightweight, Generic, Pure C++11 ThreadPool
- Scheduler : Modern C++ Scheduling Library
- dwThreadPool : A simple, header-only, dependency-free, C++ 11 based ThreadPool library.
- CTPL : Modern and efficient C++ Thread Pool Library
- ThreadPool : A simple C++11 Thread Pool implementation
- Awl : Awl (Asynchronous Work Library) is a C++ library that aims at making parallel programming as easy as possible.
- asio : Asio C++ Library
- MPMCQueue : A bounded multi-producer multi-consumer lock-free queue written in C++11
- coroutine : C++11 single .h asymmetric coroutine implementation via ucontext / fiber
- coroutines :
- coro : Single-header library facilities for C++2a Coroutines
- executors : C++ library for executors
- parallel-util : Simple header-only implementation of "parallel_for" and "parallel_map" for C++11
- parallel-hashmap : A family of header-only, very fast and memory-friendly hashmap and btree containers.
- concurrent-deque : Lock-free concurrent work stealing deque in C++
- ParallelComputingPlayground : Shows different programming techniques for parallel computing on CPU and GPU
- awesome-lockfree : A collection of resources on wait-free and lock-free programming
- Memory
- dlmalloc : Doug Lea's malloc
- deluxe68 : A simple register allocator frontend for 68k assembly
- KernelReadWriteMemory : Simple code to manipulate the memory of a usermode process from kernel.
- malloc_geiger :
- mimalloc-bench : Suite for benchmarking malloc implementations.
- allocator_bench : bench of various memory allocators
- mio : Cross-platform C++11 header-only library for memory mapped file IO
- snmalloc : Message passing based allocator
- mimalloc : mimalloc is a compact general purpose allocator with excellent performance.
- hardened_malloc : Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platfo…
- objectpool : Object pool implementation in C++11
- rampin : Try to make Windows preload file into RAM by memory mapping it
- tgc : A Tiny Garbage Collector for C
- Mesh : A memory allocator that automatically reduces the memory footprint of C/C++ applications.
- memory-dumper : A tool for dumping files from processes memory
- alloc-test : Cross-platform benchmarking for memory allocators, aiming to be as close to real world as it is practical
- memory-allocators : Custom memory allocators in C++ to improve the performance of dynamic memory allocation
- drmemory : Memory Debugger for Windows, Linux, Mac, and Android
- rpmalloc : Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
- jemalloc :
- cpp-mempool : C++ header-only mempool library
- incppect : Inspect C++ memory in the browser
- injection : Windows process injection methods
- tiny : low-level library for minimizing the size of your types
- memory : STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
- Strings
- ryu : Converts floating point numbers to decimal strings
- MengRao/str : A SIMD optimized fixed-length string class along with an adaptive hash table for fast searching
- inplace_string :
mp::inplace_string<CharT, MaxSize, Traits>
is astd::string
-like class template that stores text content in-place inside the class - arabtype : a small and simple implementation that transform isolated arabic utf8 character strings into contextual forms.
- unify : A C++11 function to normalize resource identificators
- unicode : C++ UTF-8 Strings and Utilities
- ocornut/str : Simple C++ string type with an optional local buffer
- SuperString : A fast and memory-optimized string library for C++
- stdstring.h : C string utils library (STB style, header-only).
- text_view : A C++ concepts and range based character encoding and code point enumeration library
- rapidstring : Maybe the fastest string library ever.
- utfz : Tiny C++ UTF-8 library - safe, no exceptions
- utf8.h : single header utf8 string functions for C and C++
- tiny-utf8 : Unicode (UTF-8) capable std::string
- str_view : Null-termination-aware string-view class for C++
- Obfuscate : Guaranteed compile-time string literal obfuscation header-only library for C++14
- stringencoders : Fast c-string transformations
- string-view-lite : string_view lite - A C++17-like string_view for C++98, C++11 and later in a single-file header-only library
- cutf : utf-8 <> wchar_t conversion functions for C and C++
- Apris : String processor using banks and alternatives
- string_id : A small C++ library to handle hashed strings serving as identifiers.
- Parsers
- inih : Simple .INI file parser in C, good for embedded systems
- 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
- json.h : json parser for C and C++
- ezxml : ezxml - XML parser
- jsmn : Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
- fast_obj : Fast C OBJ parser
- cpptoml : cpptoml is a header-only library for parsing TOML
- nanocsv : Multithreaded header only C++11 CSV parser
- picojson : a header-file-only, JSON parser serializer in C++
- js0n : Flexible Zero-Footprint JSON Parser in C
- CppCmb : A generic C++17 parser-combinator library with a natural grammar notation.
- obj_lib : OBJ reader and writer library
- ffmpeg-cpp : A clean, easy-to-use C++ wrapper around the ffmpeg libraries
- Parser-Combinators : C++ parser combinator library
- tinyply : C++11 ply 3d mesh format importer & exporter
- json : Single file in-place JSON/SJSON parser
- simdjson : Parsing gigabytes of JSON per second
- sajson : Lightweight, extremely high-performance JSON parser for C++11
- tinyddsloader : Tiny DDS file loader
- sjson-cpp : An Simplified JSON (SJSON) C++ reader and writer
- xlnt : Cross-platform user-friendly xlsx library for C++14
- assfile : C library for accessing assets (read-only data) from many different sources, with an fopen/fread-like API.
- sjson : Fast and portable single-header C file Json encoder/decoder
- melo : melo is mesh loader for OBJ, glTF2 and PLY
- jo : JSON output from a shell
- huffandpuff : Minimal Huffman coder/decoder
- fbx : C++ Library for reading and writing FBX files
- csv-parser : A modern C++ library for reading, writing, and analyzing CSV (and similar) files.
- enkiMI : C and C++ Minecraft Importer library
- sjson : sjson: no {} needed around the whole file; "=" is allowed instead of ":"; quotes around the key are optional; commas after values are optional; read access through compile time hashes much faster t…
- OpenFBX : Lightweight open source FBX importer
- fbx : Single-file binary FBX importer.
- tinyobjloader : Tiny but powerful single file wavefront obj loader
- DevIL : Developer's Image Library (DevIL) is a cross-platform image library utilizing a simple syntax to load, save, convert, manipulate, filter, and display a variety of images with ease. It is highly por…
- json : C++ header-only JSON library
- glw_json : Single-header fast and compact C++ library for JSON serialization, no memory allocation during parsing.
- svgpp : C++ SVG library
- Vili : A nice and readable data format !
- SimpleJSON : Simple C++ JSON library
- ini : A tiny ANSI C library for loading .ini config files
- cfgpath : Cross platform C header for obtaining paths to user configuration files and directories
- juson : lightweight json parser in c
- simpleini : Cross-platform C++ library providing a simple API to read and write INI-style configuration files
- jsonpack : JsonPack is a high-performance and extremely easy-to-use JSON serialization library
- yaml-cpp : A YAML parser and emitter in C++
- json : JSON for Modern C++
- pugixml : Light-weight, simple and fast XML parser for C++ with XPath support
- rapidcsv : C++ CSV parser library
- fast-cpp-csv-parser : fast-cpp-csv-parser
- csvstream : An easy-to-use CSV file parser for C++
- Qxlnt : Use xlnt in Qt5. xlnt is cross-platform user-friendly xlsx library for C++14.
- Qlibxlsxwriter : Use libxlsxwriter in Qt5. libxlsxwriter is a C library for creating Excel XLSX files.
- QSimpleXlsxWriter : Use SimpleXlsxWriter in Qt5. SimpleXlsxWriter is C++ library for creating XLSX files for MS Excel 2007 and above.
- QXlsx : Excel file(*.xlsx) reader/writer library using Qt5. Descendant of QtXlsx.
- simdjson : Parsing gigabytes of JSON per second
- DuckX : C++ library for creating and updating Microsoft Word (.docx) files.
- inih : This is a header only C++ version of inih.
- FileSystem
- filesystem : An implementation of C++17 std::filesystem for C++11 /C++14/C++17 on Windows, macOS and Linux.
- littlefs : A little fail-safe filesystem designed for microcontrollers
- watchman : Watches files and records, or triggers actions, when they change.
- edwork : Decentralized, distributed read-write filesystem
- dr_fs : Single file libraries for file system related stuff
- apathy : C++ Path Manipulation
- filesystem : A tiny self-contained path manipulation library for C++
- tinydir : Lightweight, portable and easy to integrate C directory and file reader
- dirent : C/C++ library for retrieving information on files and directories
- whereami : Locate the current executable and the current module/library on the file system
- Reflection & Serialization
- putils_reflection - A simple, stand-alone, header-only and easily pluggable
constexpr
reflection system. - Vzor : Vzor is a reflection library for C++, with interface in Python and C++, macroless, intrusiveless, working on top modern C++ attributes
- magic_enum : Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
- ArticleEnumClass-v2 :
- tinyrefl : A work in progress minimal C++ static reflection API and codegen tool.
- datalibrary : Open Source Data Library for data serialization.
- enum_traits : Type traits for properties of C / C++ enum types
- enum_reflect : A demo repo for enum_traits
- cpgf : cpgf library
- meta : Header-only, non-intrusive and macro-free runtime reflection system in C++
- metareflect : Metareflect is a lightweight reflection system for C++, based on LLVM and Clangs libtooling.
- zserio : zero sugar, zero fat, zero serialization overhead
- rttr : C++ Reflection Library
- cista : Simple C++ Serialization
- ponder : C++ reflection library
- tekari : A visualization and editing tool for reflectance data
- bitsery : Your binary serialization library
- tstype : Lightweight C++ RTTI library
- capnproto : Cap'n Proto serialization/RPC system - core tools and C++ library
- reflect : easy reflection and serialization for C++17
- cpp-serializers : Benchmark comparing various data serialization libraries (thrift, protobuf etc.) for C++
- cppexpose : C++ library for type introspection, reflection, and scripting interface
- iguana : universal serialization engine
- Reflex : C++14 Reflection Library
- reflect : Reflection and serialization in C++
- cpp-generic-serialize : C++11 Header-only generic binary-serialization for arbitrary types (and nested containers)
- rpoco : (R)eflect (P)lain (O)ld (C)++ (O)bjects, is a small header based reflection system that supports JSON serialization,etc
- CPP-Reflection : C++ Reflection Parser / Runtime Skeleton
- cereal : A C++11 library for serialization
- cmake-reflection-template : A template for simple C++ reflection done with CMake and Python (no other external tools)
- MetaStuff : Code I use in my game for all serialization/deserialization/introspection stuff
- type_name : C++ type_name template utilities for pretty-printing type names
- smartenum : Macros for declaring enums in C++ that include to_string conversion and looping through all enum values
- better-enums : C++ compile-time enum to string, iteration, in a single header file
- magic_get : std::tuple like methods for user defined types without any macro or boilerplate code
- ctti : Compile Time Type Information for C++
- nameof : Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum
- flatbuffers : FlatBuffers: Memory Efficient Serialization Library
- protobuf : Protocol Buffers - Google's data interchange format
- archive : Simple, compact, endian-safe and header-only serialization/deserialization for C++
- reflect : C++ reflect library in less than 200 lines
- data_desk : A data description language parser with introspection and custom code capabilities, intended for compile-time code generation in projects.
- msgpack-c : MessagePack implementation for C and C++ / msgpack.org[C/C++]
- wise_enum : A reflective enum implementation for C++
- enum.hpp : C++17 compile-time enum reflection library
- reflection :
- putils_reflection - A simple, stand-alone, header-only and easily pluggable
- Metaprogramming
- putils_meta - Phisko's metaprogramming utilities. Collection of type traits and compile-time helpers.
- monster : The Art of Template MetaProgramming in Modern C++
- STT-C-Compile-Time-Snake : Snake/Nibbler implementation using C++ template metaprogamming
- brigand : Instant compile time C++ 11 metaprogramming library
- cxl : A C++17 metaprogramming library. Strings, Parsing, Typelists, Aggregate to Tuple conversions and Constant integral literals
- hana : Your standard library for metaprogramming
- Functional Programming
- cpp_functional_programming : List of materials about functional programming in C++
- hof : Higher-order functions for c++
- easing-functions : Easing functions implemented in C++
- luna-studio : An IDE for hybrid textual and visual functional programming.
- ftl : C++ template library for fans of functional programming
- Function : Heap allocation free version of C++11 std::function
- fixed_size_function : Fixed size function wrapper like std::function
- FastDelegate : C++11 version of Don Clugston's FastDelegate library, by Ceniza.
- any_function : any_function is a functional counterpart to std::any
- delegates : Fast delegates implementation
- SLACC : Simple Lightweight Adaptable Command Console
- function_ref : A lightweight, non-owning reference to a callable.
- expected : C++11/14/17 std::expected with functional-style extensions
- pluscallback : easy to use callback library for C++
- asyncpp : C++ async operations
- coro : Modern coroutine library for C++
- libco : libco is a coroutine library which is widely used in wechat back-end service. It has been running on tens of thousands of machines since 2013.
- eventpp : Minimal C++ Event Bus
- FunctionalPlus : Functional Programming Library for C++. Write concise and readable C++ code.
- function2 : Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more
- eventbus : A simple, header only event bus library written in modern C++17.
- Containers
- mlib : Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).
- SmartIteratorCpp11 : Smart iterator like range-v3 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
- frozen : a header-only, constexpr alternative to gperf for C++14 users
- scattered : C++ Scattered Containers
- radixsort : Radix sort implementations in C and C++
- judy : A "general purpose dynamic array library" in C. Project page: http://sourceforge.net/projects/judy/
- judy-template : An implementation of the Judy array, wrapped in a c++ template. Uses Karl Malbrain's implementation, http://code.google.com/p/judyarray/ . Public domain.
- EasyIterator : C++ iterators made easy! Zero cost abstractions for C++ iterators.
- plf_colony : An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-perf…
- flat.hpp : Library of flat vector-like based associative containers
- skiplist.h : Single-header-file, public domain, type-generic C89 skip list implemementation
- avl_tree : High performance C implementation of AVL trees
- rsht : really simple hash table
- array : contiguous container library - arrays with customizable allocation, small buffer optimization and more
- sparse-map : C++ implementation of a memory efficient hash map and hash set
- hopscotch-map : C++ implementation of a fast hash map and hash set using hopscotch hashing
- flat_hash_map : A very fast hashtable
- devector : Resizable contiguous sequence container with fast appends on either end.
- hashMap : A concurrent thread-safe hash map implemented in C++
- EASTL : EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
- STL : MSVC's implementation of the C++ Standard Library.
- plf_list : A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average. 20-24% speed increase in use-case testing.
- rax : A radix tree implementation in ANSI C
- ga : Partitioned Global Address Space (PGAS) library for distributed arrays
- xenium : A C++ library providing various concurrent data structures and reclamation schemes.
- sparsehash-c11 : Experimental C++11 version of sparsehash
- Sprout : C++11/14 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others.
- immutable-cpp : Persistent immutable data structures for C++
- HashMap : An open addressing linear probing hash table, tuned for delete heavy workloads
- TinySTL : TinySTL is a subset of STL(cut some containers and algorithms) and also a superset of STL(add some other containers and algorithms)
- ch_stl : Colby Hall's C++ Standard Library
- pdqsort : Pattern-defeating quicksort.
- urde : Data interchange, editor suite, and runtime re-implementations for games by Retro Studios | Mirror
- Logging
- DebugViewPP : DebugView++, collect, view and filter your application logs
- NSLogger : A modern, flexible logging tool
- pprint : Pretty Printer for Modern C++
- glog : C++ implementation of the Google logging module
- spdlog : Fast C++ logging library.
- Frlog : A tiny, fast, thread safe, easy to use logging class.
- loguru : A lightweight C++ logging library
- static-print : A GCC 7.1 patch that adds a 'static_print' statement to C++.
- nanoprintf : A tiny embeddable printf replacement written in C89/C99.
- . : A simple streaming library
- cpp-format : C#/Rust/Python style formatting in C++.
- tsf : Type safe printf-compatible C++ library
- fmt : A modern formatting library
- tinyformat : Minimal, type safe printf replacement library for C++
- plog : Portable, simple and extensible C++ logging library
- reckless : Reckless logging. Low-latency, high-throughput, asynchronous logging library for C++.
- FASTER : Fast persistent recoverable log and key-value store, in C# and C++, from Microsoft Research.
- tabulate : Table Maker for Modern C++
- leaf : Lightweight Error Augmentation Framework
- logwizard : Log Wizard - a Log Viewer that is easy and fun to use!
- tinge : a simple, fast, header-only library for C++ which enables pretty colours on the terminal.
- spinnercpp : Simple header only library to add a spinner / progress indicator to any terminal application.
- emojicpp : Emoji
- pprintpp : Typesafe Python Style Printf Formatting for C++
- elephant-logger : A flexible C++ logger with customisable categories, outputs, and filters
- Signals and Slots
- SISL : An other cross-platform/cross-compiler Signals and Slots library for C++11 and more...
- SimpleSignal : Simple signal using templates
- SimpleSignals : simple threadsafe C++ signal/slot implementation
- SimpleSignal : High performance C++11 signals
- signal11 : C++11 signal slot implementation
- nano-signal-slot : Pure C++17 Signals and Slots
- observable : Observer pattern and signals/slots for C++11 projects
- Profilers
- microprofile : microprofile - embeddable CPU/GPU profiler
- NVMLQuery-Windows : Windows sample code demonstrating how to query GPU metrics using the NVIDIA NVML API
- GpuProf : Realtime profiler for AMD / NVIDIA / Intel GPUs
- gperftools : Main gperftools repository
- monitoring : a lib to determine CPU /memory consumption.
- GPUProfiler : GPUProfiler - Understand your application and workflow resource requirements
- amdmemorytweak : Read and modify memory timings on the fly
- nonius : A C++ micro-benchmarking framework
- CapFrameX : Frametime capture and analysis tool
- minitrace : Simple C/C++ library for producing JSON traces suitable for Chrome's built-in trace viewer (about:tracing).
- CompareIntegerMaps : Generates benchmark data for two different data structures, then renders some graphs.
- netdata : Real-time performance monitoring, done right! https://my-netdata.io/
- gputop : A GPU profiling tool
- libperflogger : Frametime logger for Linux Vulkan/OpenGL
- perftest : GPU texture/buffer performance tester
- PocketTrace : Intrusive Profiler for C++ (comes with viewer)
- dmt : Dynamic memory tracker for C
- LPGPU2-CodeXL : LPGPU2 CodeXL power performance analysis and feedback tool for GPUs
- libProfiler : Profile your c++ code
- verysleepy : Very Sleepy, a polling CPU profiler
- renderdoc : RenderDoc is a stand-alone graphics debugging tool.
- RenderDoc-Manager : An exemple on how to use RenderDoc inside your engine.
- c_nanoprofiler :
- apitrace : Tools for tracing OpenGL, Direct3D, and other graphics APIs
- processhacker : A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware.
- orbitprofiler : C/C++ Performance Profiler
- chobo-profiling : A multi-platform call-graph intrusive C++ performance profiling library
- semile : Profile what you care, monitor how it goes (support C/C++)
- LiveMemTracer : Live memory allocation tracing header only library using ImGui
- Remotery : Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer
- Radeon-GPUProfiler : Radeon GPU Profiler (RGP) is a tool from AMD that allows for deep inspection of GPU workloads.
- RCP : The Radeon Compute Profiler (RCP) is a performance analysis tool that gathers data from the API run-time and GPU for OpenCL™ and ROCm/HSA applications. This information can be used by developers to…
- Compressonator : Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs
- CodeXL : CodeXL is a comprehensive tool suite that enables developers to harness the benefits of CPUs, GPUs and APUs.
- gapid : Graphics API Debugger
- glintercept : GLIntercept is a OpenGL function call interceptor for Windows that will intercept and log all OpenGL calls
- ThreadTracer : Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
- microprofile : microprofile is an embeddable profiler
- gpuvis : GPU Trace Visualizer
- MTuner : MTuner is a C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms
- yardstick : C++ Instrumented Profiling
- optick : C++ Profiler For Games
- benchmark : A microbenchmark support library
- easy_profiler : Lightweight profiler library for c++
- profi : A light-weight C++ profiling library
- SIMD-Visualiser : A tool to graphically visualize SIMD code
- Caliper : Caliper is a flexible application introspection system
- HWCPipe : Hardware counters interface
- picobench : A micro microbenchmarking library for C++11 in a single header file
- tracy : Mirror of https://bitbucket.org/wolfpld/tracy
- nanobench : Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20
- coz : Coz: Causal Profiling
- access_profiler : a tool to count accesses to member variables in c++ programs
- llvm-propeller : PROPELLER: Profile Guided Optimizing Large Scale LLVM-based Relinker
- cupti_profiler : CUPTI GPU Profiler
- Testing
- doctest : The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD
- EATest : EATest is a C++ unit testing framework. It's goal is to have a scalable architecture, have minimal dependencies, and simple usage.
- gtest-adapter :
- gtest-parallel : Run Google Test suites in parallel.
- gtest-tap-listener : GoogleTest TAP Listener
- gtest-gbar : Automatically exported from code.google.com/p/gtest-gbar
- gtest-runner : A cross-platform, Qt5 based Graphical User Interface for Google Test unit tests
- googletest : Googletest - Google Testing and Mocking Framework
- mettle : A C++14 unit test framework
- utest.h : single header unit testing framework for C and C++
- greatest : A C testing library in 1 file. No dependencies, no dynamic allocation. ISC licensed.
- mettle : A C++14 unit test framework
- Catch2 : A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
- mutate_cpp : C++ Mutation Test Environment
- trompeloeil : Header only C++14 mocking framework
- Platforms
- cpuinfo : CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)
- yue : A library for creating native cross-platform GUI apps
- cpp-ipc : C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.
- portable-file-dialogs : Portable GUI dialogs library, C++11, single-header
- platform_bionic : Hardened Android standard C library. Some of the past hardening has not yet been ported from Marshmallow, Nougat and Oreo to this Android Pie repository. Most is available via archived tags in http…
- wil : Windows Implementation Library
- ipc : Public domain single header inter process communication primitives
- flow9 : Platform for safe, easy and productive programming of complex, multi-platform apps with a modern user interface
- win-wallpaper : Manage the desktop wallpaper on Windows
- cpu_features : A cross platform C99 library to get cpu features at runtime.
- switch-portlibs-examples : Switch portlibs examples using devkitA64 and libnx.
- libnx : Library for Switch Homebrew
- Detours : Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.
- CrossWindow : A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
- WindowsHModular : A modular Windows.h Header. Licensed under Public Domain & MIT.
- clip : Cross-platform C++ library to copy/paste clipboard content
- osdialog : A cross platform wrapper for OS dialogs like file save, open, message boxes, inputs, color picking, etc.
- nloader : Native win32 executables loader
- libusb : A cross-platform library to access USB devices
- WinToast : WinToast is a lightly library written in C++ which brings a complete integration of the modern toast notifications of Windows 8 & Windows 10. Toast notifications allows your app to inform the users…
- borderless-window : A minimal borderless window with the Windows API
- nativefiledialog : A tiny, neat C library that portably invokes native file open and save dialogs.
- process.h : A simple one header solution to launching processes and interacting with them for C and C++.
- PlatformFolders : A C++ library to look for special directories like "My Documents" and "%APPDATA%" so that you do not need to write Linux, Windows or Mac OS X specific code
- Skeleton : Skeleton: A Dead Simple, Responsive Boilerplate for Mobile-Friendly Development
- 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.
- turf : Configurable C++ platform adapter
- dynlib-loader : Cross-platform Runtime dynamic library loader (.dll / .so).
- dynamicLinker : C++11 wrapper for Linux / OS X / Windows / BSD dynamic libraries ( .so .dylib .dll ).
- systemd : The systemd System and Service Manager
- not-enough-standards : A modern header-only C++ library that provides platform-independent utilities.
- EasyWindow : Create window easily
- gamemode : Optimise Linux system performance on demand
- ArduinoJoystickLibrary : An Arduino library that adds one or more joysticks to the list of HID devices an Arduino Leonardo or Arduino Micro can support.
- cppwinrt : C++/WinRT is a standard C++ language projection for the Windows Runtime
- libenjoy : Simple & small C joystick library for Linux and Windows. See README
- nxquake2 : Nintendo Switch port of the Yamagi Quake II client
- compiler-warnings : A list of compiler warning flags for different GCC and clang versions
- Command Line Arguments
- getopt : C++ command line options parser for C++ Standard Library
- args : A simple header-only C++ argument parser library. Supposed to be flexible and powerful, and attempts to be compatible with the functionality of the Python standard argparse library (though not nec…
- argparse : Argument Parser for Modern C++
- cli : A library for interactive command line interfaces in modern C++
- radare2 : unix-like reverse engineering framework and commandline tools
- Clara : A simple to use, composable, command line parser for C++ 11 and beyond
- CmdLine2 : Command line argument parser (C++14)
- clipp : easy to use, powerful & expressive command line argument parsing for modern C++ / single header / usage & doc generation
- argh : Argh! A minimalist argument handler.
- cxxopts : Lightweight C++ command line option parser
- Arguments : Command line argument handling for C++
- gflags : The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at: https://gflags.github.io/gflags/
- args : Simple and type-safe commandline argument parser for C++14
- Regex
- CppVerbalExpressions : C++ regular expressions made easy
- tiny-regex-mod : Single file modification of tiny-regex-c by Kokke
- BlingFire : A lightning fast Finite State machine and REgular expression manipulation library.
- cparse : A C++ configurable Expression Parser. Useful as a Calculator or for helping you write your own Programming Language
- Date
- Clang
- clang :
- clang-reflect : A clean implementation of reflection and related proposals.
- cftf : Clang from the Future: A C++17 to C++11 source-to-source compiler
- clang-power-tools : Bringing clang-tidy magic to Visual Studio C++ developers.
- clang-format-all : Run clang-format -i on all of the files in your C or C++ project
- CppAst : CppAst is a .NET library providing a C/C++ parser for header files powered by Clang/libclang with access to the full AST, comments and macros
- autotidy : Speedier handling of clang-tidy checking
- cppinsights : C++ Insights - See your source code with the eyes of a compiler
- cppast : Library to parse and work with the C++ AST
- llvm-project : The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Note: the repository does not accept github pull requests at this moment. Please submit your patches at…
- HotReload
- car : Compile and Run! Execute source files directly without worrying at all about compiling.
- PolyHook_2_0 : C++17, x86/x64 Hooking Libary v2.0
- Ratchet : A gameclient hooking framework to aid debuging
- PolyHook : x86/x64 C++ Hooking Library
- jet-live : c++ hot code reload for linux and macos
- blink : A tool which allows you to edit source code of any MSVC C++ project live at runtime
- CToy : Interactive C coding environment
- C-Hotloading : Example of MSVC makefile project for hotloading C with intellisense/debugger compatability
- RuntimeCompiledCPlusPlus : Change C++ code at runtime
- live_reload_test : demonstration of live reloading
- cr : cr.h: A Simple C Hot Reload Header-only Library
- live_edit : A collection of single-header libraries to help with reloading, debugging and profiling C(++) code.
- RCCpp_DX11_Example : Runtime Compiled C++ example based on the Dear ImGui DirectX11 Example
- UID
- Debug
- PPK_ASSERT : PPK_ASSERT is a cross platform drop-in & self-contained C++ assertion library
- debugbreak : break into the debugger programmatically
- crashpad : A crash-reporting system
- in_constexpr : An approach for runtime detection inside a constexpr function
- backward-cpp : A beautiful stack trace pretty printer for C++
- debug_assert : Simple, flexible and modular assertion macro.
- EAAssert : EAAssert is a simple and lightweight assert technology.
- dbg-macro : A dbg(…) macro for C++
- dbgtools : Small collection of debug-related drop-in c/c++-utils
- x64dbg : An open-source x64/x32 debugger for windows.
Libraries
- putils - Phisko's C++ utilities. Large collection of helper classes and functions.
- HandyCpp : A large collection of header only utilities and convenience functions that make C++17 development happier.
- single_file_libs : List of single-file C/C++ libraries.
- bitsquid-foundation : A minimalistic foundation library with functions for memory allocation, basic collections, etc. The library has been written with a data-oriented philosophy: POD structures are preferred over class…
- EABase : EABase is a small set of header files that define platform-independent data types and platform feature macros.
- EAStdC : EAStdC is a package which implements basic library facilities that are similar to those in the standard C library.
- acd : Single file utilities for C++.
- single-file-libs : super permissive, drop-in, single file stuff
- par : single-file C libraries from Philip Allan Rideout
- paq : public domain single-file C/++ libraries for game devs
- Core : Core libraries and utilities
- dr_libs : A collection of public domain single-file libraries for C/C++.
- limbus : A cross-platform game library in the public domain
- RandomCode : Random projects that are ok to be public, like blog stuff
- tinypile : Assorted small one-or-two-file libs. C/C++. Public domain. Cross-platform. No deps.
- dm : Header-only base C++ library.
- sokol : minimal cross-platform standalone C headers
- gamedev_libraries : A collection of open source c/c++ libraries for gamedev
- Flint : Public domain single-file header-only C libraries
- sx : Portable base library for C programmers, designed for performance and simplicity.
- cosmos : Algorithms that run our universe | Your personal library of every algorithm and data structure code that you will ever encounter | Ask us anything at our forum
- mmx : single header libraries for C/C++
- final_game_tech : Game related libraries written in C/C++
- bss-util : Black Sphere Studios utility library for C/C++
- kj : kj is a small collection of stb inspired libs.
- sac : C/C++ helpers
- ZHeaders : Public domain single-file libraries - stb style
- miscsrc : My collection of miscellaneous source code
- libs : Single-file public domain libraries for C/C++
- stb : stb single-file public domain libraries for C/C++
- tinybits : Tiny bits and useful snippets that I keep using everywhere (C, C++)
- tacent : A collection of C++ modules implementing linear algebra, text and file IO, containers, image loading and saving, command-line parsing, etc. Useful for the foundation of a game engine or other inter…
- libdhcore : Lightweight, performance oriented, Core library for 'C' programmers
- slibs : Single file libraries for C/C++
- foundation_lib : Cross-platform public domain foundation library in C providing basic support data types and functions to write applications and games in a platform-independent fashion.
- cute_headers : Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
- 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
- single_file_libs : List of single-file C/C++ libraries.
- kit : C++11 libs: await, channels, reactive/signals, timelines, alarms, logging, args, etc.
- msh : Maciej's Toolbox
- abseil-cpp : Abseil Common Libraries (C++)
- Nimble : Nimble is a header-only utility library.
- rsm : Utility Library
- bx : Base library used across multiple projects
- utils : A collection of data structures and utilities (C++11)
- loki : A C++ Template library, developed by Andrei Alexandrescu, the author of the book Modern C++ Design.
- loki-lib : Loki is a C++ library of designs, containing flexible implementations of common design patterns and idioms.
- GSL : Guidelines Support Library
- vrm_core : Lightweight C++14 utility library. (Modernized, stripped and cleaned-up version of SSVUtils.)
- Aurora : Header-only library with unconventional C++ features, like deep-copy smart pointers, dynamic dispatch, type-erased ranges
- gsl-lite : gsl lite - A single-file header-only version of ISO C++ Guidelines Support Library (GSL) for C++98, C++11 and later
- cpp-utilities : Miscellaneous C++11 utility classes and functions
- Snippets : (Hopefully) useful code snippets and header-only libs
- sts : My collection of public domain single file libraries
- gb : gb single-file public domain libraries for C & C++
- emilib : Loose collection of misc C++ libs
- liboli : personal single-header c89 library with misc utilities (I actually made this just so that I can add -loli to ldflags)
- commonItems : Common utilities used by various converters
- zpl : Your C11 Powerkit
- Plinth : Foundation library of helpful classes/functions
- sftools : Bunch of tools for SFML application development
- MISC : Miscellaneous small code snippets.
Engines
- kengine - The Koala engine is a type-safe and self-documenting implementation of an Entity-Component-System (ECS), with a focus on runtime extensibility and compile-time type safety and clarity.
- game : The culmination of everything I'm passionate about
- Enjon : Game engine created using OpenGL and C++
- Shadow-Functions-Engine : A small ASCII graphical game engine for the windows console (and Linux since v2.0.2.) done in C++
- cheat-engine : Cheat Engine. A development environment focused on modding
- CORE : Game engine core playground
- Cauldron : A simple framework for rapid prototyping on Vulkan or Direct3D 12
- bigg : bgfx, imgui, glfw, glm
- goxel : Goxel: Free and Open Source 3D Voxel Editor
- lumixengine_shader_editor : Visual shader editor for Lumix Engine
- Open7Days : A fast engine based on the technology behind 7 days to die.
- NebulaRender : A powerful physically based renderer with a fully featured editor.
- GameEngine : Little Game Engine that aims to be Physically Based for the lighting part
- include-engine : #include
- MAGE : 🧙 MAGE - Matthias Advanced Game Engine
- TrinityCore : TrinityCore Open Source MMO Framework (master = 8.2.0.31478, 3.3.5 = 3.3.5a.12340)
- boden : Purely native C++ cross-platform framework for Android and iOS development. https://www.boden.io
- AtomicGameEngine : The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript
- NoahGameFrame : A fast, scalable, distributed game server engine/framework for C++, include actor library, network library,can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua …
- Viry3D : Cross platform 2D and 3D game engine in C++.
- aether3d : Aether3D Game Engine
- kiyosGameEngine : KiyoGameEngine is a small header only C++17 library, that provides boilerplate code for a small to medium sized games
- Wolf.Engine : The Wolf is a comprehensive set of C++ open source libraries for realtime rendering, realtime streaming and game developing
- OpenXRay : Improved version of the X-Ray engine, used in world famous S.T.A.L.K.E.R. game series by GSC Game World.
- mintaro : A small framework for making simple games.
- DmitrysEngine : C99 cross-platform 3D game engine with absolute minimum of external dependencies
- libavg :
- zdog : Flat, round, designer-friendly pseudo-3D engine for canvas & SVG
- Xbox-ATG-Samples : Game development samples published by the Xbox Advanced Technology Group.
- shiva : Modern Cross-Platform C++ Engine with modularity (MIT). Maintains here: https://github.com/KomodoPlatform/antara-gaming-sdk
- enduro2d : Yet another 2d game engine of dreams (work in progress)
- FlexEngine : A personal game engine
- rbfx : Game engine with extensive C# support and WYSIWYG editor.
- qtbase : Qt Base (Core, Gui, Widgets, Network, ...)
- Engine : C++ Game Engine (Under Construction!)
- Acid : A high speed C++17 Vulkan game engine
- quartz-engine : A New Game Engine, specializing in ease of content creation through a scripting language
- Corange : Pure C Game Engine
- Simpleton-Engine : What a stupid name for a library
- BabylonCpp : A port of Babylon.js to C++
- igneous : Igneous is an open source game engine written in C++.
- godot : Godot Engine – Multi-platform 2D and 3D game engine
- anki-3d-engine : AnKi 3D Engine - Vulkan backend, modern renderer, scripting, physics and more
- raylib-cpp : C++ Object Oriented Wrapper for raylib
- engine : Home of a voxel game engine and its tools (like a voxel editor)
- PGE-Project : Platform Game Engine Project by Wohlstand
- Daemon : The Dæmon game engine. With some bits of ioq3 and XreaL.
- thunder : An open source game engine is written in C++ with a flexible architecture
- vxr : General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
- rex : rex engine and game
- OpenGraphic : Graphic Engine & Game Engine lists
- WickedEngine : C++ game engine focusing on modern rendering techniques and performance.
- alimer : Cross-platform 2D and 3D game engine.
- ignifuga : Ignifuga Game Engine
- Rak : Real-time hybrid engine written in C++
- CRYENGINE : CRYENGINE is a powerful real-time game development platform created by Crytek.
- engine : Fast and lightweight WebGL game engine
- fusion3d : A next gen 3D engine fusing modern techniques and apis.
- Cinder : Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
- EtherealEngine : C++ Game Engine and Editor
- mos : Lightweight game engine.
- halley : A lightweight game engine written in modern C++
- eight : Automatically exported from code.google.com/p/eight
- RaZ : Modern & multiplatform 3D engine in C++17
- unity-decompiled :
- limonEngine : 3D FPS game engine with full dynamic lighting and shadows
- DOOM : DOOM Open Source Release
- OpenMiner : Scriptable Minecraft-like game engine written in C++14 using GameKit
- openFrameworks : openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
- Arcane-Engine : 3D C/C++ Game Engine - Created By Brady Jessup
- permafrost-engine : An OpenGL 3.3 RTS game engine written in C
- Cardinal-Engine : 3D Cross-Platform Game Engine programmed in C++ with OpenGL 3
- eternity : The Eternity Engine
- Quiver : A cross-platform pseudo-3D game engine written in C++
- GibEngine : Cross-platform OpenGL 3D game engine
- Inline-Engine : Game engine written in C++ with ease of use and next-gen parallel computing in focus.
- DiligentEngine : A modern cross-platform low-level graphics library and rendering framework
- yeti : A general-purpose data-driven game engine with tools. Attribution based licensing.
- GameEngineResources :
- openage : Free (as in freedom) open source clone of the Age of Empires II engine
- Zmey : A game engine. That breathes fire and awesomeness
- Game-Engine-Architecture : A repo contaning the learning materials for the course 'Game Engine architecture'
- Worldstone : Diablo 2 tools and engine reimplementation in c++
- catgl : a cross-platform 3D graphics engine
- SpartanEngine : Game engine with an emphasis on architectual quality, targeting high end machines
- ETEngine : A merge between my planet framework and open gl graphics framework that will develop into a space sim focused game engine
- Falcor : Real-Time Rendering Framework
- BlueshiftEngine : Blueshift is a cross-platform 3D game engine implemented in C++. it's free, open-source, and works on Windows, macOS, iOS, and Android. The project is currently in an early stage of development.
- crogine : SDL2 Based Game Framework for mobile devices
- lumberyard : Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.
- saiga :
- gincu : Gincu -- a simple match three game, game engine, and game framework written in C++
- AVA : A tiny unlicensed 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.
- darkhammer : darkHAMMER is a lightweight, open-source, multiplatform game engine. written in C (C99) language, supports python and C# bindings and lua scripts. Runs on windows and linux
- FishEngine : Simple, Unity-like Game Engine.
- ogre : Ogre1 - scene-oriented, flexible 3D engine written in C++
- NazaraEngine : Nazara Engine is a fast, complete, cross-platform, object-oriented API which can help you in your daily developper life.
- LumixEngine : 3D Game Engine
- Serious-Engine : An open source version of a game engine developed by Croteam for the classic Serious Sam games.
- BansheeEngine : Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting
- polymer : graphics + interaction engine
- Urho3D : Cross-platform 2D and 3D game engine.
- gebbdoom : Game Engine Black Book: Doom
- ALX : C++11 Allegro 5 wrapper library.
- bsf : Modern C++14 library for the development of real-time graphical applications
- ClanLib : ClanLib is a cross platform C++ toolkit library.
- raylib : A simple and easy-to-use library to enjoy videogames programming
- smkflow : A C++ dataflow node editor -- Compatible with WebAssembly.
- game-prototype : A simple 2D top-down game framework.
- megaglest-source : MegaGlest real-time strategy game engine (cross-platform, 3-d)
- freeaoe : A free engine capable of running Age of Kings.
- Horde3D : Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
- neoGFX : Cross-platform GPU-oriented C++ application/game framework
- KickJS : A WebGL game engine for modern web-browsers.
- LittleOrionEngine : C++ 3D Engine developed during the Master's Degree in AAA Videogames Development.
- GDevelop : GDevelop is an open-source, cross-platform game engine designed to be used by everyone.
- Lumos : Cross-Platform C++ 2D/3D game engine
- saddy-graphics-engine-2d : Saddy is an open-source crossplatform 2D graphic engine, based on OpenGL, which can be used for creating 2D games. like platformers or RPGs.
- WildMagic : A for of a well-known WildMagic engine v5.9
- khanat-opennel-code :
- pmtech : Lightweight, multi-platform, data-oriented game engine.
- SimpleRenderEngineProject : Small C++14 render engine with dependencies
- SimpleRenderEngine : Small C++14 render engine
- ezEngine : An open source game engine in active development
- engge : Experimental game engine for Thimbleweed park
- lovr : Virtual Reality Engine
- crown : The flexible game engine.
- OpenSiv3D : C++17/C++20 framework for creative coding
- LDK : A game engine being developed from scratch for learning and practicing essential game development skills. Each and every single feature is written from scratch with absolutely no third party code or libraries.
- JNGL : Easy to use 2D engine for Linux, Windows, macOS, Android, iOS, Xbox and the Nintendo Switch
- SFML based engines
- SFML-Game-Development-Book : Full and up-to-date source code of the chapters of the "SFML Game Development" book
- SFML-book : SFML Blueprint book, source code
- nero-game-engine : Advanced SFML Game Engine, Designed to be Simple and Intuitive
- SFBL : SFML Box2D Light
- SchiffbruchEngine : SchiffbruchEngine
- Swift2 : A SFML-backed game framework.
- SFME : Simple and Fast Multimedia Engine
- xygine : 2D engine / framework built around SFML
- SFML-Game-Framework : Very, very simple and barebones framework for SFML games and that
- SFML-DOOM : Original DOOM source code adapted to use c++ with SFML
- Vigilante-Game-Framework : 2D/3D C++ game framework written for use with SFML.
- ObEngine : 2D Game Engine with Lua Scripting made on top of SFML !
- QSFML : SFML 2.x.x / Qt 5.x.x integration
- is-Engine : Game Engine developed with the SFML library to create games on Android and PC
- Unity
- NativeRenderingPlugin : C++ Rendering Plugin example for Unity
- VectorFieldExamples : Unity VFX Graph examples with vector fields
- UnityWaveEquation : Wave Equations
- UnityRenderStreaming : Streaming server for Unity
- KDTree : Fast KDTree for Unity, with thread-safe querying.
- ShaderGraph-Custom-Lighting : A sample project showcasing a simple method to calculate custom lighting inside of Shader Graph for the Lightweight Render Pipeline. Includes a sample toon shaded scene and example assets. Built fo…
- UnitySpriteShaders : An Uber Shader for rendering Sprites in Unity.
- GPU-GEMS-3D-Fluid-Simulation : 3D fluid simulation on the in Unity
- Unity-Reorderable-List : Extended version of the Reorderable List in Unity
- ShaderTutorials : unity shader tutorials
- SpriteGlow : A sprite glow effect for Unity game engine
- TerrainToolSamples :
- UnitySkidmarks : A simple skidmark effect generator for Unity3D
- Force-Field : Project files for our tutorial on how to make a Force Field in Unity using Shader Graph.
- AtmosphericScattering : Atmospheric Scattering for Unity
- Unity-Experimental-DXR : The Experimental DXR project is a Unity custom version + HDRP custom version that support DXR and will let users play with DXR features. It is not representative of future integration of DXR in Unity.
- Deform : A fully-featured deformer system for Unity.
- SplineMesh : A Unity plugin to create curved content in real-time with bézier curves
- ZeroFormatter : Fastest C# Serializer and Infinitely Fast Deserializer for .NET, .NET Core and Unity.
- EntityComponentSystemSamples :
- UnityCursorControl : A mouse cursor control module for Unity3D
- PostProcessing : Post Processing Stack
- HelpfulScripts : A collection of random, useful scripts
- UnityVisualizations : Collection of shaders and visual effects created for Unity 3D.
- SEGI : A fully-dynamic voxel-based global illumination system for Unity
- Unity-Volumetric-Light : A powerful volumetric light plugin based on post-processing in Unity3D
- Entitas-CSharp : Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
- TestbedHDRP : Testbed project for Unity HDRP (High Definition Render Pipeline)
- command_terminal : Unity Command Terminal: In-Game Console
- Translucency-Shader : A deferred translucency (with Subsurface Scattering) shader for Unity3D that integrates with existing Deferred rendering and Standard shading PBR systems. Based on research by EA DICE presented at …
- sss-unity : Sub Surface Scattering Approximation Shader for Unity 3D
- msaa-shadow-fix : A little fix for the directional shadows with msaa enabled in Unity3d.
- Brunetons-Improved-Atmospheric-Scattering : A Unity port of Brunetons improved atmospheric scattering
- AI4Animation : Character Animation in Unity 3D using Deep Learning and Artificial Intelligence
- Json.Net.Unity3D : Forked Newtonsoft.Json to support Unity3D
- DataBind : Simple data binding for Unity
- Simple-RPG-in-Unity : Unity project for the Simple RPG series on GameGrind.
- Binary-Save-For-Unity : A quick and simple way to save and load objects for Unity.
- VFW :
- Unity_Shaders_Book : 书籍《Unity Shader入门精要》源代码
- Ocean_Community_Next_Gen : Next gen iteration of the unity community ocean shader
- MeshDecimator : A mesh decimation library for .NET and Unity.
- UnityMeshSimplifier : Mesh simplification for Unity.
- High-Speed-Priority-Queue-for-C-Sharp : A C# priority queue optimized for pathfinding applications
- UnityUtils : A library of C# utility classes for Unity
- Shader-Graph-Tutorials : Project files for our tutorials on using Shader Graph in Unity.
- UniGLTF : glTF 2.0 importer and exporter for Unity 5.6 or later
- CppScript :
- ScriptableRenderPipeline : Scriptable Render Pipeline
- RPG-Tutorial : The Unity Project for the RPG Tutorial Series!
- UnityCsReference : Unity C# reference source code
- NoiseShader : Noise shader library for Unity
- crest : An advanced ocean system implemented in Unity3D
- volsample : Research on sampling methods for real-time volume rendering
- AutoLOD : Automatic LOD generation + scene optimization
- AnimationImporter : Aseprite Animation Importer for Unity
- il2cpp : A MSIL/C# to C++ converter. Faster than CoreCLR with low memory overhead.(已弃坑.C#是个好语言,然而.NET不是一个干净的平台)
- Randomation-Vehicle-Physics : Vehicle physics system for the Unity engine.
- Ceto : Ceto: Ocean system for Unity
- InputSystem : An efficient and versatile input system for Unity.
- Extenject : Dependency Injection Framework for Unity3D
- UnrealEngine
- unrealcpp : Unreal Engine 4 C++ examples
- RuntimeMeshComponent : Unreal Engine 4 plugin component for rendering runtime generated content.
- ue4-docker : Windows and Linux containers for Unreal Engine 4
- unreal.hx : Unreal.hx: Haxe Integration for Unreal
- HoudiniEngineForUnreal : Houdini Engine Plugin for Unreal Engine 4
- ImpostorBaker : UE4 Plugin for generating Impostors for static meshes
- GA-SDK-UNREAL : A repository containing the GameAnalytics Unreal4 Plugin including documentation.
- UE4-Cpp-Tutorials : This repository contains all the code I've written in my website tutorials regarding the implementation of Game Systems inside UE4
- EpicSurvivalGameSeries : Third-person Survival Game for Unreal Engine 4.
- UnrealImGui : Unreal plug-in that integrates Dear ImGui framework into Unreal Engine 4.
- Emulators
- chips : 8-bit chip and system emulators in standalone C headers
- RetroArch : Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
- agnes : Header-only NES emulation library with an easy to use API.
- Gearboy : Game Boy / Gameboy Color emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
- ppsspp : A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or in #ppsspp on freenode (IRC) or just send pull requests /…
- pcsx2 : PCSX2 - The Playstation 2 Emulator
- binjgb : Gameboy emulator implemented in C
- pcsx-redux :
- gameboy-emulator : A simple gameboy emulator made in C++.
- rpcs3 : PS3 emulator/debugger
- libgba-cpp : C++ Library for Game Boy Advance Development
- 3DNes_Engine : Engine to convert NES games into 3D
Maths
- enoki : Enoki: structured vectorization and differentiation on modern processor architectures
- units : A Physical Units Library for C++ providing compile-time dimensional analysis and unit/quantity manipulation
- Compile-Time-Equations-Handler :
- version2 : Vector class library, latest version
- simde : Implementations of SIMD instruction sets for systems which don't natively support them.
- kissfft : a Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid
- MarkovNameGenerator : Markov process-based procedural name and word generator
- eigen-git-mirror : Git mirror of the official Eigen's repository -- PULL REQUEST MUST BE SENT TO: https://bitbucket.org/eigen/eigen
- curves : A library of curves for estimation.
- hexbvh : A hexagonal prism BVH: more efficient than AABB.
- wavalyzer : Small C++ utility for Fourier analysis and visualization of an audio signal
- dj_fft : Header only FFT library
- essentialmath : Example code and libraries for the book "Essential Mathematics for Games and Interactive Applications."
- fieldgen : Generates high-quality, optimally smooth tangent direction fields on triangle meshes.
- simd : Branch of the spec repo scoped to discussion of SIMD in WebAssembly
- spherical-harmonics : Spherical harmonics library
- MathUtilities : A collection of some of the neat math and physics tricks that I've collected over the last few years.
- GLFFT : A C++11/OpenGL library for the Fast Fourier Transform
- aabo : Axis Aligned Bounding Octahedron
- bhh : Bounding Halfspace Hierarchy
- muFFT : A library for computing the Fast Fourier Transform (FFT) in one or two dimensions.
- taichi_mpm : High-performance material point method (MPM) solver. (ACM Transactions on Graphics, SIGGRAPH 2018)
- random : Random for modern C++ with convenient API
- dlaf : Diffusion-limited aggregation, fast.
- rtm : Realtime Math
- pt_math : public domain fast scalar math routines
- splines-lib : Library of cubic spline utilities
- ArcLengthParameterisation : Accurately control the speed at which parameters interpolate over curves
- SipHash : High-speed pseudorandom function (reference code)
- bfp : Beyond Floating Point - Posit C/C++ implementation
- ezSIFT : ezSIFT: An easy-to-use standalone SIFT library written in C/C++
- fpot : Fast Point Overlap Test
- linedetector : Efficient and Effective Line Segment Detector
- matplotlib-cpp : Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib
- lolremez : Polynomial Approximations using the Remez Algorithm
- Flicks : A unit of time defined in C++.
- lunar : Basic astronomical functions
- math-as-code : a cheat-sheet for mathematical notation in code form
- sr_graph : A simple, one-file, header-only, C++ utility for graphs, curves and histograms.
- xo-math : Fast math for game developers. No headaches, no cruft.
- understanding_floatingpoint :
- normals_revisited : revisiting a known normal transformation in computer graphics
- Cullminator9000 : The fastest culler ever
- Simd : C++ image processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.
- SSE-to-NEON : Header file to translate SSE instructions to ARM NEON instructions
- flatbush : C++ port of https://github.com/mourner/flatbush
- libsimdpp : Portable header-only zero-overhead C++ low level SIMD library
- seamoptimizer : A C/C++ single-file library that minimizes the hard transition errors of disjoint edges in lightmaps.
- tinyexpr : tiny recursive descent expression parser, compiler, and evaluation engine for math expressions
- Summed-Area-Table : Summed-Area Table in a single file header-only C++11 library
- fft : Public-domain single-header FFT library (power-of-2 size case only)
- mathtoolbox : Mathematical tools (interpolation, dimensionality reduction, optimization, etc.) written in C++11 with Eigen
- blaze : Mirror of Blaze library on Bitbucket
- blaze_tensor : 3D Tensors for Blaze (https://bitbucket.org/blaze-lib/blaze)
- controlled_random :
- Cryptography and Hashing and Compression
- openh264 : Open Source H.264 Codec
- oldunzip : ZIP implode/explode and reduce/expand decompression libraries
- lonesha256-ansi : Portable, endian-proof, single-file, single-function sha256 implementation in ANSI C
- lonesha256 : Portable, endian-proof, single-file, single-function sha256 implementation in C
- lzsa : Byte-aligned, efficient lossless packer that is optimized for fast decompression on 8-bit micros
- zultra : Fast deflate implementation with zopfli-like ratios and a streaming API
- lz4ultra : Optimal LZ4 compressor, that produces files that decompress faster while keeping the best compression ratio
- em_inflate : Fast, small, in-memory inflate (zlib, deflate and gzip decompression)
- FastLZ : Byte-aligned LZ77 compression
- NvPipe : NVIDIA-accelerated zero latency video compression library for interactive remoting applications
- SymCrypt : Cryptographic library
- lz4 : Extremely Fast Compression algorithm
- zip : A portable, simple zip library written in C
- zlib : A massively spiffy yet delicately unobtrusive compression library.
- libpng : LIBPNG: Portable Network Graphics support, official libpng repository
- meow_hash : Official version of the Meow hash, an extremely fast non-cryptographic hash
- ulz : An ultra-fast LZ77 compressor/data compression library
- csoinfo : Small Windows specific C program to print compressed and original size of CSO/ZSO file (compressed ISO)
- WjCryptLib : Public Domain C Library of Cryptographic functions. Including: MD5, SHA1, SHA256, SHA512, RC4, AES, AES-CTR, AES-OFB, AES-CBC
- ooz : Open source Kraken / Mermaid / Selkie / Leviathan / LZNA / Bitknit decompressor
- xxHash : Extremely fast non-cryptographic hash algorithm
- robin-hood-hashing : Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20
- minih264 : Minimalistic H264/SVC encoder single header library
- density : Superfast compression library
- hash-prospector : Automated integer hash function discovery
- snappy : A fast compressor/decompressor
- miniz-cpp : A cross-platform header-only C++14 library for reading and writing ZIP files
- base-x : BaseX encoder / decoder for C++
- ed25519 : Portable C implementation of Ed25519, a high-speed high-security public-key signature system.
- smhasher : Automatically exported from code.google.com/p/smhasher
- mbedcrypto : a portable, small, easy to use and fast c++14 library for cryptography.
- hashcat : World's fastest and most advanced password recovery utility
- nozip : Tiny C library for reading ZIP files
- hashlibpp : Simple and very easy to use library to create a cryptographic checksum (hash) in plain C++
- fast_zlib : Heavily optimized zlib compression algorithm
- luazen : simple compression, encoding and cryptographic functions
- lizard : Lizard (formerly LZ5) is an efficient compressor with very fast decompression. It achieves compression ratio that is comparable to zip/zlib and zstd/brotli (at low and medium compression levels) at…
- andyzip : A fast and compact modern C++ (header only) zip, bzip2 and brotli library
- miniz : miniz: Single C source file zlib-replacement library, originally from code.google.com/p/miniz
- cryptopp : free C++ class library of cryptographic schemes
- 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)
- deutex : WAD composer for Doom, Heretic, Hexen, and Strife
- cxx14-hash : An object hashing facility.
- nibrans : Simple, single-file, nibble-based, adaptive rANS library with SSE2-accelerated modeling
- pithy : Fast compression / decompression library.
- microtar : A lightweight tar library written in ANSI C
- dmc_unrar : A dependency-free, single-file FLOSS unrar library
- FastPFor : The FastPFOR C++ library: Fast integer compression
- MetroHash : MetroHash v1: Exceptionally fast and statistically robust hash functions
- Kuku : Kuku is a compact and convenient cuckoo hashing library written in C++.
- lzma_sh : compact lzma decoder
- zstd : Zstandard - Fast real-time compression algorithm
- Linear Algebra
- cglm : Highly Optimized Graphics Math (glm) for C
- eigen : Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
- vml : C++17 GLSL-like vector and matrix math lib
- hlml : vectorized high-level math library
- mathfu : C++ math library developed primarily for games focused on simplicity and efficiency.
- xsimd : Modern, portable C++ wrappers for SIMD intrinsics and parallelized, optimized math implementations (SSE, AVX, NEON, AVX512)
- vectorial : Vector math library with NEON/SSE support
- dualquaternion :
- AngryQuaternion : Dual Quaternion Skinning
- MathGeoLib : A C++ library for linear algebra and geometry manipulation for computer graphics.
- Handmade-Math : A simple math library for games and computer graphics. Compatible with both C and C++.
- glm : OpenGL Mathematics (GLM)
- MEPP : Mepp - 3D MEsh Processing Platform
- gemmlowp : Low-precision matrix multiplication
- linalg : linalg.h is a single header, public domain, short vector math library for C++
- cmath3d : 3d math library for C. Vectors, 3x3 matrices, quaternions.
- linmath.h : a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions
- xsimd : C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, NEON, AVX512)
- ConeTightFitAABB :
- MIPP : MIPP is a portable wrapper for SIMD instructions written in C++11. It supports NEON, SSE, AVX and AVX-512.
- geomc : A c++ linear algebra template library
- Meshes & Polygons
- shaper : A C++ tool for 3D reconstruction from parallel 2D sections
- libigl : Simple C++ geometry processing library.
- cinolib : A generic programming header only C++ library for processing polygonal and polyhedral meshes
- assimp : Official Open Asset Import Library Repository. Loads 40+ 3D file formats into one unified and clean data structure.
- instant-meshes : Interactive field-aligned mesh generator
- trimesh2 : C++ library and set of utilities for input, output, and basic manipulation of 3D triangle meshes
- SeamAwareDecimater : Mesh simplification with UV's boundary preserved
- hole_fixer : Demo implementation of smoothly filling holes in 3D meshes using surface fairing
- bounding-mesh : Implementation of the bounding mesh and bounding convex decomposition algorithms for single-sided mesh approximation
- boundary-first-flattening :
- meshoptimizer : Mesh optimization library that makes meshes smaller and faster to render
- meshgeometry : mesh geometry tools
- draco : Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
- xatlas : Mesh parameterization library
- PolyFit : Polygonal Surface Reconstruction from Point Clouds
- gDel3D : gDel3D is the fastest 3D Delaunay triangulation algorithm. It uses the GPU for massive parallelism.
- quickhull : C++ implementation of the 3D QuickHull algorithm
- voxels : Voxels Library - C++ library for voxel manipulation and polygonization
- libmc : C/C++ Isosurface Extraction library
- voxelizer : A simple mesh voxelizer, GPU accelerated with CUDA
- Fast-Quadric-Mesh-Simplification : Mesh triangle reduction using quadrics
- earcut.hpp : Fast, header-only polygon triangulation
- delabella : 2D Delaunay triangulation (dela) - super stable (bella!)
- MEPP2 : Mepp2 - 3D MEsh Processing Platform
- xatlas : Mesh parameterization / UV unwrapping library
- QuadriFlow : QuadriFlow: A Scalable and Robust Method for Quadrangulation
- quantized-mesh : Specification for streaming massive terrain datasets for 3D visualization.
- Easy3D : A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data (i.e., meshes, point clouds).
- pmp-library : The Polygon Mesh Processing Library
- TriWild : TriWild: Robust Triangulation with Curve Constraints
- NuoModelViewer : A simple Wavefront OBJ viewer.
- MagicaVoxel-VOX-importer : Blender import script for MagicaVoxel .vox format as cube primitives.
- polypartition : Tiny Polygon Partitioning and Triangulation Library
- CDT : C++ library for constrained Delaunay triangulation (CDT)
- rect-packer : A simple yet efficient box packing algorithm
- Noise
- LowDiscBlueNoise :
- FastNoise : Fast C++ Noise Library
- BlueNoiseDitherMaskTiles : Utility for producing blue-noise dither mask tiles on the GPU
- BlueNoiseDitherPatternGeneration : Comparing some methods of generating blue noise dither patterns, to go with a blog post
- VirtualPlanetBuilder : Tool for generateing paged databases from geospatial imagery and heightfields
- 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.
- infnoise : The world's easiest TRNG to get right
- oidn : Intel(R) Open Image Denoise library
- open-simplex-noise-in-c : Port of Kurt Spencer's java implementation of open simplex noise to C -- Note: This is NOT Ken Perlin's Simplex noise algorithm.
- heman : C99 heightmap utilities.
- SimplexNoise : A Perlin's Simplex Noise C++ Implementation (1D, 2D, 3D)
- NoiseGenerator : Node-based Noise and Pattern Editing Software
- SimplexNoise : * This is a clean, fast, modern and free Perlin Simplex noise function.All Public Functions are BlueprintCallable so they can be used in every blueprint. From DevDad and Dedicated to you and Unreal…
- VoronoiMapGen : Generation of random Island maps with Voronoi using C++
- worley : worley noise
- SimplexNoise : Cpp port for Simplex Noise library
- FastNoiseSIMD : C++ SIMD Noise Library
- SimplexNoise : Collection of Simplex Noise functions
- hmm : Heightmap meshing utility.
- forvor : Fortune's Voronoi Generator
- perlin-noise : Various versions of Perlin noise (C and C++)
- matchstick : toying with markov stuff
Graphics
- fun-with-graphics : Fun with graphics
- abrash-black-book : Markdown source for Michael Abrash's Graphics Programming Black Book
- GraphicsGems : Code for the "Graphics Gems" book series
- gpu-monitoring-tools : Tools for monitoring NVIDIA GPUs on Linux
- multi-gpu-programming-models : Examples demonstrating available options to program multiple GPUs in a single node or a cluster
- mesa : Mesa 3D graphics library (mirror; no pull requests here please)
- USD : Universal Scene Description
- FidelityFX : A set of AMD provided GPU effects with provided source and sample implementations
- Custom-Middleware : This repository holds custom and commercial middleware packages
- MDL-SDK : NVIDIA Material Definition Language SDK
- rendering-bib : My master bibliography file with publications mostly in computer graphics, rendering, transport theory, and statistics.
- GPUZen2 : Example programs and source code for GPU Zen 2
- GDC2019_Public : Public repository for my GDC 2019 presentation "Breaking Down Barriers"
- azura : Repository for real time rendering engine and tools for C++
- sun-sky : Various sun/sky models, convolution of theta/gamma-parameterised models
- SDL2 :
- NVFC : OpenSource tool for monitoring, configuring and overclocking NVIDIA GPUs
- libtess2 : Game and tools oriented refactored version of GLU tesselator.
- GraphicsSamples : GameWorks cross-platform graphics API samples
- MetricsDiscoveryHelper : A wrapper for Intel(R) MetricsDiscovery API that simplifies some common tasks and provides a more unified interface across different graphics APIs.
- glTF-Tutorials : glTF Tutorials
- amdgpu_ihv_info :
- NonEuclidean : A Non-Euclidean Rendering Engine for 3D scenes.
- aobaker : ambient occlusion baking tool
- mesa : Mesa 3D graphics library (mirror; pull requests are ignored)
- piglit : Piglit 3D library test suite
- DIWide : A featureful realtime 3D software render
- yocto-gl : Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
- libgltf : glTF 2.0 parser for C++11
- tinygltf : Header only C++11 tiny glTF 2.0 library
- AGS_SDK : AMD GPU Services (AGS) library and samples
- sse-avx-rasterization : Triangle rasterization routines accelerated by SSE and AVX
- RGA : The Radeon GPU Analyzer (RGA) is an offline compiler and code analysis tool for Vulkan, DirectX, OpenGL, and OpenCL.
- glTF : glTF – Runtime 3D Asset Delivery
- forsyth : Linear-Speed Vertex Cache Optimization
- GPA : GPU Performance API for AMD GPUs
- color-theory :
- moderngpu : Patterns and behaviors for GPU computing
- water-resources : Resources for water rendering
- cgltf : Single-file C glTF loader
- sts : Single file library for vertex cache optimisation of triangles.
- stdgpu : stdgpu: Efficient STL-like Data Structures on the GPU
- Scape : Highly realistic landspace rendering engine.
- bigger : bigg (bgfx + imgui + glfw + glm) + utils
- tinycolormap : A header-only, single-file library for colormaps written in C++11
- vacancy : Vacancy: A Voxel Carving implementation in C++
- Rendu : A simple realtime graphics playground for experimentations.
- GPU-Gems-Book-Source-Code : CD Content ( Source Code ) Collection of Book 1~ 3 | 《GPU精粹》 1~ 3 随书CD(源代码)珍藏
- tinyrenderer : A brief computer graphics / rendering course
- osre : An open source render engine
- SSAO : A screen space ambient occlusion (SSAO) algorithm
- Voxelator : Voxel stuff entirely on the GPU using lots of GPU stuff and very little CPU stuff. Requires GLFW, GLEW, OpenGL, and a computer with a fairly recent GPU.
- precomputed_atmospheric_scattering : This project provides a new implementation of our EGSR 2008 paper "Precomputed Atmospheric Scattering".
- OceanSurface : A real-time ocean surface simulated using Tessendorf's algorithm and OpenGL.
- 3D-Terrain-Generator :
- fx-gltf : A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0
- carbon : Zig + Sokol + ImGui
- API Abstractions
- nicegraf : An abstraction layer for low-level platform-specific graphics APIs.
- swiftshader : SwiftShader is a high-performance CPU-based implementation of the OpenGL ES and Direct3D 9 graphics APIs. Its goal is to provide hardware independence for advanced 3D graphics.
- bgfx.cmake : Independently maintained CMake build scripts for bgfx. Released under public domain.
- bgfx-header-extension-library : Header-only helper library for Bgfx to help you hit the ground running. Also includes a bunch of post processing filters to complete common graphical tasks
- FlyCube : Graphics API wrapper with support for Directx 11, Directx 12, OpenGL, Vulkan.
- libSDL2pp : C++11 bindings/wrapper for SDL2
- vg-renderer : A vector graphics renderer for bgfx, based on ideas from NanoVG and ImDrawList (Dear ImGUI)
- particlasm : A modular, data-driven particle system with retargetable back-ends
- Ashes : Rendering library written in C++17, matching closely Vulkan interfaces.
- bgfx : Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
- bfxr-api-example : An example program using the Bfxr API.
- tinyrenderers : Single header implemenations of Vulkan and D3D12 renderers
- LLGL : Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
- fg : Rendering abstraction which describes a frame as a directed acyclic graph of render tasks and resources.
- magnum-integration : Integration libraries for the Magnum C++11/C++14 graphics engine
- magnum : Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
- OpenGL
- compute_rasterizer : Rendering Point Clouds with Compute Shaders
- gl_vk_meshlet_cadscene : This OpenGL/Vulkan sample illustrates the use of "mesh shaders" for rendering CAD models.
- Nimble : An OpenGL renderer with a modern and extensible rendering pipeline.
- glxw : OpenGL loader and dynamic linker
- TerrainEngine-OpenGL : An OpenGL 4 and C++ program which renders a procedural scene.
- GLOVE : GLOVE (GL Over Vulkan) is a cross-platform software library that acts as an intermediate layer between an OpenGL application and Vulkan
- opengles-book-samples : Automatically exported from code.google.com/p/opengles-book-samples
- PhotonBox : A portable modern OpenGL Game-Engine with focus on PBR
- opengl-es-sdk-for-android : OpenGL ES SDK for Android
- Pangolin : Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.
- 3DWorld : 3D Procedural Game Engine Using OpenGL
- AtmosphericScattering : An OpenGL implementation of Eric Bruneton's Precomputed Atmospheric Scattering paper.
- HybridRenderingEngine : Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
- globjects : C++ library strictly wrapping OpenGL objects.
- libepoxy : Epoxy is a library for handling OpenGL function pointer management for you
- vaserenderer : VASE renderer is a polyline and curve renderer on OpenGL.
- glXXw : OpenGL loader for GL3 Core and GLES2/3 - like gl3w, but written in CMake
- gltut : Learning Modern 3D Graphics Programming
- piglit : (Unofficial mirror for development) An open-source test suite for OpenGL implementations
- GfxSampleFramework : OpenGL-based app framework for graphics samples/prototyping.
- MentalGL : Single header OpenGL utility library in the public domain
- OOGL : Object-oriented C++ wrapper for OpenGL.
- glad : Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
- harfbuzz-example : Harfbuzz text-shaping example with OpenGL using Freetype
- sparkle : A modern particle engine running on GPU, using c++14 and OpenGL 4.4.
- Cell : OpenGL C++ Graphics Engine
- glfw : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
- Glitter : Dead Simple OpenGL
- angle : A conformant OpenGL ES implementation for Windows, Mac and Linux.
- gl-terrain-demo : OpenGL terrain rendering demo
- antons_opengl_tutorials_book : Anton's OpenGL 4 Tutorials book - Demo Code
- freetype-gl : OpenGL text using one vertex buffer, one texture and FreeType
- Guide-to-Modern-OpenGL-Functions : A guide to using modern OpenGL functions.
- lightmapper : A C/C++ single-file library for drop-in lightmap baking. Just use your existing OpenGL renderer to bounce light!
- AGE : AGE - C++11 OpenGL4 Game Engine
- GLS : GL Stuff - A library aimed at reducing the boilerplate OpenGL code you always have to write.
- Header-Only-GL-Helpers : A collection of header files that can ease OpenGL programming
- easy_font_gl45 :
- gfw : Pure C Minimal Graphics Framework (OpenGL)
- opengl-skydome : A fragment-shader skydome implementation
- examples : Examples for the OpenGL Red Book
- PlanetRenderer : A repo for my research on planet rendering in c++ | opengl Now runs on Linux
- vogl : OpenGL capture / playback debugger.
- gl : C++11 wrapper for OpenGL 4.6 Core Profile.
- minimal_opengl :
- gl-engine : Rendering Engine using C++ and OpenGL
- oglplus : OGLplus is a collection of open-source, cross-platform libraries which implement an object-oriented facade over the OpenGL® (version 3 and higher) and also OpenAL® (version 1.1) and EGL (version 1.…
- TinyWindow : a cross platform (Linux and Windows) OpenGL window library in a single header
- glgen : Minimal OpenGL extension loader
- glbinding : A C++ binding for the OpenGL API, generated using the gl.xml specification.
- GLUL : OpenGL Utility Library.
- ogl : http://www.opengl-tutorial.org
- LearnOpenGL : Code repository of all OpenGL tutorials found at https://learnopengl.com
- styleblit : StyleBlit is an efficient example-based style transfer algorithm that can deliver high-quality stylized renderings in real-time.
- InstancedParticle : Instancing Basics
- GIGL : Tiny Global Illumination OpenGL Renderer
- webgl-seed : A starter repo for building WebGL applications.
- VCTRenderer : A real time global illumination solution that achieves glossy surfaces, diffuse reflection, specular reflection, ambient occlusion, indirect shadows, soft shadows, emissive materials and 2-bounce G…
- gl_ssao : optimized screen-space ambient occlusion, cache-aware hbao
- deep-gbuffers : Implementation of "Fast Global Illumination Approximations on Deep G-Buffers" (Mara et. al, 2016) using C++, OpenGL, and GLSL
- ogl-samples : The OpenGL Samples Pack
- InitializingOpenGL : A book written in my own spare time, that has notes on how to begin an OpenGL project.
- opengl_sky : Pure-shader sky and cloud rendering in OpenGL
- gl_commandlist_basic : OpenGL sample for NV_command_list
- SFML
- SFMLight : Add lights to your SFML game
- Thor : SFML Extension with various game programming features, like particles, animations, vector operations
- SFGUI : Simple and Fast Graphical User Interface
- Swoosh : SFML Activity and Segue Mini Library
- SFML-Workshop : Example code for the SFML Workshop
- sfml-vscode-boilerplate : A cross-platform SFML 2.5.1 & C++17 build environment for Visual Studio Code
- ParticleEditor : Particle editor for SFML/Thor based applications
- light_ungod : A reimplementation of the LTBL2-framwork.
- RichText : Rich text class for SFML2. Allows the user to draw lines of text with different styles and colors.
- 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
- LTBL2 : A 2D dynamic lighting system with accurate soft shadows.
- sfeMovie : sfeMovie is a simple C++ library that lets you play movies in SFML based applications. It relies on FFmpeg to read medias and remains consistent with SFML's naming conventions. Forum at http://sfem…
- imgui-sfml : ImGui binding for use with SFML
- SFML : Simple and Fast Multimedia Library
- TGUI : An easy to use cross-platform c++ GUI for SFML
- STP : SFML TMX Parser -
- Empire : A cellular automaton I made up myself, written in C++/ SFML
- SpriteAnimator : Sprite animation editor for SFML/Thor based applications
- SelbaWard : A collection of SFML drawables
- sfTheora : sfTheora is a static library for playing Theora videos on SFML.
- Vulkan
- VulkanSceneGraph : Vulkan & C++17 based Scene Graph Project
- vulkan-seed : A Vulkan starter repo that you could use to get the ball rolling.
- Vulkan-Samples-Assets : Vulkan Samples Assets
- clspv : Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders
- vulkan_wsi_layer :
- VulkanCapsViewerGenerator : Extension header generator based on the official Vulkan registry xml
- spirv-tools-custom-opt-passes : A few custom passes for the SPIRV-Tools optimizer.
- FrameGraph : vulkan abstraction layer that represent frame as a task graph
- shadertoy-utils : One-click utilities that turn images/sounds into shadertoy code! :)
- Vulkan-Example : Some example of Vulkan with C++
- VulkanRTX :
- vkbind : Single file Vulkan API loader.
- vulkan-base : Simple Vulkan application
- VkBindingBenchmark : Sponza And Bistro tests to benchmark transform data handling in Vulkan
- Yave : Yet Another Vulkan Engine
- vsgXchange : Utility library for converting data+materials to/from VulkanSceneGraph
- niagara : A Vulkan renderer written from scratch on stream
- vkhr : Real-Time Hybrid Hair Rendering using Vulkan™
- vuda : VUDA is a header-only library based on Vulkan that provides a CUDA Runtime API interface for writing GPU-accelerated applications.
- Pluto : Pluto: an interactive Vulkan engine with Python bindings and Jupyter notebook support
- Onyx : Rendering engine based on Vulkan and C++17.
- vpp : Modern C++ vulkan utility library.
- glsl_indexed_types_generator : GLSL code generator to aid use of Vulkan's descriptor set indexing
- Fossilize : A serialization format for various persistent Vulkan object types.
- VkHLF : Experimental High Level Framework for Vulkan
- Vulkan-Portability :
- volk : Meta loader for Vulkan API
- vulkan_best_practice_for_mobile_developers : Vulkan best practice for mobile developers
- vk_callback_swapchain :
- vulkan-cpp-library :
- vulkan-sdk : Github repository for the Vulkan SDK
- rostkatze : C++ implementation of Vulkan sitting on D3D12
- vulkan_ihv_promises :
- Quartz : Physically based Vulkan RTX path tracer with a declarative ES7-like scene description language.
- Vookoo : A set of utilities for taking the pain out of Vulkan in header only modern C++
- AMDVLK : AMD Open Source Driver For Vulkan
- GodOfFireAndGrass : A Vulkan Grass Renderer
- VulkanTutorial : Tutorial for the Vulkan graphics and compute API
- rvg : High level vulkan 2D vector-like graphics api (C++)
- VKGL : Core OpenGL over Vulkan
- simple_vulkan_synchronization : A single-header library with a simplified interface for Vulkan synchronization
- Vulkan-glTF-PBR : Physical based rendering with Vulkan using glTF 2.0 models
- Vulkan : Examples and demos for the new Vulkan API
- Vulkan-WSIWindow : A multi-platform library to create a Vulkan window, and handle input events.
- Vulkan-Cookbook : Code repository for Vulkan Cookbook by Packt
- TLVulkanRenderer : A simple Vulkan-based renderer for my master thesis on real-time transparency
- Vulkan-Hpp : Open-Source Vulkan C++ API
- Vulkan-ValidationLayers : Vulkan Validation Layers
- VulkanMemoryAllocator : Easy to integrate Vulkan memory allocation library
- PracticalVulkan : Repository with code samples for "API without Secrets: The Practical Approach to Vulkan" series of articles.
- vulkan_slim : Trying to trim down the size of my Vulkan repo...
- vulkan_ihv_info :
- lava : toy C++ Vulkan library
- VulkanMemoryAllocator : Easy to integrate Vulkan memory allocation library
- Vulkan : Examples and demos for the Vulkan C++ API
- brokkr : Vulkan framework for Windows
- LearnVulkan : All code samples learnvulkan.com
- vkvg : Vulkan vector drawing, try to stay close to cairo api
- MoltenVK : MoltenVK is an implementation of the high-performance, industry-standard Vulkan graphics and compute API, that runs on Apple's Metal graphics framework, bringing Vulkan to iOS and macOS.
- V-EZ :
- vkdf : A collection of Vulkan demos
- Vulkan-Ecosystem : Public repository for Vulkan Ecosystem issues
- Anvil : Anvil is a cross-platform framework for Vulkan
- IntroductionToVulkan : Source code examples for "API without Secrets: Introduction to Vulkan" tutorial
- VulkanTools : Tools to aid in Vulkan development including useful layers, trace and replay, and tests
- xgl : Vulkan API Layer
- pal : Platform Abstraction Library
- vkDOOM3 : Vulkan DOOM 3 port based on DOOM 3 BFG Edition
- vulkan_minimal_compute : Minimal Example of Using Vulkan for Compute Operations. Only ~400LOC.
- VulkanSponza : Deferred Vulkan rendering playground using Crytek's Sponza scene
- laugh_engine : A Vulkan implementation of real-time PBR renderer
- Intrinsic : Intrinsic is a Vulkan based cross-platform game and rendering engine. The project is currently in an early stage of development.
- Vulkan-Docs : The Vulkan API Specification and related tools
- VulkanResources : A list of resources for learning Vulkan
- VulkanTutorial : Tutorial for the Vulkan graphics and compute API
- VK-GL-CTS : Khronos Vulkan, OpenGL, and OpenGL ES Conformance Tests
- cpp-host-metal : Test if we can use Metal runtime in C++
- VulkanWicked :
- ScrapEngine : A very simple real-time Vulkan 3D game engine
- VulkanLearn : Render lab built on top of vulkan
- vk_denoise : Denoising a Vulkan ray traced image using OptiX denoiser
- clouds :
- VulkanCapsViewer : Vulkan hardware capability viewer
- VulkanDemos : Vulkan Demos
- MageFramework : Vulkan Framework for testing out and demoing shader techniques I've been intrigued by
- Meteoros : Real-time Cloudscape Rendering in Vulkan based on the implementation of clouds in the Decima Engine.
- perfdoc : A cross-platform Vulkan layer which checks Vulkan applications for best practices on Arm Mali devices.
- perfdoc : A cross-platform Vulkan layer which checks Vulkan applications for best practices on PowerVR devices.
- VulkanApp :
- onyx : Rendering engine based on Vulkan and C++2x.
- VulkanMemoryAllocator-Hpp : C++ bindings for VulkanMemoryAllocator
- FlingEngine : A Vulkan game engine with a focus on data oriented design
- DirectX
- directx12-seed : A DirectX 12 starter repo that you could use to get the ball rolling
- D3D12MemoryAllocator : Easy to integrate memory allocation library for Direct3D 12
- d3d12book : Sample code for the book "Introduction to 3D Game Programming with DirectX 12"
- DirectXTex : DirectXTex texture processing library
- D3d12info : Simple console tool to get all the information from DXGI and Direct3D 12 on current system
- DirectXShaderCompiler : This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
- DirectX-Graphics-Samples : This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.
- reed-framework : Basic framework for D3D11 init, model/texture loading, shader compilation and camera movement.
- dxwrapper : Fixes compatibility issues with older games running on Windows 10 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
- Sophia : A real-time DirectX 11 renderer. The renderer is named by my girlfriend's english name.
- DeferredTexturing : A rendering sample that demonstrates bindless deferred texturing using D3D12
- Wave-Particles-with-Interactive-Vortices : A dx12 river renderer using wave particles with interactive vortices.
- dxup : A d3d9 and d3d10 to d3d11 translation layer.
- VK9 : Direct3D 9 compatibility layer using Vulkan.
- D3D12RaytracingFallback : A fork of Microsoft's D3D12 Raytracing Fallback Layer
- d9vk : A d3d9 to vk layer based off DXVK's codebase.
- D3DSamples : Direct3D feature samples
- ShadowFX : DirectX 11 and 12 library that provides a scalable and GCN-optimized solution for deferred shadow filtering
- smaa : SMAA is a very efficient GPU-based MLAA implementation (DX9, DX10, DX11 and OpenGL), capable of handling subpixel features seamlessly, and featuring an improved and advanced pattern detection & han…
- vkd3d :
- D3D12QuickRef : Direct3D 12.0 quick reference guide
- d3d12_ihv_info :
- Dx11Base : A small dx11 base program I use to test shaders and techniques
- GeometryFX : DirectX 11 library that provides convenient access to compute-based triangle filtering (CTF)
- ToGL : Direct3D to OpenGL abstraction layer
- Shadows : A sample app that demonstrates several techniques for rendering real-time shadow maps
- graphicsdemoskeleton : Playground for DirectX 11 / 12 simple graphics demo examples ...
- Dxbc2Dxil : DXBC to DXIL (HLSL Bytecode to LLVM IR) using internal APIs.
- separable-sss : Separable Subsurface Scattering is a technique that allows to efficiently perform subsurface scattering calculations in screen space in just two passes.
- DXRNvTutorial : Implementing Nvidia DXR tutorial with Microsoft DXR Fallback Layer
- crunch : Advanced DXTc texture compression and transcoding library
- Shaders
- glslCanvas4AE : After Effects Plug-in to write GLSL with a format of glslCanvas
- HLSLcc : DirectX shader bytecode cross compiler
- SPIRV-Reflect : SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
- deshade : dump and replace shaders of any OpenGL or Vulkan application
- smol-v : SMOL-V: like Vulkan/Khronos SPIR-V, but smaller.
- ShaderFastLibs :
- slang : Making it easier to work with shaders
- glsl-grapher : Visualize GLSL shader functions
- 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.
- glslang : Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
- glsl-atmosphere : Renders sky colors with Rayleigh and Mie scattering.
- glslSmartDeNoise : glsl deNoise filter
- GLSL : GLSL Shading Language Issue Tracker
- glsl_kappa : A shaderpack that aims towards a realistic, but also authentic look.
- gpuc : A header-only C-like shading language compiler that writes Metal, HLSL, GLSL
- SHADERed : Lightweight, cross-platform & full-featured desktop tool for creating and testing HLSL and GLSL shaders
- Wombat : An efficient texture-free GLSL procedural noise library
- GPU-Noise-Lib : Optimized GPU noise functions and utilities
- osl-shaders : a repository of osl shaders for Blender
- osl-shaders : A collection of osl shaders
- Pyramid : Pyramid Shader Analyzer
- reshade-shaders : A collection of post-processing shaders written for ReShade.
- yari-v : Single header SPIR-V compressor for C and C++
- XShaderCompiler : Shader cross compiler to translate HLSL (Shader Model 4 and 5) to GLSL
- reshade : A generic post-processing injector for games and video software.
- CrossShader : A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
- 3d-game-shaders-for-beginners : A step-by-step guide on how to implement SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
- glslViewer : Live GLSL coding render for MacOS and Linux
- Shader_Minifier : Minify and obfuscate GLSL or HLSL code
- ShaderConductor : ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
- SPIRV-Headers : SPIRV-Headers
- LunarGLASS : LLVM IR and optimizer for shaders, including front-end adapters for GLSL and SPIR-V and back-end adapter for GLSL
- shader-printf : Simple printf functionality for GLSL.
- 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.
- standard-surface : White paper describing the Autodesk Standard Surface shader.
- nicegraf-shaderc : A wrapper for shaderc and spriv-cross
- glslcc : GLSL cross-compiler tool (GLSL->HLSL, MSL, GLES2, GLES3, GLSLv3), using SPIRV-cross and glslang
- graphicsfuzz : A testing framework for automatically finding and simplifying bugs in graphics shader compilers.
- colourblind : A C header file & shader for simulating colourblindness and checking contrast.
- hsluv : Human-friendly HSL, reference implementation (revision 4)
- hlslparser : HLSL Parser and Translator for HLSL, GLSL, and MSL.
- hlsl2glslfork : HLSL to GLSL language translator based on ATI's HLSL2GLSL. Used in Unity.
- shader-playground : Shader playground website for exploring HLSL, GLSL, SPIR-V compilers
- hlslparser : HLSL Parser and Translator for HLSL, GLSL, and MSL.
- hqx-shader : GPU shader version of HQx filter
- pmfx-shader : Cross platform shader system targetting HLSL, GLSL, Metal and SPIR-V. Offline compilation, reflection, metadata +so much more.
- ShaderDebugger : [DEPRECATED] C++ library for debugging HLSL & GLSL shaders
- GUI
- elements : Elements C++ GUI library
- qt3d : Qt3D
- LCUI : A small C library for building user interfaces with C, XML and CSS.
- flatui : Efficient Immediate Mode UI for Games
- turbobadger : Small footprint UI library for games & apps (branch)
- horus_ui : HorusUI Immediate Mode Graphical User Interface
- zep : Zep - An embeddable editor, with optional support for using vim keystrokes.
- Ultralight : Ultralight— a lightweight, pure-GPU, HTML UI renderer for native apps.
- skui : Skia-based C++ UI framework
- raygui : A simple and easy-to-use immediate-mode gui library
- ImHotKey : Single Header Hotkey editor for dear imgui
- libui : Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
- IconFontCppHeaders : C, C++ headers and C# classes for icon fonts: Font Awesome, Fork Awesome, Material Design, Material Design icons, Kenney game icons and Ionicons
- lvgl : Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).
- GuiLite : Small-Fast-Injectable GUI library(5 KLOC) for all platforms
- microui : Tiny immediate-mode UI library
- GWork : Skinnable GUI with useful widget collection. Fork of GWEN.
- layout : Single-file library for calculating 2D UI layouts using stacking boxes. Compiles as C99 or C++.
- nanovg : Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
- fastuidraw :
- nanogui : Minimalistic GUI library for OpenGL
- CEGUI : mirror of upstream hg repo so we can use it as a git submodule
- glw_imgui : Code-driven, simple and bloat-free GUI system.
- nuklear : A single-header ANSI C gui library
- webview : Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and MSHTML (Windows)
- laf : A C++ library to create desktop applications
- Nuklear : A single-header ANSI C immediate mode cross-platform GUI library
- RapidGUI : Unity OnGUI(IMGUI) extensions for Rapid prototyping/development
- imtui : ImTui: Immediate Mode Text-based User Interface
- nanogui : Minimalistic C++/Python UI library for OpenGL/GLES/DX11/DX12/Vulkan
- nana : a modern C++ GUI library
- nodegui : A library for building cross-platform native desktop applications with Node.js and CSS
- imgui
- imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- imgui_markdown : Markdown for Dear ImGui
- imgui_tabs : Tab module for imgui. Should be relatively forwardly compatible.
- ImWindow : Window and GUI system based on Dear ImGui from OCornut
- imgui_club : Nice things to use along dear imgui
- cimgui : c-api for imgui and implementations programmatically generated (https://github.com/ocornut/imgui)
- ImGuizmo : Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
- imguiDock : An addon of imgui for supporting docks in the imgui's window
- imgui-node-editor : Node Editor using ImGui
- ImGuiColorTextEdit : Colorizing text editor for ImGui
- imgui-goodies : Widgets and utilities for ImGui
- imgui-ws : Dear ImGui over WebSockets
- imgui-plot : An improved plot widget for Dear ImGui, aimed at displaying audio data
- imnodes : A small, dependency-free node editor for dear imgui
- ImNodes : Node graph implementation for Dear ImGui. Used in https://github.com/rokups/rbfx
- imgInspect : imgui control to inspect image pixels
- imgui_software_renderer : A Software Renderer for Dear ImGui
- ImFastRast : Fast(er) Software Rasterizer for Dear ImGui
- ImGuiAl : Widgets for imgui
- imgui : Dear ImGui Addons Branch = plain unmodified dear imgui plus some extra addon.
- imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- imGuIZMO.quat : GIZMO 3D object manipulator/orienteering widget for ImGui
- bsfImgui : bsf imgui plugin
- ImGui-Addons : Cross Platform File Dialog for Dear-ImGui
- sequentity : A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT
- ImGuiFileDialog : File Dialog for ImGui : https://github.com/aiekick/ImGuiFileDialog
- imgui-filebrowser : File browser implementation for dear-imgui. C++17 is required.
- imgui_entt_entity_editor : A drop-in entity editor for EnTT with ImGui
- LegitProfiler : A simple ImGui component for rendering profiling data
- DebugDraw
- polyscope : A prototyping-oriented UI for geometric algorithms
- im3d : Immediate mode rendering and 3d gizmos.
- tinygizmo : An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC
- debug-draw : Immediate-mode, renderer agnostic, lightweight debug drawing API.
- arcball_camera : Single-header single-function C/C++ immediate-mode camera for your graphics demos
- flythrough_camera : Single-header single-function C/C++ immediate-mode camera for your graphics demos
- LibGizmo : Gizmo control library for 3D object manipulation (4x4 matrix)
- Animation
- appleseed : A modern open source rendering engine for animation and visual effects
- aer-engine : An OpenGL 4.3 / C++ 11 rendering engine oriented towards animation.
- skellington : Implementation of Le, Hodgins 2016 paper "Real-time Skeletal Skinning with Optimized Centers of Rotation"
- acl : Animation Compression Library
- ozz-animation : Open source c++ skeletal animation library and toolset
- aseprite_parser : parser of Aseprite files, used in duel6r
- aseprite-rgba-converter : Tiny project to convert a .ase to a RGBA Byte array
- aseprite : Animated sprite editor & pixel art tool (Windows, macOS, Linux)
- aseprite : A parser for the aseprite sprite editor files
- bvh11 : A tiny C++11 library for reading BVH motion capture data
- HybridPose : HybridPose: 6D Object Pose Estimation under Hybrid Representation (CVPR 2020)
- Choreograph : A simple, modern C++ animation and timing library.
- Fonts & Texts
- pathfinder : A fast, practical GPU rasterizer for fonts and vector graphics
- breaking_the_physical_limits_of_fonts : Breaking the physical limits of fonts
- BitmapFont : cross-platform bitmap font implementation
- mv_easy_font :
- blit-fonts : A family of small, fast, and simple bitmap fonts in single-file C headers
- Images & Textures
- astc_dec : Single source file ASTC texture decompression in C++ (derived from Google's open source Android project)
- blurhash : A very compact representation of a placeholder for an image.
- image-resampler : A flexible image resampling library
- basis_universal : Basis Universal GPU Texture Codec
- sproutline : A small single-file library for sprite outline extraction and simplification for C/C++
- atlasc : Builds atlas texture from a bunch of input images.
- squeezer : Texture Packer for Game Development Using MaxRects Algorithm
- Imogen : GPU Texture Generator
- Fornos : GPU Texture Baking Tool
- crabby : A texture compression algorithm for sprite sheets that allows decompression on the GPU during rendering.
- GPUImage : An open source iOS framework for GPU-based image and video processing
- image_lib : Image loading library
- knusperli : A deblocking JPEG decoder
- bc7enc16 : Fast single source file BC7/BPTC texture encoder with perceptual metric support
- img2ktx : Converts common image formats (PNG, JPG, etc.) to GPU-native compressed (BCn, ETC, ASTC) in KTX containers.
- Zpng : Better lossless compression than PNG with a simpler algorithm
- lodepng : PNG encoder and decoder in C and C++.
- bimg : Image library.
- topng : Convert image to png using stb_image and stb_image_write
- gif_load : A slim, fast and header-only GIF loader written in C
- mozjpeg : Improved JPEG encoder.
- nanosvg : Simple stupid SVG parser
- gif-h : Simple C++ one-header library for the creation of animated GIFs from image data.
- TinyJPEG : Single header lib for JPEG encoding. Public domain. C99. stb style.
- compressonator : Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs
- unity-texture-packer : Utility to combine color channels from different textures into a single output.
- dds-ktx : Single header KTX/DDS reader
- tacit-texview : A texture viewer for tga, png, exr, dds, gif, hdr, jpg, tif, ico, and bmp files. Uses Dear ImGui, OpenGL, and Tacent. Useful for game devs as it displays information like the presence of an alpha c…
- tinyexr : Tiny OpenEXR image loader/saver library
- crunch : Advanced DXTc texture compression and transcoding library
- PBR & RT & PT
- raytracer-gpupro4 :
- VisRTX : Visualization framework powered by NVIDIA RTX technology
- rdb : Ray-tracing visual debugger
- nanort : NanoRT, single header only modern ray tracing kernel.
- pbrt-v3 : Source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation", by Matt Pharr, Wenzel Jakob, and Greg Humphreys.
- BRDFGenerator : BRDF LUT generation for PBR Pipelines
- pbrt-parser : A simple parser for the PBRT file format
- GettingStartedWithRTXRayTracing : Getting Started with RTX Ray Tracing
- Fox2 : FoxRaycaster, optimized, fixed and with a CUDA option
- mitsuba-im : Immediate-mode fork of the mitsuba renderer
- mitsuba : Mitsuba renderer main repository
- LGHDemo : Real-Time Rendering with Lighting Grid Hierarchy I3D 2019 Demo
- gpu-pathtracer : physically based path tracer on gpu
- sparse-voxel-octrees : CPU Sparse Voxel Octree Implementation
- tungsten : High performance physically based renderer in C++11
- MiyukiRenderer : High performance pbrt-style renderer
- ray-tracing-gems : Source Code for "Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs" by Eric Haines and Tomas Akenine-Möller
- RayTracingInVulkan : Implementation of Peter Shirley's Ray Tracing In One Weekend book using Vulkan and NVIDIA's RTX extension.
- RayTracingInVulkan : Implementation of Peter Shirley's Ray Tracing In One Weekend book using Vulkan and NVIDIA's RTX extension.
- RadeonRays_SDK : Radeon Rays is ray intersection acceleration library for hardware and software multiplatforms using CPU and GPU
- filament : Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS and WASM/WebGL
- ToyPathTracer : Toy path tracer for my own learning purposes (CPU/GPU, C++/C#, Win/Mac/Wasm, DX11/Metal, also Unity)
- PBR : An implementation of physically based shading model & image based lighting in various graphics APIs.
- IBLBaker : Light probe generation and BRDF authoring for physically based shading.
- The-Forge : The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4
- simple-spectral : A Simple Spectral Renderer
- MaskedOcclusionCulling : Example code for the research paper "Masked Software Occlusion Culling"; implements an efficient alternative to the hierarchical depth buffer algorithm.
Multimedia
- Audio
- soloud : Free, easy, portable audio engine for games
- openal-soft : OpenAL Soft is a software implementation of the OpenAL 3D audio API.
- libsnd : Digital Signal Processing Library and Audio Toolbox for the Modern Synthesist.
- HISE : The open source framework for sample based instruments
- miniaudio : Single file audio playback and capture library written in C.
- helm : Helm - a free polyphonic synth with lots of modulation
- sfMidi : Library for playing midi files with SFML
- Cadence : Collection of tools useful for audio production
- Carla : Audio plugin host
- RenderMan : Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.
- PLEBTracker : Ncurses based audio tracker program inspired by goattracker and milkytracker
- LabSound : modern C++ graph-based audio engine
- MIDI_controller : This is a library for creating a MIDI controller using an Arduino or Teensy board.
- oboe : Oboe is a C++ library that makes it easy to build high-performance audio apps on Android.
- Twist : Twist - node-based audio synthesizer
- blastmidi : A C library to read standard MIDI files.
- ass : ASS: Audio Stupidly Simple
- FAudio : FAudio - Accuracy-focused XAudio reimplementation for open platforms
- libxm : A small XM (FastTracker II Extended Module) player library.
- minimp3 : Minimalistic MP3 decoder single header library
- libnyquist : Cross platform C++11 library for decoding audio (mp3, wav, ogg, opus, flac, etc)
- cute_dsp : Utility library for cute_sound.
- DSP-Cpp-filters : DSP C++ audio filters
- DSPFIR : C++ to go with blog post https://blog.demofox.org/2020/01/05/fir-audio-data-filters/
- iPlug2 : C++ Audio Plug-in Framework for desktop, mobile and web [PRE-RELEASE]
- rfxgen : A simple and easy-to-use fx sounds generator
- raudio : A simple and easy-to-use audio library based on miniaudio
- Audio Synthesis and Speech recognition
- flite : A small fast portable speech synthesis system
- codespeak : A web-based speech-to-code editor for humans.
- subsync : Subtitle Speech Synchronizer
- GranularSynth :
- speech_synth_series : Let’s Create a Speech Synthesizer
- synthv1 : synthv1 - an old-school polyphonic synthesizer
- DeepSpeech : A TensorFlow implementation of Baidu's DeepSpeech architecture
- pocketsphinx : PocketSphinx is a lightweight speech recognition engine, specifically tuned for handheld and mobile devices, though it works equally well on the desktop
- Tonic : Easy and efficient audio synthesis in C++
- 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.
- Video
- videoInput : A video capture library for windows.
- FFmpeg : Mirror of git://source.ffmpeg.org/ffmpeg.git
- MiniVideo : A multimedia framework developed from scratch in C/C++, bundled with test programs and a neat media analyzer.
- mpv : Video player based on MPlayer/mplayer2
- minimp4 : Minimalistic MP4 mux/demux single header library
- pl_mpeg : Single file C library for decoding MPEG1 Video and MP2 Audio
- FFMpeg-decode-example : Example how to use ffmpeg to decode video file.
Physics
- GamePhysicsCookbook : Source code for Game Physics Cookbook
- 2D Physics
- Box2D : Box2D is a 2D physics engine for games
- b2dJson : Utilities to load scenes created by the R.U.B.E Box2D editor
- phyxed-2d : A 2d physics engine with fixed-point support.
- Physac : 2D physics header-only library for videogames developed in C using raylib library.
- box2d-lite : A small 2D physics engine
- PlayRho : Real-time oriented physics engine and library that's currently best suited for 2D games.
- liquidfun : 2D physics engine for games
- 3D Physics
- bullet3 : Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
- PhysX-3.4 : NVIDIA PhysX SDK 3.4
- ragdoll_simulator : ragdoll simulator based on PhysX-3.3
- physics_playground : Improved version of real-time physics engine that couples FEM-based deformables and rigid body dynamics
- reactphysics3d : Open source C++ physics engine library in 3D
- BVH-based-Collision-Detection-Scheme : General broad-phase collision detection framework using BVH and BVTT front tracking.
- cyclone-physics : The Physics engine that accompanies the book "Game Physics Engine Design"
- glChAoS.P : Real time 3D strange attractors scout and hypercomplex fractals
- bounce : Bounce is a 3D physics engine for games.
- newton-dynamics : 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.
- Water & Fluids
- waves : Ocean Wave Simulation - http://david.li/waves
- wfc : A C++ port of Wave Function Collapse Tiling
- fluid-engine-dev : Fluid simulation engine for computer graphics applications
- fluids : Simple "Stable Fluids" Implementation
- water-wave-packets : Sandbox binary and source code for the Siggraph 2017 paper "Water Wave Packets" by Stefan Jeschke (NVIDIA) and Chris Wojtan (IST Austria)
- GridFluidSim3D : A PIC/FLIP fluid simulation based on the methods found in Robert Bridson's "Fluid Simulation for Computer Graphics"
- RealtimeWater :
- FluidEngine : Offline fluid simulation solver adopted from https://github.com/doyubkim/fluid-engine-dev.
- 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.
- incremental-fluids : Simple, single-file fluid solvers for learning purposes
- Fluid-Simulation : Fluid Simulation on CPU and GPU in C++ with OpenGL
- WaterSurfaceWavelets :
- Bimocq : Efficient and Conservative Fluids Using Bidirectional Mapping
- IK
- invk : Invk - Inverse Kinematics Library with Quaternions
- gear : A C++ library for kinematics and dynamics of articulated rigid body systems.
- softIkSolver : Maya Soft IK Solver
- Cloth
- Yarn-cloth-sim : Implementation of ‘Yarn-Level Simulation of Woven Cloth’ on Siggraph Asia 2014.
- libwetcloth : A Multi-Scale Model for Simulating Liquid-Fabric Interactions
- GPU_cloth :
- FastMassSpring : Interactive cloth simulator using the method described in the SIGGRAPH paper "Fast Simulation of Mass-Spring Systems" by Liu, T., Bargteil, A. W., Obrien, J. F., & Kavan, L.
- ThunderLoom : A physically based shader for woven cloth
Networking
- LUrlParser : Lightweight URL & URI parser (RFC 1738, RFC 3986)
- wangle : Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.
- TCP/UDP/HTTP
- netcode.io : A protocol for secure client/server connections over UDP
- enet : ENet reliable UDP networking library
- minihttp : A minimal 2-file (cpp+h) TCP & HTTP client implementation. Supports GET & simple POST. Optional SSL via PolarSSL/mbedTLS. Cross-platform, uses POSIX or Win32 API.
- SFNUL : Simple and Fast Network Utility Library
- uWebSockets : Simple, secure & standards compliant web I/O for the most demanding of applications
- net11 : Simple embeddable C++11 async tcp,http and websocket serving.
- libclub : Lightweight Peer-to-Peer networking engine for real time applications
- cxxhttp : Asynchronous, Header-only C++ HTTP-over-(TCP|UNIX Socket|STDIO) Library
- librg : Build simple and fast cross-platform multiplayer
- utp-native : Native bindings for libutp
- czspas : Minimalistic socket library inspired by Asio/Boost Asio, implemented in 1 single header file
- netlibrary : A simple networking library for C++. Designed with games in mind, but can be used for other things. Tested to work on Android and Windows.
- RakNet : RakNet is a cross platform, open source, C++ networking engine for game programmers.
- frnetlib : Small and fast cross-platform networking library, with support for messaging, IPv6, HTTP, SSL and WebSocket.
- GameNetworkingSockets : Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. Encryption.
- QuantumGate : QuantumGate is a peer-to-peer (P2P) communications protocol, library and API written in C++.
- rttp : RTTP - A Reliable Realtime Transport Protocol
- clsocket : SimpleSockets is a lightweight set of classes that allow developers to implement IP based network programs.
- https_client : HTTP/HTTPS REST Client C Library
- libquicknet : Simple and small reliable UDP networking library for games
- NetDynamics : Data-oriented networking playground for the reliable UDP transports
- cpp-Socket : Some class to help to construct client/server with soket and serilized datas.
- cpp-ORM : A project to create a simple ORM.
- mbedtls : An open source, portable, easy to use, readable and flexible SSL library
- cpp-httplib : A C++ header-only HTTP/HTTPS server and client library
- rinetd : TCP/UDP port redirector
- swrap : Portable, single-file, protocol-agnostic TCP and UDP socket wrapper, primarily for game networking
- librg-cpp : C++ wrapper for librg network library
- zed_net : Single file public domain networking library
- http-parser : http request/response parser for c
- botan : Cryptography Toolkit
- reliable.io : A packet acknowledgement system for UDP protocols
- PcapPlusPlus : PcapPlusPlus is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. It provides C++ wrappers for the most p…
- SQL
- scylla : NoSQL data store using the seastar framework, compatible with Apache Cassandra
- NLDatabase : Lightweight C++ wrapper for SQLite
- ndb : Neuroshok DataBase
- unqlite : An Embedded NoSQL, Transactional Database Engine
- sqlpp11 : A type safe SQL template library for C++
- SQLiteCpp : SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
- hiberlite : C++ ORM for SQLite
- sqlite_orm : SQLite ORM light header only library for modern C++
- RPC
- rpclib : rpclib is a modern C++ msgpack-RPC server and client library
- libjson-rpc-cpp : C++ framework for json-rpc (json remote procedure call)
- Game-NET : RPC Network Library for Multiplayer Games
- grpc : The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
- Server
- nakama : Distributed server for social and realtime games and apps.
- webby : A tiny webserver for game development
- yojimbo : A network library for client/server games with dedicated servers
- seasocks : Simple, small, C++ embeddable webserver with WebSockets support
- libhttpserver : C++ library for creating an embedded Rest HTTP server (and more)
- open-match : Flexible, extensible, and scalable video game matchmaking.
- hifi : Open source client/server software for creating shared VR environments. Docs at http://docs.highfidelity.com We are hiring: http://highfidelity.com/jobs Also, PT work available at http://worklist.net
- crow : Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
- agones : Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes
- civetweb : Embedded C/C++ web server
- EmbeddableWebServer : Cross-platform, single .h file HTTP server (Windows, Linux, Mac OS X)
- libcluon : libcluon is a small and efficient, single-file and header-only library written in modern C++ to power microservices.
- mongoose : Mongoose Embedded Web Server Library - Mongoose is more than an embedded webserver. It is a multi-protocol embedded networking library with functions including TCP, HTTP client and server, WebSocke…
- yhs : Embeddable HTTP server.
- Server_Information_Panel : Information Panel for DayZ SA
- moon : A cross-platform,lightweight,scalable game server framework written in C++, and support Lua Script
- Game-Server-Configs : A repo of game server configuration files used by LinuxGSM
AI
- CppCompetitor : A program for dueling code bots.
- Samodiva : A C++ library for AI stuff. Hopefully it won't be as unfinished as the majority of my other repos.
- Neural Network & Deep Learning
- neural : Some plays with neural network
- CppDNN : Machine Learning for C++11
- CubbyDNN : Deep learning framework using C++17 in a single header file
- TinNet : A C++14 based deep learning library.
- onnxruntime : ONNX Runtime: cross-platform, high performance scoring engine for ML models
- RobotChess : Auto Chess simulator using C++ with some reinforcement learning
- tesseract : Tesseract Open Source OCR Engine (main repository)
- genann : simple neural network library in ANSI C
- plaidml : PlaidML is a framework for making deep learning work everywhere.
- ncnn : ncnn is a high-performance neural network inference framework optimized for the mobile platform
- EOgmaNeo : Ogma - EOgmaNeo https://ogma.ai/
- Dataset_Synthesizer : NVIDIA Deep learning Dataset Synthesizer (NDDS)
- mace : MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.
- pose-tensorflow : Human Pose estimation with TensorFlow framework
- nvvl : A library that uses hardware acceleration to load sequences of video frames to facilitate machine learning training
- codi : CoDi is a cellular automaton model for spiking neural networks
- Cranium : A portable, header-only, artificial neural network library written in C99
- darknet : Convolutional Neural Networks
- tiny-dnn : header only, dependency-free deep learning framework in C++14
- TensorRT : TensorRT is a C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators.
- kann : A lightweight C library for artificial neural networks
- cONNXr : Pure C ONNX runtime with zero dependancies for embedded devices
- Path
- recastnavigation : Navigation-mesh Toolset for Games
- NavMeshComponents : High Level API Components for Runtime NavMesh Building
- MicroPather : MicroPather is a path finder and A* solver (astar or a-star) written in platform independent C++ that can be easily integrated into existing code. MicroPather focuses on being a path finding engine…
- rsmotion : RSMotion - C++ Library for Reeds-Shepp Cars
- invariant-ekf : C++ library to implement invariant extended Kalman filtering for aided inertial navigation.
- lib_2d : A c++ library for paths defined by points within the 2d space
- cartographer : Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
- Swarmz : A free, header-only C++ swarming (flocking) library for real-time applications
- Dubins-Curves : Path generation for the Dubin's car
Scripting
- scriptorium : Game Scripting Languages benchmarked
- craftinginterpreters : Repository for the book "Crafting Interpreters"
- ChaiScript : Embedded Scripting Language Designed for C++
- CppSharp : Tools and libraries to glue C/C++ APIs to high-level languages
- Ark : Ark is a small, fast, functionnal and scripting language for video games
- hhvm : A virtual machine for executing programs written in Hack.
- cpp-embedding-mono : Small sample on how to embed the mono runtime into a C++ program.
- wren : The Wren Programming Language
- v : Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s. 1.0 release in December 2019. https://vlang.io
- NativeJIT : A C++ expression -> x64 JIT
- kit : Kit: a magical, high performance programming language, designed for game development. Pre-alpha!
- pure-bash-bible : A collection of pure bash alternatives to external processes.
- swig : SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
- smoll-vm : just a smoll vm in c++14
- haxe : Haxe - The Cross-Platform Toolkit
- c4 : C in four functions
- oc : Macro magic for declaring/calling Objective-C APIs from C11 or C++. Preloads selectors, chooses the correct objc_msgSend to call per method/platform.
- breadboard : C++ graph based event system
- Cello : Higher level programming in C
- HCode : A scripting language created mainly for game engines
- Lua
- luazdf : LuaZDF - Lua Zero Dependency Functions
- luavela : Implementation of Lua 5.1, originally a fork of LuaJIT 2.0
- raylib-lua-sol : A simple and easy-to-use Lua library to enjoy videogames programming
- LuaTalk : Code examples used in my Lua talk
- debugger.lua : A simple, embedabble CLI debugger for Lua.
- lua-vec : highly efficent, caching, copy-on-write lua vector math library
- lunatic : lunatic: a toy lua interpreter
- kaun : Lua module for 3D graphics to be used with löve (http://love2d.org)
- lua : The Lua repo, as seen by the Lua team. Mirrored irregularly. Please DO NOT send pull requests. Send issues/patches to the Lua mailing list https://www.lua.org/lua-l.html
- LuaPlusPlus : Lua 5.3.4 re-written in C++ 17
- kaguya : C++ binding to Lua
- hsluv-lua : Lua implementation of HSLuv (revision 4)
- Luna : Create simple visual sketches in Lua using SFML
- lutok2 : Advanced version of lutok C++/Lua binding
- sol2 : Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
- 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
- TypeScriptToLua : Typescript to lua transpiler. https://typescripttolua.github.io/
- Lua-Low-Level : Per function, Lua JIT using LLVM C++ toolchain
- lua-languages : Languages that compile to Lua
- luvit : Lua + libUV + jIT = pure awesomesauce
- luamod : C++11 API for binding Lua and C++, targeted at scripting for games
- Python
- zippypy : A simple, lightweight Python 2.7 interpreter, with predictable memory management and without global locks.
- pybind11 : Seamless operability between C++11 and Python
- pystring : C++ functions matching the interface and behavior of python string methods with std::string
- python-cheatsheet : Comprehensive Python Cheatsheet
- zippypy : A simple, lightweight Python 2.7 interpreter, with predictable memory management and without global locks.
- Javascript
- jerryscript : Ultra-lightweight JavaScript engine for the Internet of Things. http://samsung.github.io/jerryscript
- em-dosbox : An Emscripten port of DOSBox
- duktape : Duktape - embeddable Javascript engine with a focus on portability and compact footprint
- mjs : Embedded JavaScript engine for C/C++
- v8 : The official mirror of the V8 Git repository
GameProgramming
- Nodable : a node-able bidirectionnal expression editor.
- nodeeditor : Qt Node Editor. Dataflow programming framework
- FSM : finite-state-machine demo
- lasso : A generic game loop implementation in C++
- aabbcc : Dynamic AABB trees in C++ with support for periodic systems.
- distance-occlusion : A library of distance and occlusion generation routines
- cppfsm : A simple, generic, header-only state machine implementation for C++.
- Behavior-Tree : A lightweight library of Behavior Trees Library in C++.
- Achieve : Library to manage and implement achievements in a game.
- Discregrid : A static C++ library for the generation of discrete functions on a box-shaped domain. This is especially suited for the generation of signed distance fields.
- DesignPattern :
- game-programming-patterns : Source repo for the book
- fsm-variant : Finite State Machine implementation using std::variant
- camera_demo : demo for par_camera_control.h
- godot_entt_net_example : A simple example on how to use entt (https://github.com/skypjack/entt) and GameNetworkingSockets (https://github.com/ValveSoftware/GameNetworkingSockets) within godot
- EntityComponentSystem
- ecs-example : An example of an ECS architecture in C++
- Diana : Entity Component system like Artemis implemented in C
- entt-reactive : An experimental sprite rendering setup utilizing SSBO's, Threading, EnTT reactive systems, and array-textures based sprite caching.
- minECS : Minimal hackable C# ECS
- lent : the Donald Trump of the ECS libraries
- anax : An open source C++ entity system.
- ecs : Thoughts about entity-component-system
- flecs : A Multithreaded Entity Component System written for C89 & C99
- entt : Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more
- corgi : C++ entity-component system
- ECS : C++ single-header entity component system library
- EntityPlus : A C++14 Entity Component System
- ecst : [WIP] Experimental C++14 multithreaded compile-time entity-component-system library.
- entityx : EntityX - A fast, type-safe C++ Entity-Component system
- dynamix : A new take on polymorphism in C++
- met-ecs : A simple ECS library made for learning purposes (header-only)
- Inputs
- XJoy : Use Nintendo Switch JoyCons as a virtual Xbox 360 controller in Windows
- drishti : Real time eye tracking for embedded and mobile devices.
- openpose : OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
- libgamepad : Cross-platform library for gamepad input. MIT licensed.
- gainput : Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch http://gainput.johanneskuhlmann.de/
- gesture_recognition : UVIC ECE 499 Real-Time Gesture Recognition Project
- OpenHMD : Free and Open Source API and drivers for immersive technology.
- EasyTab : Single-header multi-platform tablet library
- libue : A self-contained minimal library for interacting with Linux hot-plug events
- Maps
- Procedural
- SpaceshipGenerator : A Blender script to procedurally generate 3D spaceships
- Procedural-Cities : master thesis
- termProject : Terrain generator with 5 visually distinct biomes, spread them in regions and smooth their borders
- libseed : Procedural Content Generation Library for C++
- proctree : Procedural tree mesh generator (and editor)
- World-Generator : Procedural world generator. Generates a height map and then applies temperature, rainfall, and river simulations to it to form a world map.
- FantasyMapGenerator : A fantasy map generator based on Martin O'Leary's "Generating fantasy map" notes
- procgen : Procedural Generation Experiments
- rant : Rant – The all-purpose procedural text library
- SDS : Procedural generation of organic 3D geometry
- fugu : Fugu/fg is a system for procedurally generating animated geometric forms in real-time. Fugu can be downloaded from http://bp.io/fugu, an online reference and gallery is also located there.
- generator : A procedural geometry generation library for C++11
- 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) . At Renderer, with height map and blend …
- Integration
- Playnite : Open source video game library manager with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Including game emulation support, providing one unified interface for your…
- game-jolt-api-cpp-library : C++ Library to connect games with Game Jolt (https://gamejolt.com)
- CSteamworks : C bindings for Steamworks
- enkiWS : Web Services for game developers on Google App Engine
- steam-audio : Steam Audio
- tiniest-analytics : VERY simple cross-platform C++ analytics for games (using Google Analytics)
- BRINDIE-FREE : BRINDIE FREE - an .ai sourcefile with sizes for art assets needed to create Facebook page, Twitter profile, Steam Store page and Steam Developer page
- Proton : Compatibility tool for Steam Play based on Wine and additional components
- steam-runtime-helpers :
- Games
- endless-sky : Space exploration, trading, and combat game.
- Cytopia : A city building simulation game
- mudpp : C++17 exploration of a classic MUD like game
- magarena : Magarena is a single-player fantasy card game played against a computer opponent.
- robotligan : Multiplayer football game
- VVVVVV : The source code to VVVVVV! http://thelettervsixtim.es/
- DTL_RogueLike : : RogueLike (Dungeon Template Library)
- UniformDieCast : C++11 provides chainable and iterable object for uniform die casts. Useful for statistics or table top RPG simulations.
Rust
- iced : A renderer-agnostic GUI library for Rust, inspired by Elm
- tetra : A simple 2D game framework written in Rust
- arewegameyet : The repository for arewegameyet.rs
- rust-ecosystem : Rust wants & tracking for Embark
- treeflection : A rust library that provides pseudo-reflection for structs and enums
- wg : Coordination repository of the Game Development Working Group
- reference : The Rust Reference
- shipyard : Entity Component System written in Rust
- physx-rs : Rust binding and wrapper over NVIDIA PhysX
- ndarray : ndarray: an N-dimensional array with array views, multidimensional slicing, and efficient operations
- amethyst : Data-oriented and data-driven game engine written in Rust
- cheats.rs : Rust Language Cheat Sheet - https://cheats.rs
- mathbench-rs : Comparing performance of Rust math libraries for common 3D game and graphics tasks
- vulkano : Safe and rich Rust wrapper around the Vulkan API
- imgui-rs : Rust bindings for dear imgui
- chip8 : Yet another chip8 interpreter in rust
- gfx : A low-overhead Vulkan-like GPU API for Rust.
- rustcxx : rustcxx: Using C++ from Rust made easy
- ngx-rust : Rust binding for NGINX
- diesel : A safe, extensible ORM and Query Builder for Rust
- dynstack : A stack for rust trait objects that minimizes allocations
- cc-rs : Rust library for build scripts to compile C/C++ code into a Rust library
- rust : Empowering everyone to build reliable and efficient software.
- unosolo : Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers.
- r4cppp : Rust for C++ programmers
- game-of-life :
- rendy : State of the art "build your own engine" kit powered by gfx-hal
- u2N : Fixed-size, zero-allocation arithmetic suitable for embedded systems
- glam-rs : A simple and fast linear algebra library for games and graphics
- wgpu : Native WebGPU implementation based on gfx-hal
- rs-tiled : Reads files from the Tiled editor into Rust
- awesome-rust : A curated list of Rust code and resources.
- Nazarust : An experiment to rewrite NazaraEngine using Rust
- ggez : Rust library to create a Good Game Easily
- render-rs : Collection of rust crates providing rendering abstractions.
Tools
- build2 : build2 build system
- rcrl : Read-Compile-Run-Loop: tiny and powerful interactive C++ compiler (REPL)
- LibreSprite : Animated sprite editor & pixel art tool -- Fork of the last GPLv2 commit of Aseprite
- smldbg : A small, dependency free debugger.
- training-kit : Open source cheat sheets for Git and GitHub
- SZZUnleashed : An implementation of the SZZ algorithm, i.e., an approach to identify bug-introducing commits.
- ClangBuildAnalyzer : Clang build analysis tool using -ftime-trace
- tev : High dynamic range (HDR) image comparison tool for graphics people with an emphasis on OpenEXR images.
- exception_reporter : A tool to collect the exceptions that can reach a C++ function
- ScreenToGif : ScreenToGif allows you to record a selected area of your screen, edit and save it as a gif or video.
- dxil-signing : Utility to sign DXIL code after compilation
- nvtop : NVIDIA GPUs htop like monitoring tool
- 3dtiles : The fastest tools for 3dtiles convert in the world!
- greenshot : Greenshot for Windows - Report bugs & features go here: https://greenshot.atlassian.net or look for information on:
- Dependencies : A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.
- butler : Command-line itch.io helper
- gh-card :
- FNode : Tool based in nodes to build GLSL shaders without any programming knowledge written in C using OpenGL and GLFW.
- NormalmapGenerator : A simple program that converts images into normal maps
- Laigter : A simple tool for automatic generation of normal/specular/parallax/occlussion maps for dynamic lights in games. Mainly focused for 2D sprites.
- cppclean : Finds problems in C++ source that slow development of large code bases
- veles : Binary data analysis and visualization tool
- sanitizers : AddressSanitizer, ThreadSanitizer, MemorySanitizer
- sprite-sheet-packer : Sprite sheet packer
- CryLivePlusPlus :
- HlslTools : A Visual Studio extension that provides enhanced support for editing High Level Shading Language (HLSL) files
- include-what-you-use : A tool for use with clang to analyze #includes in C and C++ source files
- dust3d : Dust3D is a cross-platform open-source 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one.
- shaderc : A collection of tools, libraries, and tests for Vulkan shader compilation.
- SPIRV-Tools :
- opentoonz : OpenToonz - An open-source full-featured 2D animation creation software
- waifu2x-ncnn-vulkan : waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan
- IntelShaderAnalyzer : Command line tool for offline shader ISA inspection.
- polyedit : 2d lowpoly editor based on http://raincomplex.net/lowpolyeditor/
- PlotJuggler : The timeseries visualization tool that you deserve
- incbin : Include binary files in C/C++
- ToolsOfTheTrade : Tools of The Trade, from Hacker News.
- hexembed : A small utility to embed files into C or C++ programs.
- NMS-Tools : Set of tools for No Man's Sky
- fontforge : Free (libre) font editor for Windows, Mac OS X and GNU+Linux
- TextureGenerator-Online : Procedural texture creator Online
- NormalMap-Online : NormalMap Generator Online
- travis_cpp_tutorial : Tutorial how to use Travis CI with C++
- android-ndk : Android NDK samples with Android Studio
- fips : High-level build system for distributed, multi-platform C/C++ projects.
- reopt : A tool for analyzing x86-64 binaries.
- cppcheck : static analysis of C/C++ code
- cpp-forensics : C++ crash dump server
- cpack : File-to-sourcecode packer.
- templight : Templight is a Clang-based tool to profile the time and memory consumption of template instantiations and to perform interactive debugging sessions to gain introspection into the template instantia…
- stack-on-a-budget : A collection of services with great free tiers for developers on a budget
- mkvfx : Build scripts for libraries commonly used in games, film and vfx
- masterplan : MasterPlan is a project management software / visual idea board software. It attempts to be easy to use, lightweight, and fun.
- public-apis : A collective list of free APIs for use in software and web development.
- docker : Lightweight containers for building C++
- grafana : The tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More
- opengametools : A set of open c++ game development tools that are lightweight, easy-to-integrate and free to use. Currently hosting a magicavoxel .vox full scene loader.
- cpp-dependencies : Tool to check C++ #include dependencies (dependency graphs created in .dot format)
- pubgrub : Pubgrub dependency resolution algorithm for C++
- pacm : C++ front-end package manager for embedding and redistributing with native applications
- Arbiter : Dependency manager library that supports decentralization
- oss-fuzz : OSS-Fuzz - continuous fuzzing of open source software.
- Visual Studio Extensions
- SPIRV-VSExtension : SPIR-V extension for Visual Studio
- asm-dude : Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
- fastbuild : High performance build system for Windows, OSX and Linux. Supporting caching, network distribution and more.
- LivePP : A UE4 plugin wrapper for Molecular Matter's Live++ Hot-Reloading Library
- ue4-vs-extensions : Useful UE4 Visual Studio extensions.
- GLSL : VSIX Project that provides GLSL language integration.
- UnityMixedCallstack : Visual Studio native debugger extension to help debug native applications using Mono.
- vs-chromium : A Visual Studio extension containing a collection of tools to help contributing code to the Chromium project.
- VSDebugPro : Enhanced debugging for C/C++. Dump blocks of data, load data in memory and more.
- CompileTimer : Set of tests to benchmark the compile time of c++ constructs
- TestAdapter_Catch2 : Visual Studio Test Adapter for Catch2
- vscode-shader : Shader languages support for VS Code
- VS-ColorThemes : Visual Studio Extension that installs additional color themes
- Git
- git-flight-rules : Flight rules for git
- gitsuggest : A tool to suggest github repositories based on the repositories you have shown interest in.
- Projects
- bscxx : BSCXX (for BootStrap CXX project) is a C++ package manager.
- Sharpmake : Sharpmake is an open-source C#-based solution for generating project definition files, such as Visual Studio projects and solutions, GNU makefiles, Xcode projects, etc.
- poac : Package manager for C++
- ninja : a small build system with a focus on speed
- conan-google-benchmark : Conan recipe for Google Benchmark library
- conan-irrlicht : Conan recipe for Irrlicht library
- cmake-scripts : CMake scripts shared among other repositories
- conan : Conan - The open-source C/C++ package manager
- premake-cmake : cmake output for premake5
- vcpkg : C++ Library Manager for Windows, Linux, and MacOS
- ucm : Useful cmake macros that help with: compiler/linker flags, collecting sources, PCHs, Unity builds and other stuff.
- cotire : CMake module to speed up builds.
- cmakepp : An Enhancement Suite for the CMake Build System
- cmake_format : Source code formatter for cmake listfiles.
- learning-cmake : learning cmake
- cpp-project : Boiler plate template for C++ projects, with CMake, Doctest, Travis CI, Appveyor, Github Actions and coverage reports.
- conan-center-index : Recipes for the ConanCenter repository
- ios-cmake : A CMake toolchain file for iOS, watchOS and tvOS C/C++/Obj-C++ development
- Box2D-cmake : CMake wrapper for Box2D, since it uses premake5
- cpp-oss-template : C++ Open Source Software Template
- cmake : A set of cmake modules to assist in building code
- travis-gtest-cmake-example : Example of a gtest and cmake set up for C++ on Travis-CI.
- gtest-cmake-example : Helpful example of a gtest and cmake set up for C++.
- travis_gcc_cpp17 : Minimal C++17 project using the GCC compiler and is checked by Travis CI
Awesome
- awesome-cmake : A curated list of awesome CMake resources, scripts, modules, examples and others.
- bookmarks : Collection of public dev bookmarks, shared with
- cpp_youtube_channels : Listing of C++ Youtube channels for conferences and user groups
- programming-talks : Awesome & interesting talks about programming
- awesome-modern-cpp : A collection of resources on modern C++
- Awesome-Game-Networking : A Curated List of Game Network Programming Resources
- awesome-behavior-trees : A list of awesome Behavior Trees resources
- GameDevelopmentLinks : This is a collection of useful game-development links including, but not restricted to, development with MonoGame.
- awesome-entity-component-system : A curated list of Entity-Component-System (ECS) libraries and resources
- awesome-casestudy : Curated list of technical case studies on WebGL and creative development
- awesome-cg-vfx-pipeline : List of open-source technologies that help in the process of building a pipeline for CG and VFX productions
- awesome-glsl : Compilation of the best resources to learn programming OpenGL Shaders
- cpp_blogs : C++ Blogs (plus other stuff we should care about like undefined behavior)
- awesome-rtx : Curated collection of projects leveraging NVIDIA RTX technology (OptiX, DXR, VKR)
- zalo.github.io : A home for knowledge that is hard to find elsewhere
- awesome-gamedev : A list of Game Development resources to make magic happen.
- gamedev-resources : An updated collection of useful resources to resources to design, develop and market games.
- build-your-own-x : Build your own (insert technology here)
- awesome-ray-tracing : Curated list of ray tracing resources
- awesome-vulkan : Awesome Vulkan ecosystem
- awesome-opengl : A curated list of awesome OpenGL libraries, debuggers and resources.
- hall-of-fame : Show some love to your contributors! A widget for your repo README. Visual and clean. Refreshes every hour.
- awesome-collision-detection : A curated list of awesome collision detection libraries and resources
- AwesomePerfCpp : A curated list of awesome C/C++ performance optimization resources: talks, articles, books, libraries, tools, sites, blogs. Inspired by awesome.
- awesome-d3d12 : Awesome D3D12 ecosystem
- awesome-cpp : A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
- awesome-bits : A curated list of awesome bitwise operations and tricks
- cpplinks : A categorized list of C++ resources.
- awesome-gametalks : A curated list of gaming talks (development, design, etc)
- awesome-design : Best UI/UX Design Sources For Developer & Designer Ever :)
- awesome-gamedev : A collection of free software and free culture resources for making amazing games. (mirror)
- magictools : A list of Game Development resources to make magic happen.
- awesome : Awesome lists about all kinds of interesting topics
- awesome-c : A curated list of awesome C frameworks, libraries and software.
- awesome-mental-health : A curated list of awesome articles, websites and resources about mental health in the software industry.
- modern-cpp-tutorial : A curated list of Modern C++ articles, examples, tutorials, frameworks, libraries, and shiny things.
- awesome-wgpu : A curated list of wgpu code and resources.
- awesome-gametalks : A curated list of gaming talks (development, design, etc)
- data-oriented-design : A curated list of data oriented design resources.
- awesome-actions : A curated list of awesome actions to use on GitHub
- awesome-raylib : A curated list of awesome stuff for raylib; the simple and easy-to-use library to enjoy videogames programming.
GameProgrammerPath
- uLicense : Tiny and free software license in 299 bytes.
- game-programmer : A Study Path for Game Programmer
- every-programmer-should-know : A collection of (mostly) technical things every software developer should know
- coding-interview-university : A complete computer science study plan to become a software engineer.
- interviews : Everything you need to know to get the job.
- interview : Everything you need to prepare for your technical interview
- reverse-interview : Questions to ask the company during your interview
- SoftwareArchitect : Path to a Software Architect
GameDesign
- gamebook : An unified game design document convention (CC0, Markdown)
- trust : An interactive guide to the game theory of cooperation
Website
- minimal-mistakes : Jekyll theme for building a personal site, blog, project documentation, or portfolio.
- water.css : A just-add-css collection of styles to make simple websites just a little nicer
- coder : A simple way to make web stuff on Raspberry Pi
- Freelander : Simple landing page that just works.
- animate.css : A cross-browser library of CSS animations. As easy to use as an easy thing. http://daneden.github.io/animate.css
- electron :
原文:https://github.com/Caerind/AwesomeCppGameDev
- 登录 发表评论