| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A collection of useful libraries and tools for game development. The table below highlights each library with its (source and/or API) language and license. Following is a full library listing with brief descriptions and links to downloads and documentation.
The greater part of these libraries are free open-source (FOSS) with various licenses including zlib, BSD, MIT, and GPL; a few have proprietary licenses but are free to use; and at least one (actually a collection in its own right) has been released into the public domain.
I began putting this together for my own use, to have a central repository of useful libraries (similar to AwesomeC++, among others) from which to choose rather than continually hunting down each one “in the wild.” I also added most of the libraries as submodules in order to install/update the whole collection with just a few commands: git submodule update --init clones all submodules; git submodule foreach git pull updates them to the latest upstream commit.
The libraries in this list were primarily selected for their usefulness in game development, but many are applicable to other types of projects as well.
The source links below reference (where possible) the official/primary source repository for each project, many of which are on GitHub. Additionally, if a project has a mirror on GitHub (or elsewhere for projects whose primary source is GitHub) – even an unofficial one, as long as it is kept reasonably up-to-date – that is also listed.
If you notice an error in the list (wrong language, license, link) or think something needs a new or different category, create an issue or pull request. Likewise, if you know of a library that would fit well on this list – C/C++ API, useful in “multimedia” applications, preferably free and open-source – and you don't see it here, create an issue and I'll check it out. (I'd prefer not to use pull requests for this.)
| Group | Library | Language | License | |||
|---|---|---|---|---|---|---|
| Base Libraries | SDL2 | C | ![]() |
![]() |
zlib | |
| SFML | C++ | ![]() |
zlib | |||
| GLFW | C | ![]() |
zlib | |||
| Graphics | OpenGL | C | API only | |||
| GLAD | C/C++ | ![]() |
MIT | |||
| GLEW | C | ![]() |
BSD | |||
| GLLoadGen | C/C++ | ![]() |
MIT | |||
| Audio | FMOD Studio | C++ | Prop. | |||
| OpenAL | C | API only | ||||
| OpenAL-Soft | C | ![]() |
LGPL | |||
| Lyd | C | ![]() |
ISC | |||
| Physics | Box2D | C++ | ![]() |
![]() |
zlib | |
| Bullet | C++ | ![]() |
![]() |
zlib | ||
| Chipmunk2D | C | ![]() |
MIT | |||
| Math | GLM | C++ | ![]() |
MIT | ||
| Graphene | C | ![]() |
MIT | |||
| Serialization | Jansson | C | ![]() |
MIT | ||
| MessagePack | C | ![]() |
Boost | |||
| TinyXML2 | C++ | ![]() |
zlib | |||
| YAML | C | ![]() |
MIT | |||
| Scripting | Lua | C | ![]() |
MIT | ||
| LuaJIT | C | ![]() |
MIT | |||
| MoonScript | Lua | ![]() |
MIT | |||
| Python | C | ![]() |
PSF | |||
| Ruby | C | ![]() |
BSD | |||
| mruby | C | ![]() |
MIT | |||
| Squirrel | C++ | ![]() |
MIT | |||
| Networking | cURL | C | ![]() |
MIT | ||
| ENet | C | ![]() |
![]() |
MIT | ||
| AI | FANN | C | ![]() |
LGPL | ||
| MicroPather | C++ | ![]() |
zlib | |||
| Miscellaneous | Catch | C++ | Boost | |||
| Discount | C | ![]() |
BSD | |||
| ImGui | C++ | MIT | ||||
| Open Steamworks | C++ | ![]() |
Other | |||
| PhysicsFS | C | ![]() |
zlib | |||
| STB Nothings | C | ![]() |
- | |||
| Steamworks | C++ | Prop. | ||||
| TTVFS | C++ | ![]() |
MIT | |||
| Tools | CMake | C++ | ![]() |
BSD | ||
| Ninja | C++ | Apache | ||||
| Premake | Lua | ![]() |
![]() |
BSD | ||
| SCons | Python | ![]() |
MIT |
Input and event handling, windowing, graphics context handling, and sometimes include other common services such as graphics, audio, and resource management.
2D graphics (software or hardware-accelerated); OpenGL support if requested; basic audio playback; basic I/O support. Additional features can be added through a selection of support libraries.
2D graphics (through OpenGL); buffered and streaming audio playback; support for loading various image, font, and audio file formats.
Lightweight base library that provides a minimum of extra features.
Render visuals to an on-screen or off-screen surface, including support libraries for using such functionality.
API for accelerated 2D and 3D graphics.
Detects and enables OpenGL extensions in a client application.
Detects and enables OpenGL extensions in a client application.
Detects and enables OpenGL extensions in a client application.
Render sound effects and music to an audio device, including support libraries for using such functionality.
API for high-level audio management and playback.
API for advanced 3D audio.
Free, open-source software implementation of OpenAL.
Realtime audio-synthesis engine.
Simulate 2D and 3D dynamic physics. Usually geared toward performance over precision, but may also be tunable.
2D physics engine.
3D physics engine.
2D physics engine.
Provide extra mathematical functions above the standard library, especially vector-matrix math (linear algebra) since it's useful for graphics.
C++ library of vector and matrix math functions, designed to comply with GLSL types and functions (but does not require OpenGL).
C library of vector and matrix math functions.
Convert application data to and from a portable representation (usually text).
Library for JSON serialization.
Library for compact binary object serialization.
Library for XML serialization.
Library for YAML serialization.
Enable scripting (by e.g. end users, non-programmers) to modify and extend a program without recompiling, whether during testing to reduce development cycle time, or after deployment to reduce the size of updates (often only a single script needs to be updated, not the entire application).
Simple but expressive high-level scripting language, designed for embedding.
Lua implementation with faster VM and JIT-compiler for even more performance.
Ruby-like language that “compiles” to Lua. (Requires Lua.)
Powerful, widely-used scripting language with extensive library support.
Concise yet powerful scripting language “with a focus on simplicity”.
Embeddable standard-compliant version of Ruby.
Sort of a mash-up of C++ and Lua.
Send and receive data over the internet (or local network) for features like DLC, UGC, and multiplayer.
Library (and tool) for transparent access to internet resources.
Reliable UDP network protocol.
Give enemies, NPCs, player units, etc. the ability to “think” for themselves.
Fast Automatic Neural Networks, useful for developing and training AIs.
Generic A* solver for pathfinding.
Header-only C++ unit test library.
Markdown parser with HTML renderer.
Light-weight immediate mode GUI.
Reverse-engineered Steamworks API library.
Virtual filesystem with write-isolation.
Collection of various helpful tools for loading images and fonts, generating Perlin noise, and more.
API for integration with Steam platform.
Virtual filesystem in C++.
Useful development tools, especially build tools right now.
Powerful build script generator.
Ultra-fast low-level build tool.
Build script generator based on Lua. (Includes Lua.)
Fully-integrated build system based on Python. (Requires Python.)
| Back | FazBrowse Home | New Git URL |