Libraries
From GPWiki
Libraries are split into the following categories:
Contents |
AI
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| ABKit | C++ | |
Open Source (GPL) |
| AI.implant | Commercial. | ||
| AI Loom | C++ | Open Source (LGPL). Website not working as of 4th December 2005. Last updated 2003. | |
| DirectAI | |
Redirects to the source code for an AI textbook. | |
| FEAR | C++, Python, Scheme | |
GPL, Other/Proprietary License |
| GAlib | |||
| Louder Than A Bomb | |||
| LPA | |||
| Memetic AI | |||
| OpenAI | Java & C++ | BSD License. Last updated 2003. | |
| OpenSkyNet | |||
| Renderware AI | |||
| SPADES | |||
| GAUL: Genetic Algorithm Utility Library. | C++ | |
Open Source (GPL) |
| AINN | C++ | ||
| Recast Navigation | C++ | Any | MIT License |
Audio
[edit]
| Name | Language | Platform | Description | Modes | File Format | License |
|---|---|---|---|---|---|---|
| Audiere | C++ | Cross-Platform | Audiere is a high-level audio API. It can play Ogg Vorbis, MP3, FLAC, uncompressed WAV, AIFF, MOD, S3M, XM, and IT files. For audio output, Audiere supports DirectSound or WinMM in Windows, OSS on Linux and Cygwin, and SGI AL on IRIX. | 2D | MP3, OGG, WAV, FLAC, MODs* | LGPL |
| BASS | C | Cross-Platform | Commercial, HGE uses it as a freeware audio library, but licence requires you to purchase BASS for commercial projects. | 3D, 2D | MP3, OGG, WAV, AIFF, MODs* | Proprietary (€125-€2750), free for non-commercial use |
| Dumb | C | Cross-Platform | Freeware module player library | 2D | IT, XM, S3M and MOD, OGG <-- Via Extension | DUMB license |
| FMod | C, C++, C# | |
Commercial system with broad platform support. | 2D, 3D | MP3, OGG, WAV, AIFF, MODs, WMA* | Proprietary, $1000-$4000 per project; free for non-commercial use |
| Hekkus SoundSystem | C, C++ | |
A small and fast sound engine for WinCE/Win32/Symbian/PSP/GP2X and .NET, especially designed for games. | 2D, 3D | Wav (+ ADPCM compressed), OGG. | Donationware |
| irrKlang | C++, C# | Cross-Platform | Free 2D and 3D audio library | 3D, 2D | MP3, OGG, WAV, MODs * | Proprietary, €65-€490; free for non-commercial use. |
| libMikMod | C, C++, Java | |
An open-source module player and library supporting many formats. | 2D | 669, AMF, APUN, DSM, FAR, GDM, IT, IMF, MOD, MED, MTM, OKT, S3M, STM, STX, ULT, UNI, XM. | LGPL |
| OpenAL | C | |
2D, 3D | Wav, OGG, MP3 <-- Via Extension AL_EXT_MP3 | LGPL | |
| PortAudio | C, C++ | Cross-Platform | Free audio library | 2D | None (real-time streams only) | MIT-compatile |
| SDL | C | Cross-Platform | Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. Primarily handles wav files for sound. For support of other audio formats another sound library is needed. | 2D | Wav | LGPL (<=1.2), zlib (1.3 and above) |
| SDL_mixer | C | Cross-Platform | SDL_mixer is an extension library to SDL that provides the ability to play multiple sound files and music simultaneously. It supports many different audio formats and provides interfaces to easily load them. Being an extension to SDL, it is simple, portable, and available under the GNU LGPL. | 2D | WAV, AIFF, RIFF, OGG, VOC | LGPL |
| TempAu | C++ | Cross-Platform | Free audio library. Based on PortAudio, adds file I/O via libmpg123 and linsndfile. | 2D | Various (as per mpg123 and libsndfile) | Apache 2.0 |
Character Animation
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Cal3D | C/C++ | Cross-Platform??? | Cal3D is a skeletal based 3D character animation library written in C++ in a platform-/graphic API-independent way. |
| EMotionFX | C/C++ | |
EMotion FX is a realtime character animation system designed to be plugged into any 3D engine, game or any other product.
EMotion FX supports next generation multi-core, multithreaded consoles and PC as well as single threaded environments. |
Compression
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| BCL | C | |
The Basic Compression Library is a set of open source implementations of several well known lossless compression algorithms.
Currently, RLE (Run Length Encoding), Huffman, Rice, Lempel-Ziv(LZ77) and Shannon-Fano compression algorithms are implemented. |
| bzip2 | C, Python | Cross-Platform | Good compression, BSD |
| PhysFS aka Physics FS | C, C++ | Cross-Platform | Supports multiple compression formats ( zip, doom wad, quake pak, 7z, +others ), specificly designed for games, Small and easy to embed, ZLIB Licence |
| gzip | C, C++, Python | Cross-Platform | Command line tool for zlib compression, Fast compression, BSD |
| fastLZ | C | Cross-Platform | Very Fast decompression (in place), MIT License |
| lzf | C | Cross-Platform | Very fast, Very small, BSD |
| LZMA | C, C++, C#, Java | Cross-Platform | The one that 7-zip uses, Good and fast, public domain |
| lzo | C, Perl, Python, Java | Cross-Platform | Very fast decompression, Small memory footprint, GPL/commercial license |
| unrarlib | C | Cross-Platform | Good compression (RAR2), GPL/custom license |
| zlib | C, Python | Cross-Platform | Fast compression, BSD |
GUI
[edit]
| Name | Language | Platform | Description | License |
|---|---|---|---|---|
| alguichan | C++ | |
alguichan is a spin-off of guichan. It is a portable C++ GUI library designed for games using Allegro 5.*, or Allegro 4.4 and/or OpenGL | BSD license |
| Agar | C/C++ | |
Agar is a modern open-source, cross-platform toolkit for graphical applications implemented in C, C++, Perl and Ada. Unlike most other GUI toolkits, Agar takes maximum advantage of hardware graphics acceleration when it is available via OpenGL, but it also supports traditional framebuffer interfaces such as SDL direct video. The Agar API is entirely thread-safe when Agar is compiled with optional threads support. | BSD license |
| AntTweakBar | C/C++ | |
AntTweakBar allows programmers to quickly add a light and intuitive graphical user interface into graphic programs to interactively tweak them. It is a small and easy to use library that can be readily integrated into OpenGL and DirectX applications. | zlib/libpng license |
| Crazy Eddie's GUI System | C++ | |
Crazy Eddie's GUI System is a free library providing windowing and widgets for graphics APIs / engines where such functionality is not natively available, or severely lacking. The library is object orientated, written in C++, and targeted at games developers who should be spending their time creating great games, not building GUI sub-systems! | LGPL, MIT |
| Gideros Studio | Lua | |
Gideros Studio helps users develop games, ebooks and apps for iPhone, iPad and Android efficiently, writing once and running on many platforms. | Commercial |
| GTK+ | C | |
A robust, mature, cross-platform GUI toolkit used by the GNOME desktop environment. | LGPL |
| gtkmm | C++ | Same as GTK+ above | A very nice C++ wrapper for GTK+ | LGPL |
| Guichan GUI | C++ | |
Guichan is a portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL | BSD license |
| OpenGUI | C++ | |
Extendable widget based GUI framework for 3D applications. Works with any graphics API or render engine. Comes with reference implementations for OpenGL and the Ogre rendering engine. Library is written in C++, aimed at game developers. | BSD license |
| Qt cross-platform development library | C++ | |
A robust, intuitive, theme-able, multi-platform GUI library, that also includes an extensive set of non-GUI tools, such as XML parsing. As of version 4.4, is now able to render transparent widgets on top of an OpenGL surface. This is the GUI toolkit behind the K Desktop Environment. | LGPL, GPG and Qt Commercial license |
| Tk | TCL, Perl, Python, Ruby, others | |
A non-native (Motif-look) toolkit coupled closely with Tcl | BSD-style license |
| wxWidgets Crossplatform GUI libary | C++, Python, Perl, C#/.NET | |
wxWidgets gives you a single, easy-to-use API for writing GUI applications on multiple platforms that still utilize the native platform's controls and utilities. | wxWindows license (the LGPL with an exception to the distribution of binary form) |
General Multipurpose Libraries
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Allegro | C/C++ | |
Allegro is a game programming library for C/C++ developers distributed freely. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI. |
| Amaltheia | C/C++ | |
Amaltheia is a cross-platform game programming API that supports two backends, OpenGL and DirectX. The aim of the Amaltheia project is to create an intuitive and simple to use library, providing core 3d and 2d functionality in a platform independent manner. It also provides platform independence regarding basic network functions, input handling, threads and sound. Currently the GNU/Linux and the Windows OSes are supported.
Amaltheia library has the advantage of using the native graphics system (DirectX under Windows, OpenGL under Linux), thus achieving maximum performance. Developers using Amaltheia dont need to take care of the underlying details (be it Win32 or Linux). Amaltheia hides the differences through its API. The developer writes a unique code for the games/application that compiles and executes in both OSes. |
| ClanLib | C++ | |
ClanLib is a cross platform C++ toolkit library. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although not limited for that usage only. Very liberal BSD style license, OpenGL 3, OpenGL 1 and SSE Software Rendering, High-performant shader based render architecture, Full GUI framework customizable using CSS, High level 2D graphics with fonts, sprites, animations, collisions, Network library with sockets, web, irc and game interfaces, Database supporting SQLite, Sound supporting wav, tracker formats and ogg-vorbis, Integrated resource management. |
| Cinder | C++ | |
Cinder is a community-developed, free and open source library for professional-quality creative coding in C++. |
| DirectFB | |||
| DirectX | C/C++ & .NET | ||
| G3D | |
Free library for managing graphics, networking, model loading, and basic 3D support code for games in C++. | |
| GLFW | C, Python | OpenGL Windowing framework with high-resolution timers, TGA loader, optional callback input routines | |
| JGT | Java | Multiplatform | Focuses on higher-level primitives for writing games in Java. LGPL license |
| Kyra | C/C++ | ||
| LWJGL | Java | Multiplatform | Lightweight Java Game Library. Easy access to OpenGL, OpenAL, and input devices such as gamepads. BSD license. |
| Mootools | JavaScript | Any platform that runs IE6/7, Safari or Firefox | MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API. |
| NeL | |||
| OGLWFW | C++ | |
OpenGL Window Framework. Window framework for OpenGL supports multiple windows, querying display modes, zlib license |
| Panda3D | C/C++/Python | |
Fantatsic 3D game SDK with fantastic documentation. See Official Site. Some great tutorials: mgf |
| Prototype | JavaScript | Any platform that rus IE6/7, Safari or Firefox | Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. |
| Pygame | Python | Everywhere SDL runs. | Basically a Python-wrapped SDL. Plus some assorted features. |
| pyglet | Python | |
Similar feature set to PyGame but faster and with no dependencies |
| SDL | C/C++ | ||
| SFML | C/C++/Python/Ruby/D/.NET | |
SFML - the Simple Fast Media Library - is a cross platform and liberally licensed (zlib/libpng) multimedia library providing support for 2D graphics, 2D & 3D audio, input, windowing and networking it a single package. It is an object oriented C++ library, but there exist bindings for C, D, .NET, Ruby and Python. |
| Tao Framework | .NET / Mono | |
Mono / .NET bindings for several APIs and libraries, including OpenGL, OpenAL, Lua, SDL, GLFW, FreeGLUT, PhysicsFS, ODE, Cg, DevIL, and the Windows API. |
| TEKlib |
Graphics
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Allegro | C/C++ | |
Cross platform games programming library. |
| DirectX | C/C++/.NET/VB | |
The Direct3D and DirectDraw components of DirectX are used for 3D and 2D rendering in most Windows platform games. |
| Gorgon | C#/.NET | |
A 2D graphics library for .NET that uses Direct 3D (via SlimDX) for hardware acceleration. It includes standard 2D graphics functionality, a virtual file system, pixel/vertex shader support and tools for content management/creation. |
| Irrlicht | C/C++/.NET | |
The Irrlicht Engine is an open source high performance realtime 3D engine written and usable in C++ and also available for .NET languages. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines. |
| OpenGL | C, but bindings exist for most languages | |
A low-level 3D graphics library. Most other 3D libraries use either this or DirectX to do their actual rendering. |
| SDL | C, but bindings exist for most languages | |
SDL (Simple DirectMedia Library) is a cross platform library designed for simple 2D graphics. It also provides basic input and sound functions and is able to use OpenGL for 3D rendering. |
| SlimDX | C#/.NET | |
An open source alternative to the now unsupported Managed DirectX. SlimDX surpasses Managed DirectX in that it is written using .NET 2.0, and includes support for newer APIs like XAudio and DirectX 10. |
| OGRE | C++/.NET | |
An open source 3D rendering engine. Capable of using DirectX or OpenGL. |
| Beta Cell | C# | |
A free computer graphics toolkit capable of composing effects at runtime with
lots of documentation |
| Open Scene Graph | C++ | |
An open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. |
| Horde3D | C++ with C like interface | |
A lightweight and powerful open source 3D shader based rendering engine for OpenGL. |
Image
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Anti-Grain Geometry (AGG) | C++ | Platform independent | Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, written in industrially standard C++. AGG doesn't depend on any graphic API or technology. Basically, you can think of AGG as of a rendering engine that produces pixel images in memory from some vectorial data. |
| corona | C++ | Platform independent | Corona is an image input/output library that can read, write, and manipulate image files in just a few lines of code. It can write PNG and TGA files, and read PNG, JPEG, PCX, BMP, TGA, and GIF. Corona was designed to be easy to use, and exports a straightforward C++ API. |
| CxImage | C++ | Platform independent | A C++ class that can load, save, display, transform images in a very simple and fast way. Supports BMP, GIF, ICO, CUR, JBG, JPG, JPC, JP2, PCX, PGX, PNG, PNM, RAS, SKA, TGA, TIF, WBMP, WMF, RAW, CRW, NEF, CR2, DNG, ORF, ARW, ERF, 3FR, DCR, X3F, MEF, RAF, MRW, PEF, SR2. |
| DevIL | C++ | |
A cross-platform images API with OpenGL style syntax. Besides simple loading and saving it allows you to manipulate images using few built-in filters (e.g. gaussian blur). This library supports OpenGL, Allegro, Windows GDI and DirectX API. |
| FreeImage | Multiple | Platform independent | An Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. Available at freeimage.sourceforge.net |
| TGTL The Game Texture Loader | C++ | |
Not API specific; supports OpenGL, D3D and other software renders : Load BMP, TGA, PNG, JPG, DXTn compressed. ZLIB license. |
| J2K-Codec | |||
| Open JPEG | C | Platform independent | An open source JPEG 2000 codec. |
| ImageMagick | C | Platform independent | An image library that supports a wide array of functionality to manipulate images, including format conversions, transformation (resize, rotate, crop, flip, trim), animation, special effects and many others. |
| libjpeg | C | Platform independent | An open source JPEG library. |
| SDL_Image | C | Platform independent | SDL_Image loads images as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, XCF, XPM, XV. |
| libpng | C | Platform independent | Official PNG referebce library. |
| paintlib | C++ | - | Images can be loaded from BMP, GIF, IFF, JPEG, PCX, PGM, PICT, PNG, PSD, SGI, TGA, TIFF and WMF files and saved in BMP, JPEG, PNG and TIFF formats. |
| Simple OpenGL Image Library (SOIL) | C | |
tiny C library for OpenGL. Load: BMP, PNG, JPEG, TGA, DDS (DXT1/3/5), PSD, HDR. Save: TGA, BMP, DDS. |
| glpng | C | |
Supports OpenGL |
Miscellaneous
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Sharp3D.Math | |||
| Boost Libraries | C++ | |
a cross platform collection of libraries that extend the functionality of C++ |
| CEL | |||
| libnoise | |||
| J2ME (Java) | |||
| SDL_Config | |||
| OIS | C++ | |
a cross platform, simple solution for using all kinds of Input Devices |
Networking
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| APlay | C#, Flash, Unity, Java, Javascript | Any | Allows for building online/multiplayer applications without knowing or caring about networking. Object modelling with generated classes. Free license available |
| Boost.ASIO | C++ | Any | A Boost-integrated library with an elegant C++ interface for Asynchronous or Synchronous IO operations for sockets. Accepted to Boost, but not yet in the main distribution. |
| DemonWare | |||
| eNet | A wrapper over UDP allowing multiple reliable or unreliable streams through a single socket. | ||
| Grapple | C | |
A high level network layer designed to remove the hard work from making applications multiuser. Supports TCP and UDP. Includes lobby implementation. LGPL license. |
| libpkg | C | Any | BRL-CAD's libpkg Network Package Library, simple interface for synchronous or asynchronous network transport |
| KryoNet | Java | Any | KryoNet is a Java library that provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO. |
| HawkNL | |||
| OpenTNL | C++ | ||
| Quazal | |||
| SDL_net | |||
| RakNet | C++ | ||
| ReplicaNet | C++ | Any | Object replication, session management, lobby services, web based administration and logs. |
| Twisted | Python | Any | A highly recommended asynchronous networking framework for Python |
| Winsock | C, C++, C# | |
Winsock is a robust low level networking API, which is also very similar to UNIX BSD sockets. |
| Zig | |||
| Zoidcom |
Pathfinding
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| MicroPather | C++ | Platform independent | MicroPather is a path finder and A* solver (astar or a-star) that can be easily integrated into existing code. MicroPather focuses on being a path finding engine for video games but is a generic A* solver. |
| PATHEngine | C++ | |
A middleware tool-kit for the implementation of intelligent agent movement, built around an advanced implementation of points-of-visibility pathfinding on 3D ground surfaces. |
Physics
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| BRL-CAD Ray-Trace Library | C | Any | BRL-CAD geometry modeling kernel (librt) provides high-performance collision detection via ray-tracing (millions of rays/sec) |
| Havok | |||
| Bullet Physics Library | |||
| ODE | C/C++ | Any | ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools. |
| Newton Game Dynamics | |||
| Novodex | |||
| Tokamak | |||
| PhysX | |||
| Physics Abstraction Layer | C++ | Any | Abstraction system for physics engines. Supports PhysX, Bullet, ODE, Newton, Novodex, True Axis, Box2D, Jiglib. |
| True Axis | |||
| nV Physics | |||
| OPAL | |||
| Chipmunk Game Dynamics | C | Any | 2D physics engine |
| Box2D | C++ | Any | 2D physics engine |
Text Rendering
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| CBFG | C++ / Java | |
OpenGL bitmap font generator and renderer. |
| Freetype | C | |
True Type loading and decoding, used by most TTF renderers] |
| FTGL | |||
| glFont | |||
| GLFT_Font | C++ | |
Simple Text in OpenGL on any platform with Freetype and OpenGL. |
| GLTT | |||
| NFont | C/C++ | |
Simple and fully-featured bitmap font struct/class for SDL |
| SDL_TTF | |||
| Glyph Keeper | |||
| OGLFT | |||
| TTME | Java | J2ME | TTF library for J2ME |
XML
[edit]
| Name | Language | Platform | Description |
|---|---|---|---|
| Axl XML Library | C/C++ | |
An easy to use XML Library that supports XML 1.0 |
| C++ XML Parser | C++ | |
A small XML parser composed of a source and header file. |
| TinyXML | C++ | Platform independent | A simple, small, C++ XML parser that can be easily integrating into other programs. |
| Xerces-C++ | C++ | Platform independent | A validating XML parser written in a portable subset of C++. |