Una colección de bibliotecas C/C ++ para el desarrollo de juegos
- Sistema
- Base
- Matemáticas
- Ventanas/entradas
- Enhebrado
- Asignadores de memoria
- Simd
- Depuración
- Sistema de complemento/reflexión
- Publicación por entregas
- Componentes del motor
- Representación
- Audio
- Networking
- Scripting
- Ui
- ECS
- Animación / escenagraph
- Física
- Ratina
- Base de datos
- Gestión de activos
- Malla/geometría
- Tratamiento
- Importadores/exportadores
- Horneado/embalaje de textura
- Marcos
Sistema
Base
| Lib | Título |
|---|
| bkaradzic/bx | Biblioteca base |
| septag/sx | Biblioteca base portátil para programadores C, diseñado para rendimiento y simplicidad |
| Nothings/STB | STB Bibliotecas de dominio público de un solo archivo para C/C ++ |
| Randygaul/lindo_headers | Bibliotecas C/C ++ de un archivo sin dependencias, utilizadas principalmente para juegos |
| vurtun/mmx | Bibliotecas de encabezado único para C/C ++ |
| ZPL-C/ZPL | Tu C99 PowerKit |
| niklas-ourmachinery/bitsquid-fundation | Una biblioteca de base minimalista con funciones para la asignación de memoria, colecciones básicas, etc. La biblioteca se ha escrito con una filosofía orientada a datos: las estructuras de POD se prefieren sobre las clases, las matrices planas son la estructura de datos preferida, etc. |
Matemáticas
| Lib | Título |
|---|
| Hipatia | Pure C Math Library 2D/3D Graphics. Busca estar cerca de C89/C90 que cumple con la portabilidad. |
| G-TRUC/GLM | OpenGL Mathematics (GLM) |
| recp/cglm | OpenGL/Graphics Math (GLM) optimizado para C |
| Google/Mathfu | La biblioteca de matemáticas C ++ se desarrolló principalmente para juegos centrados en la simplicidad y la eficiencia. |
| Ferreiradaselva/Mathc | Pure C Math Library para programación 2D y 3D |
| demianmnave/cml | La biblioteca de matemáticas configurable http://cmldev.net |
| sce_vectormath | Biblioteca de matemáticas vectoriales |
| Imath | Imath |
| Mate hecho a mano | Una simple biblioteca de matemáticas para juegos y gráficos por computadora. |
| felelva/Mathc | Pure C Math Library para programación 2D y 3D. |
| Px4/eigen | Eigen es una biblioteca de plantilla C ++ para álgebra lineal: matrices, vectores, solucionadores numéricos y algoritmos relacionados. http://eigen.tuxfamily.org/ |
| libra/incendio | Blaze es una biblioteca de matemáticas C ++ de alto rendimiento y de alto rendimiento para aritmética densa y escasa. |
| sgorsten/linalg | Linalg.h es una biblioteca de álgebra lineal de dominio público de encabezado único para C ++ 11 |
Ventanas/entradas
| Lib | Título |
|---|
| Sdl | Capa directa simple |
| SFML | Biblioteca multimedia simple y rápida |
| GLFW | Una biblioteca multiplataforma |
| ganancia | Biblioteca de entrada C ++ para juegos |
| wgois/ois | Sistema de entrada orientado a objetos https://wgois.github.io/ois/ |
| Ziacko/Tinywindow | Una biblioteca de ventanas OpenGL de una plataforma cruzada (Linux y Windows) en un solo encabezado |
| Nyorain/NY | Abstracción moderna de la ventana multiplataforma C ++ |
Enhebrado
| Lib | Título |
|---|
| Rhoot/SC | Biblioteca de co-rutina de plataforma cruzada expuesta a través de una API C mínima |
| desboost.context | Versión "DEBOOSTIFICADA" de BOOST.Context (Coroutinas), API C simple y simple para el cambio de contexto. Fácil construcción en múltiples plataformas. |
| SergeMakeev/Taskscheduler | Experimentos de programador de tareas múltiples |
| dougbinks/enkits | Programador de tareas múltiples C ++ y C |
| Freeeaky/fibra-system | Sistema de trabajo multiproceso que usa fibras |
| Richiesams/FiberTaskingLib | Una biblioteca para habilitar el subproceso basado en tareas. Permite la ejecución de gráficos de tareas con dependencias arbitrarias. |
| Jodithetigger/costura | Sistema de trabajo basado en fibra multiplataforma de API pequeña COMA PEQUEÑA |
| Pithikos/C-Pool | Un grupo de hilos mínimo pero poderoso en Ansi C |
| mBRossard/Threadpool | Una simple implementación de grupo de subprocesos en C |
| tinycthread/tinycthread | Implementación pequeña y portátil de la API de hilos C11 |
| yohhoy/hilo | C11 <hifts.h> biblioteca de emulación |
Asignadores de memoria
| Lib | Título |
|---|
| Mtrebi/Memory-Alocators | Asignadores de memoria personalizados en C ++ para mejorar el rendimiento de la asignación de memoria dinámica |
| foonathan/memoria | Biblioteca de asignación de memoria C ++ compatible con STL utilizando un nuevo concepto RawAlLocator que es similar a un asignador pero más fácil de usar y escribir. http://foonathan.net/doc/memory |
| SergeMakeev/Smmalloc | Asignador de memoria rápida y ardiente diseñado para videojuegos |
| plasma-umass/malla | Un asignador de memoria que reduce automáticamente la huella de memoria de las aplicaciones C/C ++. |
| rampantpixels/rpmalloc | Public Domain Cross Platform Bloqueo Free Presh en caché de 32 bytes Asignator de memoria alineado con implementación en C |
| Microsoft/Mimalloc | Asignador de propósito general con excelentes características de rendimiento. |
Simd
| Lib | Título |
|---|
| P12Tic/Libsimdpp | Biblioteca SIMD de bajo nivel de nivel cero de solo encabezado portátil |
| VCDEVEL/VC | Clases de vector SIMD para C ++ |
| Nemequ/Simde | Implementaciones de conjuntos de instrucciones SIMD para sistemas que no los admiten de forma nativa. |
| Xtensor-stack/xsimd | Envolturas C ++ para intrínsecos SIMD y funciones matemáticas optimizadas paralelizadas (SSE, AVX, Neon, AVX512) |
Depuración
| Lib | Título |
|---|
| rxi/log.c | Una biblioteca de registro simple implementada en C99 |
| spdlog | Biblioteca de registro rápida de C ++. |
| Easy_profiler | Biblioteca de perfilador liviano para C ++ |
| crosire/parpadeo | Una herramienta que le permite editar el código fuente de cualquier proyecto de Windows C ++ en vivo en tiempo de ejecución |
| ddovod/jet-live | El código caliente C ++ recarga para Linux y MacOS |
| Rrze-hpc/likwid | Monitoreo de rendimiento y suite de evaluación comparativa |
Sistema de complemento/reflexión
| Lib | Título |
|---|
| hongos/cr | CR.H: Una simple biblioteca de encabezado de recarga de Hot Hot Hot |
| Manu343726/ctti | Compilar información de tiempo para C ++ |
Publicación por entregas
| Lib | Título |
|---|
| FelixGuendling/Cista | Serialización y reflexión simple de C ++. https://cista.rocks |
| msgpack/msgpack-c | Implementación de MessagePack para C y C ++ |
| sheredom/json.h | JSON PARSER para C y C ++ |
Componentes del motor
Representación
| Lib | Título |
|---|
| bkaradzic/bgfx | Crossplatform, gráficos API Agnóstico, "Traiga su propio motor/marco" Biblioteca de renderizado de estilo. |
| Floooh/Sokol | encabezados C multiplataforma mínimo C |
| Diligentgraphics/DiligentEngine | Una moderna biblioteca de gráficos 3D de bajo nivel multiplataforma que admite Direct3D11, Direct3D12, OpenGL/GLES, Vulkan y Metal |
| Kode/Kore | Abstracción moderna de biblioteca de juegos de bajo nivel |
| Google/Filamento | El filamento es un motor de renderizado en tiempo real para Android, Windows, Linux y MacOS |
| FNA-XNA/FNA3D | Biblioteca de gráficos 3D para FNA |
| grz0zrg/fbg | Biblioteca agnóstica de API de gráficos C 2D livianos con soporte de paralelismo |
| cofenberg/desenfrenado | Implementación de renderizador unificado ("un r imp") |
| doitsujin/dxvk | Implementación D3D11 y D3D10 con sede en Vulkan para Linux / Wine |
| PPLUX/PX | Bibliotecas C ++ de encabezado único para programación de hilos, representación |
| Intel/FastUidraw | Biblioteca que proporciona una interfaz de lienzo de mayor rendimiento |
| V-EZ | V-EZ es un envoltorio de código abierto, multiplataforma (Windows y Linux) destinado a aliviar la complejidad inherente y la responsabilidad de la aplicación de usar la API Vulkan. |
| ssloy/tinyyrenderer | Un breve curso de gráficos / renderizado de computadora |
| NiceByte/NiceGraf | Una capa de abstracción para API gráficas específicas de plataforma de bajo nivel. |
| DR-SOFT/GLBIND | Single File OpenGL API Loader. |
| DR-SOFT/VKBIND | Single File Vulkan API Carger. |
| Lukasbanana/LLGL | Biblioteca de gráficos de bajo nivel (LLGL) es una capa de abstracción delgada para las API de gráficos modernas OpenGL, Direct3D, Vulkan y Metal |
| zauonlok/renderizador | Un renderizador de software basado en sombreador escrito desde cero en C89 |
| Zeux/Niagara | Un renderizador de Vulkan escrito desde cero en la corriente |
Audio
| Lib | Título |
|---|
| de color abierto | Implementación de software de la API de audio 3D Openal |
| FNA-XNA/FAUDIO | Faudio: reimplementación de Xaudio centrada en la precisión para plataformas abiertas |
| soloud | Motor de audio portátil gratuito, fácil y portátil para juegos |
| Barerose/Atomix | Biblioteca de mezcla de sonido atómico portátil, de un solo archivo y sin espera que utiliza la mezcla acelerada por SSE |
| DR-SOFT/MINIAUDIO | Biblioteca de reproducción de audio y captura de un solo archivo |
| portudio | Portaudio es una biblioteca gratuita, multiplataforma, de código abierto, de audio de E/S |
| resonancia-audio | Audio espacial de alta fidelidad a escala. |
Networking
| Lib | Título |
|---|
| librg | Biblioteca de redes de juegos puros C99 |
| bkaradzic/bnet | Biblioteca de redes orientadas a mensajes usando TCP Transport |
| zeromq/libzmq | Motor de núcleo Zeromq en C ++, implementa ZMTP/3.1 http://www.zeromq.org |
| rxi/díada | Redes asíncronas para c |
| Lsalzman/Enet | Biblioteca de redes UDP confiable en ENET |
| Jarikomppa/IPC | Dominio público, plataforma cruzada, primitivas de comunicación entre procesos de encabezado único. Esta es una biblioteca C/C ++ de encabezado de dominio público "como" que proporciona funcionalidad de comunicación entre procesos, lanzados bajo Unicense. |
| Válvula de staveoftware/trabajo de trabajo de gamenet | Mensajes confiables y poco confiables a través de UDP. Fragmentación y reensamblaje de mensajes robustos. Cifrado. |
| jeremycw/httpserver.h | Biblioteca de encabezado único para escribir servidores HTTP no bloqueados en C |
Scripting
| Lib | Título |
|---|
| svaarala/duktape | DUKTAPE - Motor JavaScript integrable con un enfoque en la portabilidad y la huella compacta |
| Gaijinentertainment/dascript | Dascript: lenguaje de secuencia de comandos con escrips de alto rendimiento con estática https://dascript.org |
Ui
| Lib | Título |
|---|
| Ocornut/imgui | Estimado IMGUI: Interfaz de usuario gráfico de modo inmediato sin hinchazón para C ++ con dependencias mínimas |
| vurtún/nuklear | Una biblioteca de GUI de un solo cabeza de cabeza |
| Andlabs/Libui | Biblioteca de GUI simple y portátil (pero no inflexible) en C que utiliza las tecnologías GUI nativas de cada plataforma que admite |
| rxi/microui | Pequeña biblioteca de interfaz de usuario de modo inmediato |
| julianeisel/bwidgets | Kit de herramientas de widget de interfaz de usuario básico diseñado para licuador |
| idea4good/guilite | El marco de interfaz de usuario más pequeño para todas las plataformas y Docker - Código de líneas de 5k |
| Littlevgl/lvgl | Biblioteca gráfica para crear una GUI integrada con elementos gráficos fáciles de usar |
| wjakob/nanogui | Biblioteca de GUI minimalista para OpenGL |
| Randrew/Diseño | Biblioteca de un solo archivo para calcular diseños de UI 2D usando cajas de apilamiento. Se compila como C99 o C ++. |
| mikke89/rmlui | Paquete de interfaz de usuario C ++ basado en los estándares HTML y CSS |
ECS
| Lib | Título |
|---|
| skypjack/entt | Un sistema de componentes (ECS) de entidad rápido y confiable y mucho más |
| Redxdev/ECS | Biblioteca de sistemas de componentes de entidad de un solo cabezazo C ++ |
| Alectthomas/Entityx | EntityX: un sistema de componente de entidad C ++ rápido y seguro |
| Discoloda/Diana | Sistema de componentes de entidad como Artemis implementado en C |
| Sandermertens/reflecs | Sistema de componentes de entidad multiproceso escrito en C99 |
Animación / escenagraph
| Lib | Título |
|---|
| Buserror/libc3 | Biblioteca de gráficos livianos de la escena C |
| Guillaumeblanc/ozz-animación | Biblioteca de animación esquelética C ++ de código abierto y conjunto de herramientas |
| Google/motivo | Un sistema de animación multiplataforma, eficiente y actuintante escrito en C ++ |
Física
| Lib | Título |
|---|
| NvidiaGameWorks/Physx | Nvidia Physx SDK 4 |
| Baletfísica/Bullet3 | Bullet Physics SDK: detección de colisiones en tiempo real y simulación de múltiples físicas para realidad virtual, juegos, efectos visuales, robótica, aprendizaje automático, etc. |
| Chriscamacho/Bulletcapi | C API para física bala |
| Madepps/Newton-Dynamics | Newton Dynamics es una solución integrada para la simulación en tiempo real de entornos físicos. http://www.newtondynamics.com |
| Erincatto/Box2d | Box2d es un motor de física 2D para juegos http://box2d.org |
| Ardiente | Una biblioteca de física de juego 2D rápida y liviana. |
| GJK.C | Algoritmo de detección de colisión Gilbert-Johnson-Keerthi (GJK) |
| phyx | Motor de física 2D con optimizaciones SOA/SIMD |
| Playrho | Motor de física orientado en tiempo real y biblioteca que actualmente es más adecuada para juegos 2D |
| PositionBasedDynamics | PositionBasedDynamics es una biblioteca para la simulación basada física de cuerpos rígidos, sólidos y fluidos deformables |
| empujar | Una pequeña biblioteca de física de cuerpo rígido orientado a datos y optimizado por SIMD. |
| Partícula | Implementaciones de CPU y GPU de una física basada en partículas |
Ratina
| Lib | Título |
|---|
| JPS | Búsqueda de puntos de salto, dominio público, single .h (súper rápido Pathfinding en cuadrículas uniformes) |
| astar-algoritm-cpp | Implementaciones del algoritmo A* en C ++ y C# |
| Micropos | A* solucionador (Astar o A-Star) escrito en la plataforma Independent C ++ |
| refrescos | Juego de herramientas de malla de navegación para juegos |
Base de datos
| Lib | Título |
|---|
| Symisc/Unqlite | Un motor de base de datos transaccional, un motor de base de datos transaccional |
| fnc12/sqlite_orm | SQLITE ORM Light Header solo biblioteca para C ++ moderno |
Gestión de activos
Malla/geometría
Tratamiento
| Lib | Título |
|---|
| libigl | Biblioteca simple de procesamiento de geometría C ++ |
| Mathgeolib | Biblioteca para la manipulación de álgebra lineal y geometría para gráficos por computadora |
| sseculling | Sse frustum sacrificando la demostración |
| Cullminator9000 | El sacrificio más rápido de la historia |
| Seakaredecimater | Simplificación de malla con el límite de UV conservado |
| Zeux/Meshoptimizer | Biblioteca de optimización de malla que hace que las mallas indexadas sean más amigables con GPU |
| Google/Draco | Draco es una biblioteca para comprimir y descomprimir mallas geométricas 3D y nubes de puntos. Está destinado a mejorar el almacenamiento y la transmisión de gráficos 3D. |
Importadores/exportadores
| Lib | Título |
|---|
| asignación | Repositorio oficial de la biblioteca de importación de activos abiertos. Carga más de 40 formatos de archivo 3D en una estructura de datos unificada y limpia |
| nem0/openfbx | Importador FBX de código abierto ligero |
| syoyo/tinyobjloader | Pequeño pero potente cargador de onda de onda de un solo archivo de un solo archivo |
| syoyo/tinygltf | Encabezado solo C ++ Tiny GLTF 2.0 Cargador. |
| jkuhlmann/cgltf | Parser GLTF 2.0 de un solo archivo escrito en C99 |
| Microsoft/GLTF-SDK | GLTF-SDK es un kit de desarrollo de software C ++ para GLTF |
| FacebookIncubator/FBX2GLTF | Una herramienta de línea de comandos para la conversión de activos del modelo 3D en el formato de archivo FBX en el formato de archivo GLTF. |
Horneado/embalaje de textura
| Lib | Título |
|---|
| Binomialllc/base_universal | Base el códec de textura de GPU universal |
| caosdoar/fornos | Herramienta de horno de textura de GPU. Una herramienta rápida y simple para hornear sus detalles de malla de alto poli a las texturas. |
| Kmkolasinski/AwesomeBump | AwesomeBump genera texturas de oclusión normales, de altura, especulares o ambientales a partir de una sola imagen |
| dariomanesku/cmft | Herramienta de filtrado CUBEMAP de línea de comandos de código abierto |
| Paquete de textura | Herramienta de embalaje en 2D de alta eficiencia y rápida |
| thekla_atlas | Herramienta de generación de Atlas |
| libvips | Una biblioteca de procesamiento de imágenes rápidas con necesidades de memoria baja |
Marcos
| Lib | Título |
|---|
| GameFoundry/BSF | Biblioteca Modern C ++ 14 para el desarrollo de aplicaciones gráficas en tiempo real https://www.bsframework.io |
| raylib | Una biblioteca simple y fácil de usar para disfrutar de los videojuegos programando http://www.raylib.com |
| Floooh/Oryol | Un marco de codificación C ++ 3D pequeño, portátil y extensible |
| Confetifx/forge | El Forge Crossplatform Rendering Framework PC, Linux, Ray Tracing, MacOS / iOS, Android, Xbox, PS4 |
| mosra/magnum | C ++ 11/C ++ 14 liviano y modular Middleware gráfico para juegos y visualización de datos |