Libraries

From GDWiki

Jump to: navigation, search

Libraries are split into the following categories:

Contents

AI

Name Language Platform Description
ABKit C++ MacOSX, Linux & Win32 Open Source (GPL)
AI.implant Commercial.
AI Loom C++ Open Source (LGPL). Website not working as of 4th December 2005. Last updated 2003.
DirectAI MacOSX, Linux & Win32 Redirects to the source code for an AI textbook.
FEAR C++, Python, Scheme All Win32, All POSIX (linux, etc) 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++ Unix Like Platforms Open Source (GPL)
AINN C++

Audio

Name Cost Language Platform Modes File Format
Audiere LGPL C++, Python, Delphi, Java Windows, Linux, IRIX 2D MP3, OGG, WAV, FLAC, MODs*
BASS 100-950€ per project, free noncommercial C/C++ Windows, Mac 3D, 2D MP3, OGG, WAV, AIFF, MODs*
Dumb Freeware C/C++ Windows, Mac, Linux, BEOS 2D IT, XM, S3M and MOD, OGG <-- Via Extension
FMod 1000-4000$ per project, free noncommercial C/C++ & C# Windows, WinCE, Mac, Linux, PS2, XBox, GameCube 2D, 3D MP3, OGG, WAV, AIFF, MODs, WMA*
Hekkus SoundSystem Donationware C/C++ WinCE, Win32, Symbian, .NET 2D, 3D Wav (+ ADPCM compressed), OGG.
irrKlang 65-390€, free for non-commercial C++ Windows, Mac, Linux 3D, 2D MP3, OGG, WAV, MODs *
libMikMod LGPL C/C++ Win32 and most Unixes 2D 669, AMF, APUN, DSM, FAR, GDM, IT, IMF, MOD, MED, MTM, OKT, S3M, STM, STX, ULT, UNI, XM.
OpenAL LGPL C/C++ Windows, Mac, Linux, BSD, Solaris, IRIX, PS2, PS3, XBox, XBox360, GameCube 2D, 3D Wav, OGG, MP3 <-- Via Extension AL_EXT_MP3
PortAudio Free (open-source) C/C++ Windows, Mac, Linux, FreeBSD, Solaris, Irix 2D  ?
SDL_mixer LGPL C/C++ Windows, Mac, Linux 2D Wav, ???
SDL LGPL "Note SDL 1.3 will have commercial licenses option" C/C++ Windows, Mac, Linux 2D Wav, ???

Character Animation

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++ PC, Mac, Linux, Xbox360, other Nextgen consoles 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

Name Language Platform Description
BCL C Windows, MacOS X, Linux 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, C++ Cross-Platform Good compression, Many bindings for other languages
unrarlib Cross-Platform Good compression
zlib C, C++ Cross-Platform Fast compression, Many bindings for other languages
LZMA C, C++, C#, Java Cross-Platform The one that 7-zip uses, Good and fast, Open Source
gzip C, C++ Cross-Platform Fast compression, Open Source, Many bindings for other languages
lzo C, Perl, Python, Java Cross-Platform Very fast decompression, Small memory footprint, Open Source

GUI

Name Language Platform Description License
AntTweakBar C/C++ Windows, Linux 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++ Windows, Linux, Mac OS Crazy Eddie's GUI System is a free library providing windowing and widgets for graphics APIs / engines where such functionality is not nativley 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
GTK+ C/C++ Windows, Mac, Linux and other UNIX variants GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. There is a OpenGL extension to GTK+ 2.0 or later called GtkGLExt LGPL
gtkmm C++ Same as GTK+ above A very nice C++ wrapper for GTK+ LGPL
Guichan C++ Windows, Linux, Mac OS Guichan is a portable C++ GUI library designed for games using Allegro, HGE, SDL and/or OpenGL BSD license
OpenGUI C++ Windows, Linux coming soon 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 C++ Linux and other UNIX variants, Mac OS X, Windows GPL, Qt Commercial license
Tk TCL, Perl, Python, Ruby, others *nix, Win32, Mac OS X A non-native (Motif-look) toolkit coupled closely with Tcl BSD-style license
wxWidgets C++, Python, Perl, C#/.NET Linux, Windows, Mac OS X, WinCE 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

