Libraries

From GPWiki
Revision as of 21:28, 10 August 2010 by Liam (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Libraries are split into the following categories:

AI

[edit]
Name Language Platform Description
ABKit C++ OSXOSXLinuxLinuxWindowsWindows Open Source (GPL)
AI.implant Commercial.
AI Loom C++ Open Source (LGPL). Website not working as of 4th December 2005. Last updated 2003.
DirectAI OSXOSXLinuxLinuxWindowsWindows Redirects to the source code for an AI textbook.
FEAR C++, Python, Scheme LinuxLinuxWindowsWindows 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++ LinuxLinux Open Source (GPL)
AINN C++

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# WindowsWindowsOSXOSXLinuxLinuxPlaystationPlaystationXBoxXBox 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++ WindowsWindows, Symbian, .NET 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 WindowsWindowsLinuxLinux 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 WindowsWindowsOSXOSXLinuxLinuxPlaystationPlaystationXBoxXBox 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 License Language Platform Description
Cal3D LGPL C/C++ Cross-Platform??? Cal3D is a skeletal based 3D character animation library written in C++ in a platform-/graphic API-independent way.
EMotionFX Commercial C/C++ WindowsWindowsOSXOSXLinuxLinuxPlaystationPlaystationXBoxXBox 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.

SmartBody LGPL C++ WindowsWindowsOSXOSXLinuxLinuxiOSiOSAndroidAndroid Character animation system with real-time adjustment and retargeting of animations. Requires an understanding of BML.

Compression

[edit]
Name Language Platform Description
BCL C WindowsWindows OSXOSX LinuxLinux 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++ WindowsWindows LinuxLinux OSXOSX 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++ WindowsWindows LinuxLinux OSXOSX 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++ WindowsWindows LinuxLinux 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
Awesomium C++, C#/.NET WindowsWindows LinuxLinux OSXOSX HTML UI for native apps. Free for non-commercial use Commercial
Crazy Eddie's GUI System C++ WindowsWindows LinuxLinux OSXOSX 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 WindowsWindows LinuxLinux OSXOSX 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 LinuxLinux WindowsWindows 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++ WindowsWindows LinuxLinux OSXOSX Guichan is a portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL BSD license
OpenGUI C++ WindowsWindows 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++ LinuxLinux OSXOSX WindowsWindows 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
Ruminate XNA 4.0 GUI XNA 4.0, MonoGame WindowsWindows LinuxLinux OSXOSX The Ruminate GUI is a GUI system that provides basic widgets that will be need for almost every project to prevent the community from having to reinvent the wheel continuously. MIT Licence
Tk TCL, Perl, Python, Ruby, others LinuxLinux WindowsWindows OSXOSX A non-native (Motif-look) toolkit coupled closely with Tcl BSD-style license
wxWidgets Crossplatform GUI libary C++, Python, Perl, C#/.NET LinuxLinux WindowsWindows OSXOSX 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++ LinuxLinux BSDBSD SolarisSolaris WindowsWindows BeOSBeOS OSXOSX 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++ LinuxLinux WindowsWindows 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++ LinuxLinux WindowsWindows 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++ WindowsWindows OSXOSX Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
DirectFB
DirectX C/C++ & .NET
G3D WindowsWindows OSXOSX LinuxLinux Free library for managing graphics, networking, model loading, and basic 3D support code for games in C++.
GLFW C, Python WindowsWindows LinuxLinux BSDBSD SolarisSolaris OSXOSX 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++ WindowsWindows OpenGL Window Framework. Window framework for OpenGL supports multiple windows, querying display modes, zlib license
Panda3D C/C++/Python OSXOSX WindowsWindows LinuxLinux 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 OSXOSX LinuxLinux WindowsWindows Similar feature set to PyGame but faster and with no dependencies
SDL C/C++
SFML C/C++/Python/Ruby/D/.NET OSXOSX WindowsWindows LinuxLinux 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 WindowsWindows LinuxLinux OSXOSX SolarisSolaris 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++ WindowsWindows LinuxLinux Cross platform games programming library.
DirectX C/C++/.NET/VB WindowsWindows XBoxXBox The Direct3D and DirectDraw components of DirectX are used for 3D and 2D rendering in most Windows platform games.
Gorgon C#/.NET WindowsWindows 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 WindowsWindows LinuxLinux OSXOSX 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 WindowsWindows LinuxLinux OSXOSX 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 WindowsWindows LinuxLinux OSXOSX 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 WindowsWindows 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 WindowsWindows LinuxLinux OSXOSX An open source 3D rendering engine. Capable of using DirectX or OpenGL.
Beta Cell C# WindowsWindows XBoxXBox A free computer graphics toolkit capable of composing effects at runtime with

lots of documentation

Open Scene Graph C++ WindowsWindows OSXOSX LinuxLinux SolarisSolaris BSDBSD 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 WindowsWindows LinuxLinux OSXOSX 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++ WindowsWindows LinuxLinux 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++ WindowsWindows 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 WindowsWindows tiny C library for OpenGL. Load: BMP, PNG, JPEG, TGA, DDS (DXT1/3/5), PSD, HDR. Save: TGA, BMP, DDS.
glpng C WindowsWindows LinuxLinux SGI Supports OpenGL

Miscellaneous

[edit]
Name Language Platform Description
Sharp3D.Math
Boost Libraries C++ WindowsWindowsLinuxLinux a cross platform collection of libraries that extend the functionality of C++
CEL
libnoise
J2ME (Java)
SDL_Config
OIS C++ WindowsWindowsLinuxLinuxOSXOSX 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 LinuxLinux 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# WindowsWindows 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++ WindowsWindows 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.
Recast Navigation C++ Any MIT License

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 WindowsWindowsLinuxLinuxAndroidAndroid OpenGL bitmap font generator and renderer.
Freetype C WindowsWindowsLinuxLinuxOSXOSX True Type loading and decoding, used by most TTF renderers]
FTGL C++ WindowsWindowsBSDBSDLinuxLinuxOSXOSX
glFont C/C++
GLFT_Font C++ WindowsWindowsLinuxLinuxOSXOSX Simple Text in OpenGL on any platform with Freetype and OpenGL.
GLTT C/C++
Glyph Keeper
NFont C/C++ WindowsWindowsLinuxLinuxOSXOSX Simple and fully-featured bitmap font struct/class for SDL
OGLFT C/C++
SDL_TTF
TTME Java J2ME TTF library for J2ME

XML

[edit]
Name Language Platform Description
Axl XML Library C/C++ WindowsWindows LinuxLinux An easy to use XML Library that supports XML 1.0
C++ XML Parser C++ WindowsWindows OSXOSX LinuxLinux 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++.

External Links