Free Game Development Libraries

NB: The latest version of this page can now be found here; please update your bookmarks!

Below is a selection of links to free libraries suitable for use in game development projects.

Licences are listed below next to the libraries to help you make a choice; some may require you to release your source code, others may only be free as long as your release is non-commercial. More esoteric licences may require you contact the author first, send them a copy of your game, or perform some other small task as 'payment'. Bear in mind that the author may change the licence at any time or mistakes could exist on this page, so ensure you verify a library's licence before use.

Most libraries are aimed at C++ or C programmers, as the predominant language used by both the industry and hobbyists, but several can be used from other languages.

There's little attempt to define or limit scope here; some libraries try to provide an entire framework for games, others provide a whole subsystem, whereas still others just simplify a task or tasks within that subsystem. Engines limited to particular types of game are generally excluded, however.

Any dead links, or incorrect entries? Let me know at the address at the bottom of the page. Thanks to those of you who submit corrections and additions, and especially for your patience while waiting for updates.

Contents

General purpose libraries

These are libraries that tend to encompass several areas of the game, often providing a whole framework to work within. Good for beginners or those more interested in quickly having a finished product as opposed to fine-tuning many individual aspects,

Agar (graphics toolkit for SDL and OpenGL) BSD
AgateLib (.NET library) MPL
Alchemist's Game Library (2D game engine) [1]
Allegro giftware
Amaltheia (game programming API) LGPL
ArcLib (2D game programming system for the D programming language) 'free, BSD-like'
Basic Game Library (Docs in Spanish?) CC
IKA (generic gaming engine) 'free'
ClanLib LGPL
CRM32Pro multimedia SDK GPL
Game Incubator free
GLFW ZLIB
Goblin 2D+ Engine [1]
Golden T Game Engine (Java) [2]
Gosu (2D engine for C++ amd Ruby) Free
KJAPI [1]
MASI-CiX 2D sprite-based game platform [1]
OpenTK Game development library for .Net/Mono MIT
PLIB General purpose library. LGPL
Popcap 2D library with extras. Popcap
Proyecto dx_lib32 Spanish language. VB6. Free
Pure Power Tactical Engine (RTS engine) LGPL
Realmforge (in C#) LGPL
SDL LGPL
SDL.NET LGPL
SFML (Simple and Fast Multimedia Library) ZLIB
SpriteCraft Freeware
Stratagus (RTS engine) GPL
SxDL 2D, 3D, audio, etc.GPL
The Tao Framework (various libs ported to .Net) Various

3D Graphics

These libraries primarily deal with rendering of 3D models and scenery. They've been split into two fairly arbitrary categories, but in fact there is a continuum from massive feature-rich engines to simple add-in libraries.

'Engines'

This section contains largely complete systems that - in theory - you can just bolt your game onto. The bias is towards feature completeness.

Antiryad GX Freeware
Apocalyx GPL
Axiom (OGRE in C#) LGPL
Crystal Space LGPL
Cube slightly modified zlib
Delta3D LGPL
Fly3D GPL
G3D BSD
Genesis3D similar to GPL
Heretic/Hexen [1]
Irrlicht ZLIB
LightFeather ZLIB
The Nebula Device free license
NeoEngine MPL
OGRE 3D LGPL
Panda 3D free
QuakeForge GPL
XEngine ZLIB
Yake LGPL, custom licenses

'Libraries'

This section lists self-contained units of functionality relevant to 3D applications. Typically you add these into your games, or they provide a minimal framework which you code your game around. The bias is towards flexibility.

Amanith (vector graphics) QPL
ARToolkit GPL
CG Free
Demeter terrain engine LGPL
Ghost (glut-like) BL and GPL
GLee BSD-like
Graphics Library Helper (like GLU) Freeware
Interactive Visualisation Framework LGPL
MXR Toolkit GPL
NGL (glut-like framework) LGPL
NVIDIA Scene Graph SDK Free
OpenGlean MIT
OpenGlut MIT
FreeGlut MIT
OpenGL Window Framework ZLIB
OpenSceneGraph OpenSceneGraph
OpenSG LGPL
Qhull free?

2D Graphics

2D graphics libraries typically specialise in rendering sprites and GUI elements. Some may use underlying 3D acceleration functionality, and some may not.

AntTweakBar (GUI for DX/OGL) ZLIB
Crazy Eddie's GUI System LGPL
Eclipse LGPL
Endogine sprite engine (C#) Free
GameVision SDK Unknown
HGE ZLIB
hxrender ZLIB
Kyra LGPL
libcig-a (Simple OpenGL 2D API) LGPL
ManagedGL (C#/.NET/SDL) LGPL
ParaGUI (for SDL) LGPL
Saq2D (C#) Free
TinyPTC 'open source'
LibUFO (gui, for OpenGL etc) LGPL

Video

These libraries are for decoding and displaying real-time video, useful for FMV cut scenes and the like.

Dirac MPL
FFmpeg 'open source'
Theora 'BSD-like'
XviD GPL

Image and Font Handling

Libraries in this section handle the loading and setup of graphics formats, whether simple bitmap images or vector formats commonly used for fonts/typefaces.

Images

CImg CeCill
Corona ZLIB
CxImage ZLIB
DevIL LGPL
FreeImage GPL, FIPL
GFL SDK [1]
GTL (Game Texture Loader) ZLIB
IJG (jpeg library) free?
ImageMagick apache-style license
JpegXX Boost
libPNG libPNG
libTiff free?
LodePNG free?
Paintlib [2]
SDL_image LGPL
SOIL (Simple OpenGL Image Library) public domain
Titan ZLIB

Fonts

BFont LGPL
FTGL (fonts in OpenGL) LGPL
GLFT_Font ZLIB
Glyph Keeper [4]
SFont LGPL or GPL

Sound + Music

These libraries facilitate the loading and playing of sound and music files within your game.

Audiere  LGPL
BASS [1]
FMOD [1]
Hekkus Sound System (For WinCE/Win32/Symbian and .NET.) Credit or donation required
IrrKlang 'Free'
libMikMod  LGPL
libsndfile  LGPL
Ogg Vorbis  BSD-like
OpenAL  (?)
OpenAL Soft  (?)
PortAudio  essentially free
SDL_mixer (requires SDL)  LGPL
SDL_sound (requires SDL)  LGPL

Networking

Networking libraries exist to facilitate communications between multiple computers, useful for head-to-head or competitive play, communicating high scores to a server, and more.

High-level

High level networking libraries attempt to simplify networking, often by hiding most of the gory details of ensuring reliable transmissions, converting objects to and from data streams, and so on.

Nevrax/NEL GPL?
Net2 LGPL
OpenPlay Apple Public Source License
OpenTNL GPL , or commercial
RakNet GPL , or free by application
ReplicaNet [1]
Zoidcom [1]

Low level

Low level libraries often require a bit more networking knowledge to use effectively, but can be more scalable to demanding tasks or those with unusual requirements.

http://www.mindcontrol.org/~hplus/etwork/
Boost ASIO (part of Boost library) Boost license
Dyconnect ZLIB
Enet free
Etwork MIT
HawkNL LGPL
libCURL (URL transfer) Curl license
Lidgren.Library.Network (.NET/C#) BSD
Pegasus (part of PLIB) LGPL
SDL_net LGPL

Unknown

Game Network Engine LGPL

Model Handling and Character Animation (3D)

Libraries in this section handle the loading of 3D models and their associated animations.

Animadead LGPL
Cal3D LGPL
GPUMesh free
GNU Triangulated Surface Library LGPL
LibASE LGPL
lib3DS LGPL
Trimeshloader ZLIB

Filesystems, persistence, and format parsing

These libraries allow you to read generic formats like XML or ZIP files, or to encrypt data, or to use resource files to save space.

XML

ezXML MIT
libXML MIT
TinyXML zlib

Compression and archive formats

bzip2 free
LZMA (7-Zip compression) LGPL or CPL
LZO GPL
PhysFS zlib
Unrarlib free for non-commercial, otherwise GPL
ZipArchive GPL or commercial
zipstream, bzip2stream (iostream wrappers for the zlib and bzip2 libraries) ZLIB
zlib ZLIB
zziplib LGPL / MPL

Encryption

Crypto++ [3]

Other

SDL_Config LGPL
SQLite public domain

Scripting Languages

An in-game scripting language can speed up development and allow non-programmers to help out with game behaviour.

AngelScript  ZLIB
BOO (Reqs .NET/CLI) MIT/BSD style
CInt (C interpreter) free, reg. required for commercial use
EosScript LGPL
GameMonkey MIT
GS9 Free
Guile Modified GPL - almost LGPL
IO BSD
Javascript Mozilla
Lua MIT
Perl Artistic
Tcl free
Python free
Ruby Ruby license
Small ZLIB
Squirrel ZLIB
VBScript 'license at no charge'

Artificial Intelligence

Although AI usually is very game-specific and there are no simple components you can drop in as you might with an image loading library or a 3D renderer, there are some packages that cover certain algorithms and processes that you may use when writing AI for game characters.

See also: http://www.gameai.com/toolkits.html

FEAR GPL , other
MicroPather zlib
OpenSteer MIT
PathLib ?

Mathematics, Physics and Collision Detection

This section contains libraries helping with complex mathematics, such as calculating object physics, checking for collisions, generating random numbers, and more.

Mathematics

Blitz++ GPL or Blitz Artistic License)
CML (Configurable Math Library) Boost license
fixed point math library BSD-like
GLM (OpenGL helpers) free?
GMP - arbitrary precision arithmetic LGPL
MathGL++ (Matrices, Vectors, Quaternions, Linear polynomials with eigen systems) LGPL
Mersenne Twister random number generator free
vector_math (formerly math3D++) BSD-like
VMath (NxM matrix template class) free

Physics

Box2D ZLIB
Bullet ZLIB
Flatland (2D physics) BSD
Newton Game Dynamics Free, but must notify creators
Novodex [1]
Open Dynamics Engine (ODE) BSD
Open Dynamics Framework Free
OPAL BSD or LGPL - please check
Physical free
Plane2D (for ODE) presumably BSD
Tokamak free
True Axis [1]

Collision detection

ColDet LGPL
GImpact LGPL /BSD-like
Opcode free usage
PMask Public domain
Rapid [1]
Solid LGPL
V-Collide [1]

Debugging, memory checks, general purpose, etc

These libraries are less game-specific but can aid development by improving the robustness of your code.

Boost (C++ smart pointers, parsers, random numbers, quaternions, and more) Boost license
Chattering Pixels libraries (memory, I/O, sorting, timers) [1]
ElectricFence GPL
Fluid Studios Logger free
Hans Boehm garbage collector for C++ free
The Image Debugger (Win32 image output) free
IProf('A portable industrial-strength interactive profiler for C++ and C.') public domain
LeakTracer Public domain
MMGR (memory manager/checker) free
OIS (Object-oriented Input System) ZLIB
Valgrind (Linux debugging and profiling tool) GPL

Other Tools

Other tools and add-ons that game developers may find useful.

Doxygen (documentation generator) GPL
InnoSetup (installer) free
NaturalDocs (documentation generator) (Requires Perl 5.05.) Free
NSIS (installer) free
Synopsis (documentation generator) free
UPX (executable packer) free

Random...

GDAL - Geospatial Data Abstraction Library  MIT
AdVantage Terrain - 'easily add support for huge terrains' [1]

License Footnotes

[1] Free for noncommercial usage. Commercial usage will have to be negotiated with the author. Authors may have commercial licences available for purchase.
[2] Free for use, providing the author is credited in your product. Please check the library's web site to determine the exact nature of the credit required.
[3] Free to use, but note that certain cryptographic algorithms included by this library may not be legal to distribute to or from some countries. Patent issues may also apply.
[4] BSD-like license, but note potential patent issues. Full details here.

Anything to say or contribute? Contact me at gdlibs@blahghtsembrace.com. Gamedev.net users can also send me a private message.


© Ben Sizer 2004-2008. Last update 4th April 2008.

Thanks to all the authors who share their code and/or libraries to benefit game developers everywhere.

Special thanks to Sascha Stojanov for many additions.

Get Firefox!