Free Game Development Libraries

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 have changed the licence or mistakes could exist on this page, so ensure you verify a library’s licence before you use it.

Most of these 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.

AgateLib (.NET library) MPL
Alchemist’s Game Library (2D game engine) [1]
Allegro giftware
Amaltheia (game programming API) LGPL
Angel Engine (2D Game Prototyping Engine) BSD
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’
Cistron (entity/component system) LGPL
ClanLib LGPL
CRM32Pro multimedia SDK GPL
Elemental Engine 2 Unknown (‘open source’)
Elf2d (Windows only) MIT
FIFE LGPL
Fly.engine (Java 1.5+) [2]
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]
nui C++ multiplatform framework (accelerated 2D rendering, concurrency features, audio handling, platform abstractions, etc) GPL
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
Quinta BSD
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
Grualia Freeware but displays watermark (commercial license available)
Heretic/Hexen [1]
Irrlicht ZLIB
Jolt3D Unknown, free?
LightFeather ZLIB
The Nebula Device free license
NeoEngine MPL
OGRE 3D LGPL
Panda 3D free
QuakeForge GPL
RET::SDK [2]
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?
SPARK Particle Engine 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
FreeType GPL or FreeType license (like BSD + giving credit)
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 (?)
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

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

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 ?

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
TinyCurses (portable text-based output library) LGPL
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]

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


© Ben Sizer 2004-2010. Last update 13th February 2010.

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.