Uma coleção de bibliotecas C/C ++ para desenvolvimento de jogos
- Sistema
- Base
- Matemática
- Janela/entrada
- Rosqueamento
- Alocadores de memória
- Simd
- Depuração
- Sistema de plug -in/reflexão
- Serialização
- Componentes do motor
- Renderização
- Áudio
- Networking
- Script
- Ui
- ECS
- Animação / cenário
- Física
- Pathfinding
- Banco de dados
- Gestão de ativos
- Malhas/geometria
- Processamento
- Importadores/exportadores
- Cozimento/embalagem de textura
- Estruturas
Sistema
Base
| Lib | Título |
|---|
| bkaradzic/bx | Biblioteca base |
| septag/sx | Biblioteca base portátil para programadores C, adaptados para desempenho e simplicidade |
| nada/stb | Bibliotecas de domínio público de arquivo único do STB para C/C ++ |
| Randygaul/fofte_headers | Bibliotecas de um arquivo C/C ++ sem dependências, usadas principalmente para jogos |
| Vurtun/mmx | Bibliotecas de cabeçalho único para C/C ++ |
| ZPL-C/ZPL | Seu Powerkit C99 |
| Niklas-Ormachinery/Bitsquid-Foundation | Uma biblioteca de fundação minimalista com funções para alocação de memória, coleções básicas, etc. A biblioteca foi escrita com uma filosofia orientada a dados: as estruturas de pod são preferidas sobre as classes, matrizes planas são a estrutura de dados preferida etc. |
Matemática
| Lib | Título |
|---|
| Hipatia | Biblioteca Math Math 2D/3D Pure C. Procura estar perto de compatível com C89/C90 para portabilidade. |
| G-TRUC/GLM | Matemática OpenGL (GLM) |
| RECP/CGLM | Matemática otimizada do OpenGL/Graphics (GLM) para C |
| Google/Mathfu | A Biblioteca de Matemática de C ++ se desenvolveu principalmente para jogos focados na simplicidade e na eficiência. |
| Ferreiradaselva/Mathc | Biblioteca de matemática C Pure para programação 2D e 3D |
| DemianMnave/CML | A Biblioteca de Matemática Configurável http://cmldev.net |
| SCE_VECTORMATH | Biblioteca de Matemática de Vector |
| Premath | Premath |
| Made-mateiro | Uma biblioteca de matemática simples para jogos e computadores gráficos. |
| Felselva/Mathc | Biblioteca de matemática C Pure para programação 2D e 3D. |
| PX4/EIGEN | Eigen é uma biblioteca de modelos C ++ para álgebra linear: matrizes, vetores, solucionadores numéricos e algoritmos relacionados. http://eigen.tuxfamily.org/ |
| Laze-Lib/Blaze | Blaze é uma biblioteca de matemática C ++ de alto desempenho e de alto desempenho para aritmética densa e esparsa. |
| Sgorsten/Linalg | Linalg.h é uma única biblioteca de álgebra linear de domínio público para C ++ 11 |
Janela/entrada
| Lib | Título |
|---|
| Sdl | Camada simples direta do DirectMedia |
| Sfml | Biblioteca multimídia simples e rápida |
| GLFW | Uma biblioteca de várias plataformas |
| Gainput | Biblioteca de entrada C ++ para jogos |
| WGOIS/OIS | Sistema de entrada orientado a objetos https://wgois.github.io/ois/ |
| ZIACKO/TINYWindow | Uma biblioteca de janelas OpenGL Cross Platform (Linux e Windows) em um único cabeçalho |
| Nyorain/NY | Abstração da janela de plataforma cruzada C ++ moderna |
Rosqueamento
| Lib | Título |
|---|
| Rhoot/SC | Biblioteca de co-rotear-rotines de plataforma exposta através de uma API C mínima |
| DEBOOST.CONTEXT | Versão "desboostificada" do boost.Context (Coroutines), API C simples e simples para a comutação de contexto. Fácil construção em várias plataformas. |
| SergeyMakeev/TaskScheduler | Experimentos de agendamento de tarefas multithread |
| Dougbinks/Enkits | Agendador de tarefas multithreading C ++ e C |
| Freeeaky/Fiber-Job-System | Sistema de empregos com vários threads usando fibras |
| Richiesams/FiberTaSkingLib | Uma biblioteca para permitir multi-threading baseada em tarefas. Ele permite a execução de gráficos de tarefas com dependências arbitrárias. |
| JoditheTigger/Costura | Pequeno sistema de trabalho de fibra multithread de fibra multithread pequena C API |
| Pithikos/C-Thread-Pool | Um pool de threads mínimo, mas poderoso, em Ansi C |
| MBROSSARD/Threadpool | Uma simples implementação do pool de threads C C |
| tinycthread/tinycthread | Implementação portátil pequena da API de threads C11 |
| yohhoy/thread | C11 <Threads.h> Biblioteca de emulação |
Alocadores de memória
| Lib | Título |
|---|
| Mtrebi/alocadores de memória | Alocadores de memória personalizados em C ++ para melhorar o desempenho da alocação de memória dinâmica |
| Foonathan/memória | Biblioteca de Memória C ++ compatível com STL usando um novo conceito RawAllocator semelhante a um alocador, mas mais fácil de usar e escrever. http://foonathan.net/doc/memory |
| SergeyMakeev/Smmalloc | Alocador de memória rápida em chamas projetada para videogames |
| plasma-unsass/malha | Um alocador de memória que reduz automaticamente a pegada de memória de aplicativos C/C ++. |
| Rampantpixels/rpMalloc | Public Domain Cross Platform Lock Free Thread Caching |
| Microsoft/Mimalloc | Alocador de propósito geral com excelentes características de desempenho. |
Simd
| Lib | Título |
|---|
| p12tic/libsimdpp | Cabeçalho portátil apenas biblioteca de baixo nível Zero C ++ Biblioteca SIMD |
| Vcdevel/vc | Classes de vetor Simd para C ++ |
| Nemequ/Simde | Implementações dos conjuntos de instruções SIMD para sistemas que não os suportam nativamente. |
| XTensor-Stack/XSIMD | Invólucros de C ++ para INTRIMÍCIAS SIMD e funções matemáticas otimizadas e paralelas (SSE, AVX, NEON, AVX512) |
Depuração
| Lib | Título |
|---|
| rxi/log.c | Uma biblioteca de madeira simples implementada em C99 |
| spdlog | Biblioteca de log rápida C ++. |
| easy_profiler | Biblioteca de Profiler leves para C ++ |
| Versado/piscar | Uma ferramenta que permite editar o código -fonte de qualquer projeto do Windows C ++ ao vivo no tempo de execução |
| ddovod/jet-live | Recarregar o código quente C ++ para Linux e MacOS |
| RRZE-HPC/LOKWID | Suíte de monitoramento de desempenho e benchmarking |
Sistema de plug -in/reflexão
| Lib | Título |
|---|
| fungos/cr | CR.H: Uma biblioteca de cabeçote de recarga a quente simples C simples |
| Manu343726/ctti | Compilar informações de tipo de tempo para C ++ |
Serialização
| Lib | Título |
|---|
| FelixGuendling/Cista | Serialização e reflexão simples C ++. https://cista.rocks |
| MSGPACK/MSGPACK-C | Implementação do MessagePack para C e C ++ |
| Sheredom/JSON.H | analisador JSON para C e C ++ |
Componentes do motor
Renderização
| Lib | Título |
|---|
| bkaradzic/bgfx | API gráfica de plataforma cruzada, Biblioteca de renderização de estilo "traga seu próprio motor/estrutura". |
| Floooh/Sokol | Cabeçalhos cross-plataformados mínimos |
| DiligentGraphics/DiligEntEngine | Uma moderna biblioteca gráfica 3D de baixo nível de plataforma cruzada que suporta Direct3D11, Direct3D12, OpenGL/GLES, Vulkan e Metal |
| Kode/Kore | Biblioteca de jogos de baixo nível moderna e abstração de hardware |
| Google/filamento | Filamento é um mecanismo de renderização de base fisicamente em tempo real para Android, Windows, Linux e MacOS |
| FNA-XNA/FNA3D | Biblioteca gráfica 3D para FNA |
| grz0zrg/fbg | Biblioteca agnóstica de API de API 2D da API C 2D com suporte de paralelismo |
| COFENBERG/UNRIMP | Implementação unificada de renderizador ("un r imp") |
| doitsujin/dxvk | Implementação D3D11 e D3D10 baseada em Vulkan para Linux / Wine |
| Plux/px | Bibliotecas C ++ de cabeçalho único para agendamento de threads, renderização |
| Intel/fastuidraw | biblioteca que fornece uma interface de lona de desempenho superior |
| V-ez | O V-EZ é um wrapper de plataforma cruzada (Windows e Linux) de código aberto, destinado a aliviar a complexidade inerente e a responsabilidade de aplicação do uso da API Vulkan. |
| ssloy/tinyrenderer | Um breve curso de computadores gráficos / renderização |
| NiceByte/Nicegraf | Uma camada de abstração para APIs gráficas específicas de plataforma de baixo nível. |
| DR-Soft/Glbind | Opengl API Loader. |
| DR-SOFT/VKBIND | Loader de API Vulkan de arquivo único. |
| Lukasbanana/llgl | Biblioteca gráfica de baixo nível (LLGL) é uma fina camada de abstração para as APIs de gráficos modernos OpenGL, Direct3D, Vulkan e Metal |
| Zauonlok/Renderizador | Um renderizador de software baseado em shader escrito do zero em C89 |
| Zeux/Niagara | Um renderizador de vulkan escrito do zero no stream |
Áudio
| Lib | Título |
|---|
| Open Soft | Implementação de software da API de áudio 3D Open |
| FNA-XNA/FAUDIO | FAUDIO - Reimplementação de Xaudio focada na precisão para plataformas abertas |
| Soloud | Motor de áudio portátil gratuito, fácil e portátil para jogos |
| Barerose/Atomix | Biblioteca de mistura de som atômico portátil, de arquivo único e sem espera, utilizando mistura acelerada de SSE |
| DR-Soft/miniaudio | Biblioteca de reprodução e captura de áudio de arquivo único |
| Portaudio | Portaudio é uma biblioteca de E/S de áudio de áudio de áudio, de plataforma aberta, de plataforma aberta |
| ressonância-audio | Áudio espacial de alta fidelidade em escala. |
Networking
| Lib | Título |
|---|
| librg | Biblioteca de rede de jogos Pure C99 |
| bkaradzic/bnet | Biblioteca de rede orientada para mensagens usando o transporte TCP |
| Zeromq/libzmq | Motor Core Zeromq em C ++, implementa ZMTP/3.1 http://www.zeromq.org |
| rxi/díade | Rede assíncrona para C para C |
| LSALZMAN/ENET | ENET Biblioteca de rede UDP confiável |
| Jarikomppa/IPC | Domínio público, plataforma cruzada, primitivas de comunicação entre processos únicos. Esta é uma biblioteca C/C ++ "STB como" de domínio público, que fornece a funcionalidade de comunicação entre processos, lançada sob Unlicense. |
| VALVESOFTWARE/GameNetworkingSockets | Mensagens confiáveis e não confiáveis sobre o UDP. Fragmentação e remontagem de mensagens robustas. Criptografia. |
| jeremycw/httpserver.h | Biblioteca de cabeçalho único para escrever servidores HTTP não bloqueadores em C |
Script
| Lib | Título |
|---|
| Svaarala/Duktape | Duktape - Motor JavaScript incorporado com foco na portabilidade e pegada compacta |
| Gaijinentertment/Dascript | DASCRIPT - Idioma de script tipado estaticamente forte de alta performance https://dascript.org |
Ui
| Lib | Título |
|---|
| Ocornut/Imgui | Caro IMGUI: Interface gráfica do usuário imediato sem incêndio para C ++ com dependências mínimas |
| Vurtun/Nuklear | Uma biblioteca Ansi C GUI de cabeçalho único |
| ANDLABS/LIBUI | Biblioteca GUI simples e portátil (mas não inflexível) em C que usa as tecnologias nativas da GUI de cada plataforma que suporta |
| rxi/microui | Pequena biblioteca de interface do usuário imediato |
| Julianeisel/Bwidgets | Kit de ferramentas de widget de interface do usuário básico projetado para o Blender |
| Idea4Good/Guilite | Menor estrutura da interface do usuário para todas as plataformas e docker - código de linhas 5k |
| Littlevgl/lvgl | Biblioteca gráfica para criar uma GUI incorporada com elementos gráficos fáceis de usar |
| Wjakob/Nanogui | Biblioteca GUI minimalista para OpenGL |
| Randrew/layout | Biblioteca de arquivo único para calcular layouts de interface do usuário 2D usando caixas de empilhamento. Compila como C99 ou C ++. |
| Mikke89/rmlui | Pacote de interface do usuário C ++ com base nos padrões HTML e CSS |
ECS
| Lib | Título |
|---|
| Skypjack/Entt | Um sistema de componente de entidade (ECS) rápido e confiável e muito mais |
| RedxDev/ECS | C ++ Biblioteca de sistemas de componentes de entidade de cabeçalho único |
| Alecthomas/entityx | Entityx-Um sistema de componente de entidade C ++ rápido e seguro de tipo |
| Discoloda/Diana | Sistema de componentes de entidade como Artemis implementado em C |
| SANDERMERTENS/REFLECS | Sistema de componentes de entidade multithread escrito em C99 |
Animação / cenário
| Lib | Título |
|---|
| BuSERROR/LIBC3 | Biblioteca de gráficos de cena leve C Libraria |
| GuillaumeBlanc/Ozz-Animation | Biblioteca de animação esquelética de código aberto C ++ |
| Google/Motive | Um sistema de animação de plataforma cruzada, eficiente de memória e performante escrita em C ++ |
Física
| Lib | Título |
|---|
| Nvidiagameworks/physx | Nvidia Physx SDK 4 |
| Bulletphysics/Bullet3 | Bullet Physics SDK: Detecção de colisão em tempo real e simulação multi-física para VR, jogos, efeitos visuais, robótica, aprendizado de máquina etc. |
| Chriscamacho/Bulletcapi | C API para física de bala |
| MaleApps/Newton-Dynamics | A Newton Dynamics é uma solução integrada para simulação em tempo real de ambientes de física. http://www.newtondynamics.com |
| Erincatto/Box2d | Box2d é um mecanismo de física 2D para jogos http://box2d.org |
| Chipmunk2d | Uma biblioteca de física de jogo 2D rápida e leve. |
| GJK.C | Gilbert-Johnson-Keerthi (GJK) Algoritmo de detecção de colisão |
| Phyx | Motor de física 2D com otimizações SOA/SIMD |
| Playrho | Motor de física e biblioteca orientada em tempo real que atualmente é mais adequada para jogos 2D |
| PositionBaseddynamics | PositionBaseddynamics é uma biblioteca para a simulação fisicamente baseada em corpos rígidos, sólidos deformáveis e fluidos |
| Nudge | Uma pequena biblioteca corporal 3D, otimizada por dados e otimizada por dados. |
| Partlesolver | Implementações de CPU e GPU de uma física baseada em partículas |
Pathfinding
| Lib | Título |
|---|
| JPS | Pesquisa de ponto de salto, domínio público, single .h (busca super rápida em grades uniformes) |
| ASTAR-ALGORITHM-CPP | Implementações do algoritmo A* em C ++ e C# |
| Micropista | A* solucionador (Astar ou A-Star) escrito em C ++ independente da plataforma |
| reformulação | Conjunto de ferramentas de malha de navegação para jogos |
Banco de dados
| Lib | Título |
|---|
| Symisc/Unqlite | Um NOSQL incorporado, mecanismo de banco de dados transacional |
| FNC12/SQLITE_ORM | SQLITE ORM LIGHT CABECIENTE SOMENTE BIBLIOTECA PARA C ++ MODERN |
Gestão de ativos
Malhas/geometria
Processamento
| Lib | Título |
|---|
| libigl | Biblioteca de processamento de geometria C ++ simples |
| Mathgeolib | Biblioteca para álgebra linear e manipulação de geometria para computação gráfica |
| sseculling | SSE Frustum Culling Demo |
| CullMinator9000 | O casteiro mais rápido de todos os tempos |
| Seamawaredecimater | Simplificação de malha com limites da UV preservados |
| ZEUX/MESHOPTIMIZER | Biblioteca de otimização de malha que torna as malhas indexadas mais amigáveis à GPU |
| Google/Draco | Draco é uma biblioteca para compactar e descomprimir malhas geométricas 3D e nuvens de ponto. Destina -se a melhorar o armazenamento e a transmissão de gráficos 3D. |
Importadores/exportadores
| Lib | Título |
|---|
| Assimp | Repositório oficial de importação de ativos abertos. Carrega 40+ formatos de arquivo 3D em uma estrutura de dados unificada e limpa |
| NEM0/OpenFBX | Importador FBX de código aberto leve |
| Syoyo/TinyObjloader | Larreiro de onda de onda de arquivo único minúsculo, mas poderoso |
| Syoyo/TinyGltf | Somente o cabeçalho C ++ Tiny Gltf 2.0 carregador. |
| JKUHLMANN/CGLTF | Analisador GLTF 2.0 de arquivo único escrito em C99 |
| Microsoft/GLTF-SDK | GLTF-SDK é um kit de desenvolvimento de software C ++ para GLTF |
| FacebookIncubator/FBX2GLTF | Uma ferramenta de linha de comando para a conversão de ativos do modelo 3D no formato do arquivo FBX no formato do arquivo GLTF. |
Cozimento/embalagem de textura
| Lib | Título |
|---|
| Binomialllc/Base_Universal | Codec de textura da GPU universal BASE |
| Caosdoar/Fornos | Ferramenta de cozimento de textura da GPU. Uma ferramenta rápida e simples para assar seus detalhes de malha de alta poli para texturas. |
| Kmkolasinski/Awesomebump | AwesomeBump gera texturas de oclusão normais, de altura, especular ou ambiente de uma única imagem |
| dariomanesku/cmft | Ferramenta de filtragem Cubemap da linha de comando de plataforma cruzada |
| Cheetah-Texture-Packer | Ferramenta de embalagem 2D de alta eficiência e rápida |
| thekla_atlas | Ferramenta de geração do atlas |
| libvips | Uma biblioteca de processamento de imagem rápida com baixa memória necessidades |
Estruturas
| Lib | Título |
|---|
| GameFoundry/BSF | Biblioteca moderna C ++ 14 para o desenvolvimento de aplicativos gráficos em tempo real https://www.bsframework.io |
| Raylib | Uma biblioteca simples e fácil de usar para desfrutar de videogames programando http://www.raylib.com |
| floooh/oryol | Uma pequena estrutura de codificação C ++ 3D portátil e extensível |
| Confetfx/the-forge | A estrutura de renderização da plataforma cruzada forge PC, Linux, Ray Rasting, MacOS / iOS, Android, Xbox, PS4 |
| Mosra/Magnum | C ++ 11/C ++ 14 Middleware gráfico para jogos e visualização de dados |