Name Language Platform Description
Allegro C/C++ DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X 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++ Linux, Windows 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
DirectFB
DirectX C/C++ & .NET Windows, Linux (under wine) A collection of APIs for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms.
G3D Win32, OS X, Linux Free library for managing graphics, networking, model loading, and basic 3D support code for games in C++.
GLFW C, Python GL Framework. Windows, Linux, SGI Irix, FreeBSD, SUN Solaris/SunOS, QNX, Mac OSX, AmigaOS, MS-DOS 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.
NeL
OGLWFW C++ Windows OpenGL Window Framework. Window framework for OpenGL supports multiple windows, querying display modes, zlib license
PLIB
Prototype JavaScript Any platform that runs 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.
SDL C/C++ Multi-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.
SxDL C++ MS Windows and MS DirectX SxDL is a powerful and an easy to use 2D and 3D Game Development Framework for MS Windows and MS DirectX.
SFML C/C++/D/Python/Ruby Windows / MacOS X / Linux SFML is a free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc.
Tao Framework .NET / Mono Windows(.NET), Linux / Mac OS X / Solaris / et al (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
Indiana Adventure Game Engine D Tested: Linux & Windows, probably Mac and other popular platforms work too (or short: Everywhere where D and SDL run) Does nearly everything you need in order to get a 2d-adventure game up and running. You just specify the user interface, the graphics and story/puzzles. (ie the fun part ;))
OpenGL Utility & Auxiliary Library C++ Will be crossplatform for Linux, OS/2, Mac OS, Mac OS X and Win32, at the moment only Win32 is tested. Provides a replacement for (Free)Glut for OpenGL programmers. Glux is programmed in C++ and still in a very early stage.

Graphics

Name Language Platform Description
Allegro C/C++ Windows, Linux Cross platform games programming library.
DirectX C/C++/.NET/VB Windows, XBox The Direct3D and DirectDraw components of DirectX are used for 3D and 2D rendering in most Windows platform games.
Gorgon C#/.NET Windows 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 Windows, Linux, Mac 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 Windows, Linux, MacOS X 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 Windows, Linux, MacOS X 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 Windows 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 Windows, Linux, MacOS X An open source 3D rendering engine. Capable of using DirectX or OpenGL.
Beta Cell C# Windows, XBOX360 A free computer graphics toolkit capable of composing effects at runtime with

lots of documentation

Open Scene Graph C++ Windows, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX, FreeBSD 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 Windows, Linux, MacOS X An open source 3D shader based rendering engine for OpenGL.

Image

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++ Windows, Linux 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++ Windows 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 Windows tiny C library for OpenGL. Load: BMP, PNG, JPEG, TGA, DDS (DXT1/3/5), PSD, HDR. Save: TGA, BMP, DDS.
glpng C Windows, Linux and SGI Supports OpenGL

Miscellaneous

Name Language Platform Description
Sharp3D.Math
Boost Libraries C++ Windows/*nix a cross platform collection of libraries that extend the functionality of C++
CEL
libnoise
J2ME (Java)
SDL_Config
OIS C++ Windows/Linux/OSX a cross platform, simple solution for using all kinds of Input Devices

Networking

Name Language Platform Description
Boost.ASIO C++ Any A Boost-integrated library with an elegant C++ interface for Asynchronous or Synchronous IO operations for sockets.
libpkg C Any BRL-CAD's libpkg Network Package Library, simple interface for synchronous or asynchronous network transport
HawkNL
HermesNet Any .Net Any
Quazal
OpenTNL C++
SDL_net
Zoidcom C++
RakNet C++
DemonWare
eNet C Unix/Windows A wrapper over UDP allowing multipule reliable or unreliable streams through a single socket.
Twisted Python Any A highly recommended asynchronous networking framework for Python
Entanglar Any .Net Any A framework for automatic/transparent network synchronisation of properties and remote method calls on game entities, with remote simulation error prediction.
Zig
OINC C++, Python Windows (C++), any (Python) A simple but powerful networking library, currently in alpha stage. Implements a protocol over a combination of TCP and UDP, as well as providing an easy to use wrapper over Winsock in C++.

Pathfinding

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++ Windows 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

Name Language Platform Description
Physics Abstraction Layer C++ Any Abstraction system for physics engines. Supports PhysX, Bullet, ODE, Newton, Novodex, True Axis, Box2D, Jiglib.
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
Newton Game Dynamics
Tokamak
Novodex
True Axis
nV Physics
OPAL
Chipmunk Game Dynamics C Any 2D physics engine
Box2D C++ Any 2D physics engine

Text Rendering

Name Language Platform Description
Freetype C Win,Lin,Mac True Type loading and decoding, used by most TTF renderers]
FTGL
glFont
GLFT_Font C++ Win,Lin,Mac Simple Text in OpenGL on any platform with Freetype and OpenGL.
GLTT
SDL_TTF
NFont C/C++ Win,Lin,Mac Simple and fully-featured bitmap font struct/class for SDL
Glyph Keeper
OGLFT
TTME Java J2ME TTF library for J2ME

XML

Name Language Platform Description
C++ XML Parser C++ Windows ,Mac ,Linux 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++.
Axl XML Library C/C++ Windows ,Linux An easy to use XML Library that supports XML 1.0

External Links

Personal tools
Categories