Libraries

From GPWiki

Files:GUITutorial_warn.gif The Game Programming Wiki has moved! Files:GUITutorial_warn.gif

The wiki is now hosted by GameDev.NET at wiki.gamedev.net. All gpwiki.org content has been moved to the new server.

However, the GPWiki forums are still active! Come say hello.

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 Language Platform Description
Audiere
BASS C Cross-Platform Commercial, HGE uses it as a freeware audio library, but licence requires you to purchase BASS for commercial projects.
Dumb C Cross-Platform Freeware module player library
FMod
irrKlang C++ Cross-Platform Free 2D and 3D audio library
OpenAL C Cross-Platform
SDL C Cross-Platform
SDL_mixer C Cross-Platform

Character Animation

Name Language Platform Description
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
bzip2 Python Cross-Platform Good compression
unrarlib Cross-Platform Good compression
zlib Python Cross-Platform Fast compression
LZMA C, C++, C#, Java Cross-Platform The one that 7-zip uses, Good and fast, Open Source
gzip C, C++, Python Cross-Platform Fast compression, Open Source
lzo C, Perl, Python, Java Cross-Platform Very fast decompression, Small memory footprint, Open Source

GUI

Name Language Platform Description 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 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
Guichan GUI C++ Windows, Linux, Mac OS Guichan is a portable C++ GUI library designed for games using Allegro, 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
wxWidgets Crossplatform GUI libary 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)
Qt cross-platform development library C++ Linux and other UNIX variants, Mac OS X, Windows GPL, Qt Commercial license
GTK+ C Linux and other UNIX variants, Windows LGPL
gtkmm C++ Same as GTK+ above A very nice C++ wrapper for GTK+ LGPL
Tk TCL, Perl, Python, Ruby, others *nix, Win32, Mac OS X A non-native (Motif-look) toolkit coupled closely with Tcl BSD-style 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

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
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++
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 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.
SDL C/C++
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

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.
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.

Image

Name Language Platform Description
corona
CxImage
DevIL
FreeImage
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
ImageMagick
libjpeg
SDL_Image
libpng
paintlib
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. Accepted to Boost, but not yet in the main distribution.
libpkg C Any BRL-CAD's libpkg Network Package Library, simple interface for synchronous or asynchronous network transport
HawkNL
Quazal
OpenTNL
SDL_net
Zoidcom
RakNet
DemonWare
eNet 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
Zig

Pathfinding

Name Language Platform Description
MicroPather
PATHEngine

Physics

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
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
Glyph Keeper
OGLFT

XML

Name Language Platform Description
C++ XML Parser C++ Win,Lin,Mac 2 files(.h and .cpp) and 104 kB

External Links