c++ 工具庫 (zz)

下面是收集的一些開發工具包,主要是C/C++方面的,涉及圖形、圖像、遊戲、人工智能等各個方面,感覺是一個比較全的資源。供參考!
原文的出處:http://www.codemonsters.de/home/content.php?show=freelibraries
//z 2015-07-30 15:24:34 L.154'30926 BG57IV3@XCL T3752479411.K.F1370514324[T81,L7803,R301,V7813]

Contents

2D Graphics

CDX Library
www.cdxlib.com
Description: CDX is a free Game Development Kit which is comprised of a set of C++ wrapper classes for writing Windows games. It is built on top of Microsoft Windows and DirectX technology and offers simple to use C++ wrappers for all aspects of game development. This includes things like sprites, tiles, scollable maps, alpha blending and even 3D primitives (using Direct3D). CDX takes care of the low-level details of using DirectX, providing you with an easy to use toolkit for implementing your own games using simple yet flexible C++ classes. With only a handful of classes, CDX is quick to learn and easy to use.
Added: October 31, 2004

Eclipse 2D Game Engine
eclipseeng.sourceforge.net
Author: JGH
License: LGPL
Added: October 31, 2004

Golden T Game Engine
goldenstudios.or.id/products/GTGE/
Description: Golden T Game Engine (GTGE) is an advanced cross-platform game programming library written in Java language. GTGE library provides a complete routines for making 2D game, from low level routines such as hardware accelerated 2D graphics, mouse and keyboard input, audio, timing, to game specific routines such as sprite, background, collision detection.
Author: Paulus Tuerah
License: free, but requires credits
Added: March 28, 2005

hxRender
mavweb.mnsu.edu/longaj/hxrender/
Author: Joel Longanecker
License: zlib
Platforms: Windows, GNU/Linux, MacOS X
Added: October 31, 2004

Haaf's Game Engine - Hardware accelerated 2D game engine
hge.relishgames.com
License: Free for non-commercial use
Platforms: Windows
Added: October 31, 2004

3D Graphics

Crystal Space 3D
www.crystalspace3d.org
Description: Crystal Space is a free and portable 3D Game Development Kit written in C++.
License: LGPL
Platforms: GNU/Linux, Unix, Windows, MacOS X
Added: October 31, 2004

Delta3D
delta3d.org
Description: A well-supported and fully-funded open source project, Delta3D is a full-function game engine appropriate for a wide variety of modeling & simulation applications.
License: LGPL
Added: March 28, 2005

Demeter Terrain Engine
demeter.sourceforge.net
Description: Demeter is a cross-platform C++ library that renders 3D terrains using OpenGL. Demeter is designed for fast performance and good visual quality and makes use of advanced techniques such as dynamic tessellation (adaptive mesh) to render vast landscapes in real-time, without the need for high-end hardware. It is written as a stand-alone component that can be easily integrated into any kind of application.
Author: Clay Fowler
License: LGPL
Added: October 31, 2004

ExNihilo
www.ploksoftware.org
Description: ExNihilo engine is new technology based on multi manager system.
Added: October 31, 2004

G3D C++ Library
g3d-cpp.sourceforge.net
Description: G3D is a commercial-grade 3D Engine available as Open Source. It is used in games, tech demos, research papers, military simulators, and university courses. It can support real-time rendering, off-line rendering, back-end game server management of 3D worlds, and use of graphics hardware for general purpose computing.
Authors: Morgan McGuire, Peter Sibley, Ben Landon, Peter Hunt, Giulio Mainardi, Gabe Taubman
License: BSD
Platforms: Windows, GNU/Linux, MacOS X
Added: October 31, 2004

Genesis3D Engine
www.genesis3d.com
Description: Genesis3D is a real-time 3D rendering environment for all of your real-time 3D needs.
Added: October 31, 2004

Horde3D - Next-Generation Graphics Engine
www.nextgen-engine.net
Description: Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games while at the same time being as lightweight and conceptually clean as possible. Horde3D has a simple and intuitive interface accessible from virtually any programming language and is particularly suitable for rendering large crowds of animated characters in next-generation quality.
Author: Nicolas Schulz
License: LGPL
Added: October 6, 2007

Irrlicht Engine
irrlicht.sourceforge.net
Description: 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.
Author: Nikolaus Gebhardt
License: zlib
Platforms: Windows, GNU/Linux
Added: October 31, 2004

Jet3D
www.jet3d.com
Added: October 31, 2004

Lightfeather
lf.mmdevel.de/news.php
Description: Lightfeather (formerly Irrlicht NX++) is an open source 3D Engine for MacOSX, Windows and Linux.
License: zlib/libpng
Platforms: Windows, GNU/Linux, MacOS X
Added: October 31, 2004

Nebula Device 2
nebuladevice.cubik.org
Description: Nebula Device is an open source realtime 3D game/visualization engine, written in C++. Version 2 is a modern rendering engine making full use of shaders.
Platforms: Windows, GNU/Linux, MacOS X
Added: October 31, 2004

NVSG SDK
developer.nvidia.com/object/nvsg_home.html
Description: The nVIDIA Scene Graph Software Development Kit is an object-oriented programming library for creating scene graph-based applications.
Author: nVIDIA
Added: October 31, 2004

Ogre3D
www.ogre3d.org
Description: Ogre (Object-oriented Graphics Rendering Engine) is an open-source graphics rendering engine.
License: LGPL
Added: October 31, 2004

OpenSceneGraph
www.openscenegraph.org
Description: The OpenSceneGraph is an open source high peformance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.
License: OpenSceneGraph Public License (based on the LGPL)
Platforms: Windows, MacOS X, GNU/Linux, IRIX, Solaris, FreeBSD
Added: October 31, 2004

SGL - A 3D Scene Graph Library
sgl.sourceforge.net
Description: SGL consists of a set of cross-platform C++ libraries, built on top of OpenGL, which implements 3D scene graph functionality, some simple 3D model loaders, and some miscellaneous utilities.
Added: October 31, 2004

SxDL Game Development Toolkit
sxdl.sourceforge.net
Description: SxDL is a powerful and an easy to use 2D and 3D Game Development Framework for MS Windows and MS DirectX.
License: GPL
Added: October 31, 2004

XEngine
xengine.sourceforge.net
Description: XEngine is a platform- and rendering-API-independent 3D engine for real-time visualization with support for programmable graphics pipeline architectures and is implemented in C++. The engine aims at flexible support for many of the shading languages available today, so that existing shaders can easily be re-used. This includes current assembler-like languages as well as high-level languages, such as NVIDIA's Cg. In addition, integration of new shading languages should be easily possible with the engine's design.
Author: Martin Ecker
License: zlib
Added: October 31, 2004

Yake
www.yake.org
Description: Yake is a small, flexible, cross-platform game engine/application framework.
License: LGPL
Added: March 28, 2005

3D Game Engines

Apocalyx
apocalyx.sourceforge.net
Description: Apocalyx is an OpenGL 3D engine. The current implementation supports Win98 (or higher) and accelerated 3D graphic cards with OpenGL drivers.
License: GPL
Platforms: Windows
Added: October 31, 2004

Cube Engine
www.cubeengine.com
Description: Cube is an open source multiplayer and singleplayer first person shooter game built on an entirely new and very unconventional engine. Cube is a landscape-style engine that pretends to be an indoor FPS engine, which combines very high precision dynamic occlusion culling with a form of geometric mipmapping on the whole world for dynamic LOD for configurable fps & graphic detail on most machines. Uses OpenGL & SDL.
Author: Wouter van Oortmerssen
License: zlib
Added: October 31, 2004

Fly3D
www.fly3d.com.br
Description: Fly3D is a plugin-oriented, OpenGL-based 3D games engine and development kit. It offers rendering, input, sound and scene control methods for game programmers to build their game software, as well as a variety of tools for game developers to add and modify content to game projects.
Authors: Alan Watt, Fabio Policarpo
License: GPL
Added: October 31, 2004

NeoEngine
www.neoengine.org
Description: NeoEngine is an Open Source 3D game engine
License: MPL
Added: October 31, 2004

Panda3D
panda3d.etc.cmu.edu
Description: The free open source game and simulation engine, developed by Disney and maintained by Carnegie Mellon University's Entertainment Technology Center.
License: Free
Added: March 28, 2005

QuakeForge
www.quakeforge.net
Description: QuakeForge is a 3D graphics game engine based on id Software's legendary Quake and QuakeWorld game engine.
License: GPL
Added: October 31, 2004

Tenebrae
tenebrae.sourceforge.net
Description: Tenebrae is a modification of the quake source that adds stencil shadows and per pixel lights to quake.
Added: October 31, 2004

Artificial Intelligence

FEAR - Foundations for Genuine Game AI
fear.sourceforge.net
License: GPL
Added: September 13, 2007

MicroPather
www.grinninglizard.com/MicroPather/
Description: Pathing Made Simple. MicroPather is a path finder and A* solver (astar or a-star) written in platform independent C++ 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.
Author: Lee Thomason
License: zlib
Added: September 13, 2007

OpenSteer
opensteer.sourceforge.net
Description: OpenSteer is a C++ library to help build steering behaviors for autonomous characters in games and animation. OpenSteer provides an app which displays predefined demos of steering behaviors. You can prototype, visualize and debug your own as a plug-in.
Author: Craig Reynolds
License: MIT
Platforms: Windows, All POSIX (Linux/BSD/UNIX-like OSes), Linux, MacOS X
Added: October 31, 2004

PathLib - Game Pathfinding Library
pathlib.hildebrand.cz/pathlib.html
Description: The Pathlib is an independent simple library (written in C) for searching optimal paths for objects in map. The library solves generally tasks like finding optimal-cost path in map, timing objects and their movement in map, simple collision detection and solving of deadlocks.
License: unknown
Added: September 13, 2007

Audio (Sound & Music)

Audiere
audiere.sourceforge.net
Description: 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.
Author: Chad Austin
License: LGPL
Platforms: Windows, Linux-i386, Cygwin, IRIX
Added: October 31, 2004

BASS Audio Library
www.un4seen.com
Description: BASS is an audio library for use in Windows and Mac OSX software. Its purpose is to provide developers with the most powerful and efficient (yet easy to use), sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a tiny DLL, under 100KB* in size.
Author: un4seen development
License: Free for non-commercial use
Platforms: Windows, MacOS X
Added: October 31, 2004

FMOD Sound System
www.fmod.org
Description: FMOD is a cross platform audio library to let you easily implement the latest audio technologies into your title.
Authors: Firelight Technologies Pty, Ltd
License: Free for non-commercial use
Platforms: Windows, Linux, MacOS X, PS2, Xbox, GC...
Added: October 31, 2004

FreeSL - Free Sound Library
www.lukasheise.com/web_res/freesl.html
Description: FreeSL (Free Sound Library) is a OpenAL wrapper. It also includes the EAX 2.0 library for realistic audio environment simulations plus occlusion and obstruction.
Author: Lukas Heise
License: Free
Added: October 6, 2007

Hekkus Sound System
www.shlzero.com
Description: Hekkus Sound System is a small and fast sound engine for WinCE/Win32/Symbian and .NET application, expecially designed for games.
Author: Thomas Maniero
License: Donate-Ware
Platforms: Win32, WinCE, Symbian
Added: October 31, 2004

irrKlang
www.ambiera.com/irrklang/index.html
Description: irrKlang is a cross platform audio library designed to be used in games, scientific simulations and similar.
Author: Nikolaus Gebhardt
License: irrKlang License
Added: September 17, 2007

Libsndfile
www.mega-nerd.com/libsndfile/
Description: Libsndfile is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface.
Author: Erik de Castro Lopo
License: LGPL
Platforms: Windows, Linux, MacOS X, Solaris, QNX
Added: October 31, 2004

libMikMod
mikmod.raphnet.net
Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm.
Author: Raphaël Assénat
License: LGPL
Added: September 17, 2007

Ogg Vorbis
www.vorbis.com
Description: Ogg Vorbis is a completely open, patent-free, professional audio encoding and streaming technology with all the benefits of Open Source.
License: BSD-like
Added: September 17, 2007

OpenAL
www.openal.org
Description: OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.
Platforms: Windows, Linux, MacOS X, UNIX, Xbox
Added: October 31, 2004

Open Source Audio Library Project
osalp.sourceforge.net
Authors: Bruce Forsberg, Darrick Servis
License: LGPL
Platforms: Linux, Solaris, FreeBSD
Added: October 31, 2004

PortAudio
www.portaudio.com
Description: PortAudio is a free, cross platform, open-source, audio I/O library.
Authors: Ross Bencina, Phil Burk
License: Free
Platforms: Windows, MacOS X, Unix, SGI, BeOS
Added: October 31, 2004

SDL_mixer
www.libsdl.org/projects/SDL_mixer/
Description: A sample multi-channel audio mixer library.
Authors: Sam Lantinga, Stephane Peter, Ryan Gordon
License: LGPL
Platforms: Windows, MacOS X, Linux
Added: October 31, 2004

SDL_sound
icculus.org/SDL_sound/
Description: SDL_sound is a library that handles the decoding of several popular sound file formats, such as .WAV and .MP3.
Author: Ryan C. Gordon
License: LGPL
Platforms: Windows, Linux, MacOS X, FreeBSD, BeOS
Added: October 31, 2004

Collision Detection

Bitmask
people.ifm.liu.se/ulfek/bitmask/
Description: The Bitmask library provides C functions for 2D pixel-perfect collision detection. In addition to just collision detection the library can also calculate a point of intersection and the number of overlapping pixels in an efficient way.
Author: Ulf Ekström
License: LGPL
Added: September 13, 2007

ColDet - Free 3D Collision Detection Library
photoneffect.com/coldet/
Description: This library is an effort to provide a free collision detection library for generic polyhedra. Its purpose is mainly for 3D games where accurate detection is needed between two non-simple objects.
Author: Amir Geva
License: LGPL
Platforms: Windows, Linux
Added: October 31, 2004

FreeSOLID - Software Library for Interference Detection
www.win.tue.nl/~gino/solid/index.html
Description: SOLID is a library for collision detection of three-dimensional objects undergoing rigid motion and deformation. SOLID is designed to be used in interactive 3D graphics applications, and is especially suited for collision detection of objects and worlds described in VRML.
Author: Gino van den Bergen
License: LGPL
Added: October 31, 2004

GImpact
gimpact.sourceforge.net
Description: GImpact is a software library with tools for geometry processing and collision detection, focused on solving most common problems on Virtual Reality development.
Author: Francisco Leon
License: LGPL
Added: September 14, 2007

OPCODE - Optimized Collision Detection
www.codercorner.com/Opcode.htm
Description: OPCODE is a new small collision detection library. It is similar to popular packages such as SOLID or RAPID, but more memory-friendly, and often faster.
Author: Pierre Terdiman
License: Free
Platforms: Windows, Linux
Added: October 31, 2004

RAPID - Robust and Accurate Polygon Interference Detection
www.cs.unc.edu/~geom/OBB/OBBT.html
Description: RAPID is a robust and accurate polygon interference detection library for large environments composed of unstructured models.
License: Free for non-commercial use
Added: October 31, 2004

V-Collide - Collision Detection for Arbitrary Polygonal Objects
www.cs.unc.edu/%7Egeom/V_COLLIDE/
Description: V-Collide is a collision detection library for large environments. It is designed to operate on large numbers of polygonal objects. It makes no assumptions about input structure and works on arbitrary models, also known as "polygon soups".
Added: September 14, 2007

Compression

bzip2
www.bzip.org
Description: bzip2 is a freely available, patent free (see below), high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.
Author: jseward
License: BSD
Platforms: Windows, UNIX, OS/2, Amiga
Added: October 31, 2004

LZMA SDK
www.7-zip.org/sdk.html
Description: LZMA is the default and general compression method of 7z format in the 7-Zip program. LZMA provides a high compression ratio and very fast decompression, so it is very suitable for embedded applications.
Author: Igor Pavlov
License: LGPL
Added: September 17, 2007

LZO
www.oberhumer.com/opensource/lzo/
Description: LZO is a portable lossless data compression library written in ANSI C.
Author: Markus F.X.J. Oberhumer
License: GPL
Added: September 17, 2007

Minizip: Zip and UnZip additionnal library
www.winimage.com/zLibDll/minizip.html
Description: The Zlib library allows to deflate compressed files and to create gzip (.gz) files.
Authors: Gilles Vollant, Eric Bischoff
License: Free
Added: October 31, 2004

szip
www.compressconsult.com/szip/
Description: Szip is a freeware portable general purpose lossless compression program. It has a high speed and compression, but high memory demands (up to 20MB) too.
Author: Michael Schindler
Platforms: Windows, Linux, Unix, BeOS, MacOS X, OS/2
Added: October 31, 2004

unrarlib - Unique RAR File Library
www.unrarlib.org
Description: The UniquE RAR File Library is a platform-independent, small and fast static library for decompressing RAR files (RAR archives are created with WinRAR). Full RAR v2.0 file format support of all compression methods, including multimedia compression and encoding is available.
Authors: Christian Scheurer, Johannes Winkelmann
License: GPL
Platforms: Windows, Linux, SunOS, WinCE, OS/2
Added: October 31, 2004

ZipArchive
www.artpol-software.com/ZipArchive/
License: Licensing information
Added: September 17, 2007

ZipStream/Bzip2Stream
www.codeproject.com/vcpp/stl/zipstream.asp
Description: Two zipped STL iostream implementations based on the library zlib and bzip2. This means that you can easily manipulate zipped streams like any other STL ostream/istream.
Author: Jonathan de Halleux
License: LGPL
Platforms: Windows
Added: October 31, 2004

Zlib - A Massively Spiffy Yet Delicately Unobtrusive Compression Library
www.zlib.net
Authors: Jean-loup Gailly, Mark Adler
License: zlib
Platforms: Windows, Linux, Unix, MacOS X, and any other platform :)
Added: October 31, 2004

zziplib
zziplib.sourceforge.net
Description: The zziplib library is intentionally lightweight, it offers the ability to easily extract data from files archived in a single zip file. Applications can bundle files into a single zip archive and access them. The implementation is based only on the (free) subset of compression with the zlib algorithm which is actually used by the zip/unzip tools.
Author: Guido Draheim
License: LGPL/MPL
Platforms: Windows, Linux, Solaris, FreeBSD, MacOS X
Added: October 31, 2004

Encryption

Crypto++ Library
www.eskimo.com/~weidai/cryptlib.html
Description: A free C++ class library of cryptographic schemes. Currently the library consists of the following, some of which are other people's code, repackaged into classes.
Author: Wei Dai
License: Public Domain
Platforms: Windows, UNIX, MacOS X, BeOS, Solaris
Added: October 31, 2004

Cryptlib
www.cs.auckland.ac.nz/~pgut001/cryptlib/
Description: cryptlib is a powerful security toolkit that allows even inexperienced crypto programmers to easily add encryption and authentication services to their software.
License: Distributed under a dual license (free, open-source as a GPL-like license and closed-source use under a standard commercial license)
Platforms: Windows, Linux, UNIX, MacOS X, BeOS,
Added: October 31, 2004

LockBox
sourceforge.net/projects/tplockbox/
Description: LockBox is a cross-platform toolkit for data encryption. It contains routines & components for use with Borland Delphi, C++Builder, & Kylix. It provides support for Blowfish, RSA, MD5, SHA-1, DES, triple- DES, Rijndael, & digital signing of messages.
License: LGPL
Platforms: Windows, Linux, UNIX
Added: October 31, 2004

Font Handling

FTGL
homepages.paradise.net.nz/henryj/code/index.html
Description: A font rendering library for OpenGL.
Author: Henry Maddock
License: LGPL
Added: September 14, 2007

FreeType
www.freetype.org
Description: FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.
License: FreeType License/GPL
Platforms: Cross-platform
Added: January 8, 2006

GLFT_Font
www.cs.rit.edu/%7Ejpt2433/glftfont/
Description: GLFT_Font allows programmers to use fonts in their OpenGL applications with great ease on any platform for which both FreeType2 and OpenGL are available.
Authors: James Turk, Marijn Haverbeke
License: zlib
Added: September 14, 2007

SFont
www.linux-games.com/sfont/
License: GPL'ed
Added: September 14, 2007

General Purpose

boost - C++ libraries
www.boost.org
License: Boost license
Added: September 14, 2007

Ceylan
ceylan.sourceforge.net
Description: Ceylan is a C++ open-source library which provides basic core functionalities, listed below, and a set of optional features.
License: LGPL
Added: October 16, 2007

Chattering Pixels
www.chatteringpixels.com/products.php
Description: Memory Manager, File I/O, Sorting, Timer...
Added: September 17, 2007

File Logging Class
www.paulnettle.com
Description: This small class adds feature-rich file logging capabilities to any project. Logging hierarchy is maintained, so that recursion is represented in the log with identation, making it easy to follow code flow.
Author: Paul Nettle
License: Free
Added: September 17, 2007

Garbage Collector
www.hpl.hp.com/personal/Hans_Boehm/gc/
Description: The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. It allows you to allocate memory basically as you normally would, without explicitly deallocating memory that is no longer useful. The collector automatically recycles memory when it determines that it can no longer be otherwise accessed.
Author: Hans Boehm
License: Free
Added: September 17, 2007

Google-Sparsehash
sourceforge.net/projects/goog-sparsehash
Description: An extremely memory-efficient hash_map implementation. 2 bits/entry overhead! The SparseHash library contains several hash-map implementations, including implementations that optimize for space or speed.
License: BSD
Added: October 8, 2007

Image Debugger
billbaxter.com/projects/imdebug/
Description: A utility for simple printf-style debugging of images in Win32 C/C++ applications.
Author: William Baxter
License: Free
Added: September 17, 2007

IProf
silverspaceship.com/src/iprof/
Description: A portable industrial-strength interactive profiler for C++ and C.
License: Public domain
Added: September 17, 2007

MMGR
www.paulnettle.com
Description: MMGR is an industrial-strength memory manager for almost any project.
Author: Paul Nettle
License: Free
Added: September 17, 2007

OIS - Object-Oriented Input System
www.wreckedgames.com/wiki/index.php/WreckedLibs:OIS
License: zlib
Added: September 14, 2007

PhysicsFS
icculus.org/physfs/
Description: PhysicsFS is a library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem.
License: zlib
Added: October 31, 2004

SDL_Config
student.agh.edu.pl/%7Ekoshmaar/SDL_Config/
Description: Configuration file handling.
Author: Hubert Rutkowski
License: LGPL
Added: September 14, 2007

SQLite
www.sqlite.org
Description: SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
License: Public domain
Added: September 17, 2007

Graphical User Interfaces

CEGUI - Crazy Eddie's GUI System
www.cegui.org.uk/modules/news/
Description: 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!
License: LGPL
Platforms: Windows, Linux
Added: October 31, 2004

LibUFO
libufo.sourceforge.net
Description: LibUFO is a C++ core library for forms respectively graphical user interfaces (GUI). It is mainly used as OpenGL GUI toolkit.
License: LGPL
Added: September 17, 2007

ParaGUI
www.paragui.org
Description: ParaGUI is a cross-platform high-level application framework and GUI (graphical user interface) library and is based on the Simple DirectMedia Layer (SDL). ParaGUI is targeted on crossplatform multimedia applications and embedded devices operating on framebuffer displays.
License: LGPL
Platforms: Cross-platform
Added: October 31, 2004

SDL_Console
sdlconsole.sourceforge.net
Description: A drop down console that can be easily added to any SDL application. It is similar to Quake and other games consoles. A console gives you the ability to interact with your program in an easy way by executing predefined commands. You can also have more than one console at a time.
Authors: Garret Banuk, Boris Lesner, Clemens Wacha
License: LGPL
Platforms: All
Added: October 31, 2004

Image Handling

AfterImage
www.afterstep.org/afterimage/
Description: A generic image manipulation library. It was initially implemented to address AfterStep Window Manager's needs for image handling, but it evolved into extremely powerfull and flexible software, suitable for virtually any project that has needs for loading, manipulating, displaying images, as well as writing images in files.
Author: Sasha Vasko
Added: October 31, 2004

CImg - C++ Template Image Processing Library
cimg.sourceforge.net
Description: An open source C++ toolkit for image processing. It provides simple classes and functions to load, save, process and display images in your own C++ code.
Author: David Tschumperle
License: CeCiLL License
Platforms: Unix/X11, Windows, MacOS X, FreeBSD
Added: October 31, 2004

Corona
corona.sourceforge.net
Description: 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. With just a few lines of C++, you can add image loading to your application.
Author: Chad Austin
License: zlib
Platforms: Windows, Linux, IRIX
Added: October 31, 2004

CxImage
www.xdp.it/cximage.htm
Description: A C++ class that can load, save, display, transform images in a very simple and fast way. With more than 200 functions, and with comprehensive working demos, CxImage offers all the tools to build simple image processing applications on a fast learning curve. Supported file formats are: BMP, GIF, ICO, CUR, JBG, JPG, JPC, JP2, PCX, PGX, PNG, PNM, RAS, TGA, TIF, WBMP, WMF.
Author: Davide Pizzolato
License: zlib
Platforms: Windows, Linux
Added: January 8, 2006

DevIL
openil.sourceforge.net
Description: A fully featured cross-platform image library.
Authors: Denton Woods, Nicolas Weber, Meloni Dario
License: LGPL
Platforms: Windows, Linux, MacOS X
Added: October 31, 2004

FreeImage
freeimage.sourceforge.net
Description: The library has been designed to be extremely simple in use and supports many formats.
Authors: Herve Drolon, Floris van den Berg
License: FreeImage Open Source Dual-Licence
Platforms: Windows, Linux, MacOS X
Added: October 31, 2004

GFL SDK
perso.orange.fr/pierre.g/xnview/engfl.html
Description: GFL SDK is a free library (used by XnView) for developers who would like to support graphics image formats easily.
License: Free for non-commerical use
Added: September 17, 2007

GTL - Game Texture Loader
tgtl.sourceforge.net
Description: The Game Texture Loader is very much just as it says, a library for loading texture formats commonly used in games.
License: zlib
Added: September 17, 2007

ImageMagick
www.imagemagick.org/script/index.php
Description: ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
License: GPL-compatible license
Added: September 17, 2007

jpegxx
www.mr-edd.co.uk/?page_id=35
Description: jpegxx is a library for loading and saving JPEG compressed images.
Author: Edd Dawson
License: Boost software license version 1.0
Added: October 8, 2007

libjpeg
www.ijg.org
Added: October 31, 2004

libpng - Portable Network Graphics
www.libpng.org/pub/png/
License: zlib
Added: October 31, 2004

LibTIFF
www.remotesensing.org/libtiff/
Description: TIFF Library and Utilities.
Added: September 17, 2007

Paintlib
www.paintlib.de/paintlib/
Description: A portable C++ class library for image loading, saving and manipulation. 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. Image manipulation can be done either through filters implemented in filter classes or by directly accessing the bitmap bits.
Author: Ulrich von Zadow
Added: October 31, 2004

SDL_image
www.libsdl.org/projects/SDL_image/
Description: An image file loading library. It loads images as SDL surfaces, and supports the following formats: BMP, PNM, XPM, LBM, PCX, GIF, JPEG, PNG, TGA.
Authors: Sam Lantinga, Mattias Engdegard
License: LGPL
Added: October 31, 2004

SOIL - Simple OpenGL Image Library
lonesock.net/soil.html
Description: SOIL is a tiny C library used primarily for uploading textures into OpenGL.
License: Public domain
Added: September 17, 2007

Titan
titan.sourceforge.net
Description: For still images, Titan can load/save most varieties from .TGA, .BMP, .PCX, .PNG and .JPG.
Author: Dan Brown
License: zlib
Added: September 17, 2007

Mathematics

Blitz++
www.oonumerics.org/blitz/
Description: Blitz++ is a C++ class library for scientific computing.
License: Blitz++ Artistic License
Added: September 14, 2007

Fast Math Routines
developer.nvidia.com/object/fast_math_routines.html
Description: Collection of good fast math routines.
Author: nVIDIA
License: Free
Added: October 31, 2004

Fixed Point
www.trenki.net
Description: A small fixed point math library which consists of various functions for dealing with fixed point numbers (multiplication, division, inversion, sin, cos, sqrt, rsqrt). It also contains a C++ wrapper class which can be used to simplify working with fixed points numbers greatly. I used this fixed point number class in conjunction with my vector_math library to obtain a fixed point vector math library. Doing so made the 3D computations a lot faster compared to the floating point version.
Author: Markus Trenkwalder
Added: September 14, 2007

GLM
members.tripod.com/markus_ilmola/
Description: A math library for OpenGL with over 500 useful math functions for OpenGL.
Author: Markus Ilmola
Added: September 14, 2007

GMP
gmplib.org
Description: GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.
License: LGPL
Added: October 8, 2007

MathGL++
mathgl-pp.sourceforge.net
Description: MathGL++ is a class library for fast C++ maths for use in OpenGL C++ projects. Easy to use and similar to the OpenGL API. Matricies, Vectors, Quaternions, Linear polynomials with eigen systems are all going to be included.
Author: Jacques Gasselin
License: LGPL
Added: October 31, 2004

Mersenne Twister Random Number Generator
www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html
Description: The Mersenne Twister is an algorithm for generating random numbers. It was designed with consideration of the flaws in various other generators. The period, 2^19937-1, and the order of equidistribution, 623 dimensions, are far greater. The generator is also fast; it avoids multiplication and division, and it benefits from caches and pipelines.
Author: Rick Wagner
License: Free
Added: October 31, 2004

Vector Math
www.trenki.net
Description: The vector_math library (formerly math3d++) is a C++ 3d math library.
Author: Markus Trenkwalder
License: Free
Added: October 31, 2004

VMath - Matrix Template Class
www.paulnettle.com
Description: VMath is a powerful NxM matrix template class which includes full support for matrices, vectors, points, homogenous transforms and more.
Author: Paul Nettle
License: Free
Added: October 31, 2004

Model Handling & 3D Character Animation

Animadead
animadead.sourceforge.net
Description: Animadead is a skeletal animation library designed to load and play skeletal animations. It supports models that are composed of several swappable meshes bound to a single skeleton that can be driven by multiple animations.
Author: John Butterfield
License: LGPL
Added: January 29, 2006

Cal3d
cal3d.sourceforge.net
Description: Cal3d is a skeletal based 3d character animation library written in C++ in a platform-/graphic API-independent way.
Author: Bruno Heidelberger
License: LGPL
Platforms: Windows, SGI Irix, various flavors of Linux, Mac OS X
Added: October 31, 2004

GPUmesh
www-evasion.imag.fr/Membres/Sylvain.Lefebvre/GPUmesh/
Description: The purpose of GPUmesh is to provide developers with a simple mechanism to send geometry to the GPU.
Author: Sylvain Lefebvre
License: Free
Platforms: Windows, Linux
Added: October 31, 2004

GTS - GNU Triangulated Surface Library
gts.sourceforge.net
Description: GTS stands for the GNU Triangulated Surface Library. It provides a set of useful functions to deal with 3D surfaces meshed with interconnected triangles including collision detection, multiresolution models, constrained Delaunay triangulations and robust set operations (union, intersection, differences).
License: LGPL
Added: January 29, 2006

lib3DS
lib3ds.sourceforge.net
Description: lib3ds is a free ANSI-C library for working with the popular "3DS" 3D model format. lib3ds loads and saves Atmosphere settings, Background settings, Shadow map settings, Viewport setting, Materials, Cameras, Lights, Meshes, Hierarchy, Animation keyframes. It also contains useful matrix, vector and quaternion mathematics tools. lib3ds usually integrates well with OpenGL.
License: LGPL
Platforms: Windows, Linux, Unix
Added: October 31, 2004

libASE
interreality.org/projects/libase
Description: LibASE is a library for parsing and reading information out of ASE files, the "ASCII Scene Export" format of the 3D Studio and 3ds Max 3D modelling programs.
Author: Peter Amstutz
License: LGPL
Platforms: GNU/Linux, MacOS X
Added: October 31, 2004

NvTriStrip Library
developer.nvidia.com/object/nvtristrip_library.html
Description: NVTriStrip is a library for vertex cache aware stripification of geometry.
Author: nVIDIA
Platforms: API and OS independent
Added: October 31, 2004

Trimeshloader
trimeshloader.sourceforge.net
Description: A flexible ANSI C trimesh loader.
Author: Gero Müller
License: zlib
Added: September 14, 2007

Multimedia/Game Libraries

Allegro
www.talula.demon.co.uk/allegro
Description: Allegro is a game programming library for C/C++ developers which provides many functions for graphics, sounds, player input, and timers. It also provides fixed and floating point mathematical functions, 3D functions, file management functions, compressed datafile and a GUI.
License: Giftware License
Platforms: DOS, Unix, Windows, QNX, BeOS, MacOS X
Added: October 31, 2004

ClanLib Game SDK
www.clanlib.org
Description: ClanLib is a cross platform C++ framework. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although its not limited for that usage only.
License: LGPL
Added: October 31, 2004

PLIB - A Portable Games Library
plib.sourceforge.net
Description: PLIB includes sound effects, music, a complete 3D engine, font rendering, a simple Windowing library, a game scripting language, a GUI, networking, 3D math library and a collection of handy utility functions.
Author: Steve J. Baker
License: LGPL
Added: October 31, 2004

OSDL - Object-oriented Simple DirectMedia Layer
osdl.sourceforge.net
Description: The OSDL project has for goal to provide a free portable high-level open-source library for multimedia and game programming.
License: LGPL
Added: October 16, 2007

PopCap Games Framework
developer.popcap.com
License: Popcap License
Added: October 31, 2004

SDL
www.libsdl.org
Description: 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.
Author:  Sam Lantinga
License: LGPL
Platforms: Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX
Added: October 31, 2004

SFML - Simple and Fast Multimedia Library
sfml.sourceforge.net
Description: SFML is a free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc.
Author: Laurent Gomila
License: zlib/png
Added: October 8, 2007

Networking

High-level

Net2
www.gameprogrammer.com/net2/net2-1.html
Author: Bob Pendleton
License: LGPL
Added: September 25, 2007

OpenPlay
developer.apple.com/opensource/internet/openplay/index.html
Description: OpenPlay is a cross-platform network abstraction layer designed to simplify the task of creating programs which communicate across multiple computers.
License: Apple Public Source License
Added: September 17, 2007

OpenTNL - Torque Network Library
www.opentnl.org
Description: The Torque Network Library is a robust, secure, easy to use, cross-platform C++ networking API designed for high performance simulations and games. The network architecture in TNL has powered some of the best internet multiplayer action games to date. Whether you're writing a multiplayer game, developing a complex simulation, or just need a solid foundation for network apps, TNL will meet your needs.
License: GPL (or indie or commercial)
Added: September 25, 2007

Raknet
www.rakkarsoft.com
Description: Raknet is a cross platform C++ network library designed to allow programmers to add response time-critical network capabilities to their applications. It is mostly used for games, but is application independent.
License: Free for non-profit applications
Added: September 17, 2007

ReplicaNet
www.replicanet.com
Description: ReplicaNet is an object oriented C++ library that is engineered to help the developer of applications that require a stable and low maintenance middleware solution to networking. Any project that is designed to use a network of machines, for example multiplayer computer games, need to consider very carefully how to approach the design problems associated with networking.
License: Free for non-commerical usage
Added: September 25, 2007

Zoidcom
www.zoidcom.com
Description: The Zoidcom network library is a high-level, UDP based networking library providing features for automatic replication of gameobjects and synchronization of their states over a network connection in a highly bandwidth efficient manner.
Author: Jörg Rüppel
License: Free for non-commerical usage
Added: September 25, 2007

Low-level

DyConnect
www.junction.bafsoft.com/#dyconnect
Author: Dave Stash
License: zlib
Added: September 25, 2007

ENet
enet.bespin.org
Description: ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol). The primary feature it provides is optional reliable, in-order delivery of packets.
License: Free
Added: September 25, 2007

Etwork
www.mindcontrol.org/~hplus/etwork/
Description: Etwork is a simple message-based network library, suitable for shuffling messages between a server and many clients, either using realiable, in-order delivery (TCP) or unreliable, out-of- order, possibly-duplicated delivery (UDP).
Author: Jon Watte
License: MIT
Added: September 25, 2007

HawkNL - Hawk Network Library
www.hawksoft.com/hawknl/
Description: HawkNL is a fairly low level API, a wrapper over Berkeley/Unix Sockets and Winsock.
License: LGPL
Added: September 17, 2007

libcurl
curl.haxx.se/libcurl/
Description: libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more.
License: curl license
Added: September 25, 2007

Pegasus Network Library
plib.sourceforge.net/net/index.html
Description: Pegasus is a C++ library for making networked games. Pegasus is based on Medusa and is part of PLIB. Pegasus, like Medusa, runs as a single process, multiplexing I/O with its various client and server connections within a single process/thread.
Author: Steve J. Baker
License: LGPL
Added: October 31, 2004

SDL_net
www.libsdl.org/projects/SDL_net/
Description: This is a small sample cross-platform networking library, with a sample chat client and server application. The chat client uses the GUIlib GUI framework library.
Authors: Sam Lantinga, Roy Wood, Masahiro Minami
License: LGPL
Platforms: All platforms supported by SDL.
Added: October 31, 2004

Physics

Bullet
www.continuousphysics.com/Bullet/
Description: Bullet is a 3D Collision Detection and Rigid Body Dynamics Library for games and animation.
License: zlib
Added: September 14, 2007

EZPhysics - Physical Rigging
www.ezphysics.org
License: LGPL
Added: September 25, 2007

Flatland
flatland.sourceforge.net/
Description: Flatland is an object-oriented 2D collision library.
License: BSD
Added: September 14, 2007

Newton Game Dynamics
www.physicsengine.com
Description: Newton Game Dynamics is an integrated solution for real time simulation of physics environments. The API provides scene management, collision detection, dynamic behavior and yet it is small, fast, stable and easy to use.
License: Newton Game Dynamics SDK Setup License
Platforms: Windows, Linux, MacOS X
Added: October 31, 2004

OPAL
ox.slug.louisville.edu/~o0lozi01/opal_wiki/index.php/Main_Page
Description: OPAL is a high-level interface for low-level physics engines used in games, robotics simulations, and other 3D applications. Features a simple C++ API, intuitive objects (e.g. Solids, Joints, Motors, Sensors), and XML-based file storage for complex objects.
Added: October 31, 2004

Open Dynamics Engine
www.ode.org
Description: 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.
Author: Russell Smith
License: BSD
Platforms: Windows
Added: October 31, 2004

Physical
physical.alecrivers.com
Description: Physical is a game creation system based on the foundation of an innovative 2D physics engine.
Author: Alec Rivers
License: Free
Added: January 29, 2006

PhysX (formerly Novodex)
www.ageia.com/developers/downloads.html
Description: AGEIA's PhysX Technology revolutionizes physics simulation with technologies designed for the future of console and PC gaming. The advances in next generation consoles and PC processors are staggering. The future is in multi-threaded, asynchronous, massively parallel-processing architectures.
Author: AGEIA
License: Free for non-commerical use
Platforms: Windows
Added: October 31, 2004

Tokamak Game Physics
www.tokamakphysics.com
Description: Tokamak Game Physics SDK is a high performance real-time physics library designed specially for games. It has a high-level, simple to use programming interface. With Tokamak, game developers and designers are empowered to produce the next generation of interactive games.
License: Free
Platforms: Windows
Added: October 31, 2004

True Axis Physics SDK
www.trueaxis.com
Description: The True Axis Physics SDK is a fast and solid real world physics simulation system designed for demanding games and virtual interactive environments.
Authors: TRUE AXIS PTY LTD, Australia
License: Free for non-commercial use
Platforms: Windows
Added: January 29, 2006

OpenGL

Cpw
www.mathies.com/cpw/about.html
Description: Cpw is a application framework library for OpenGL applications and games. It is designed with speed, simplicity, and portability in mind.
Author: Jim Mathies
License: Free
Added: October 6, 2007

FreeGLUT
freeglut.sourceforge.net
Description: FreeGLUT is a completely OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library which allows the user to create and manage windows containing OpenGL contexts on a wide range of platforms and also read the mouse, keyboard and joystick functions.
Author: Originally written by Pawel W. Olszta with contributions from Andreas Umbach and Steve Baker
License: X-Consortium License
Added: October 31, 2004

FTGL
homepages.paradise.net.nz/henryj/code/index.html
Description: A font rendering library for OpenGL.
Author: Henry Maddock
License: LGPL
Added: September 14, 2007

GLFT_Font
www.cs.rit.edu/%7Ejpt2433/glftfont/
Description: GLFT_Font allows programmers to use fonts in their OpenGL applications with great ease on any platform for which both FreeType2 and OpenGL are available.
Authors: James Turk, Marijn Haverbeke
License: zlib
Added: September 14, 2007

GLFW
glfw.sourceforge.net
Description: Free, open source, portable framework for OpenGL application development. In short, it is a link library that constitutes a powerful API for handling operating system specific tasks, such as opening an OpenGL window and reading keyboard, mouse and joystick input.
Author: Marcus Geelnard
License: zlib
Platforms: Windows, Linux, IRIX, FreeBSD, Solaris, QNX, MacOS X, AmigaOS, MS-DOS
Added: October 31, 2004

GLH - Graphics Library Helper
www.geocities.com/vmelkon/glhlibrary.html
Description: glh is kind of like OpenGL's GLU but contains extra functions and optimized functions.
Author: Vrej Melkonian
License: Free
Added: March 28, 2005

Ivf++ - Interactive Visualisation Framework
gorkon.byggmek.lth.se/ivfweb/
Authors: Jonas Lindemann, Carl-Johan Lejdfors, Pierre Olsson
License: LGPL
Added: October 31, 2004

LibUFO
libufo.sourceforge.net
Description: LibUFO is a C++ core library for forms respectively graphical user interfaces (GUI). It is mainly used as OpenGL GUI toolkit.
License: LGPL
Added: September 17, 2007

OpenGL Window Framework
oglwfw.sourceforge.net
Description: Framework for creating and controlling windows capible of holding an OpenGL rendering context in it.
Author: Rob Jones
License: zlib
Added: October 31, 2004

OpenGLUT
openglut.sourceforge.net
Description: OpenGLUT is an open source project to evolve the GLUT (OpenGL Utility Toolkit) C/C++ API. OpenGLUT uses the freeglut code base as a foundation for extending, enhancing and refining the API.
Authors: Richard Rauch, Nigel Stewart, John F. Fay
Added: October 31, 2004

SDL
www.libsdl.org
Description: 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.
Author:  Sam Lantinga
License: LGPL
Platforms: Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX
Added: October 31, 2004

SOIL - Simple OpenGL Image Library
lonesock.net/soil.html
Description: SOIL is a tiny C library used primarily for uploading textures into OpenGL.
License: Public domain
Added: September 17, 2007

OpenGL Extension Handling

GLee
elf-stone.com/glee.php
Description: The OpenGL Easy Extension library (GLee) makes life easier for OpenGL developers by automatically linking OpenGL extensions and core functions at initialisation time. This saves programmers the effort of manually linking every required extension, and effectively brings the OpenGL library up to date.
Author: Ben Woodhouse
Added: October 31, 2004

GLEW - The OpenGL Extension Wrangler Library
glew.sourceforge.net
Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file.
License: BSD
Added: October 31, 2004

OglExt
www.julius.caesar.de/oglext/
Description: OglExt is a free OpenGL extension library, enabling the easy access of all functionality up to OpenGL version 1.5 as well as API functions of more than 200 OpenGL extensions.
Author: Research Center Caesar
License: LGPL
Added: October 31, 2004

Scripting Languages

Angelcode Scripting Library
www.angelcode.com/angelscript/
Author: Andreas Jönsson
License: zlib
Added: September 13, 2007

GameMonkey Script
www.somedude.net/gamemonkey/
Description: GameMonkey is a embedded scripting language that is intended for use in game and tool applications. GameMonkey is however suitable for use in any project requiring simple scripting support. GameMonkey borrows concepts from Lua (www.lua.org), but uses syntax similar to C, making it more accessible to game programmers. GameMonkey also natively supports multithreading and the concept of states.
Authors: Matthew Riek, Greg Douglas
License: MIT
Added: September 13, 2007

Lua
www.lua.org/
Description: Lua is a powerful, fast, light-weight, embeddable scripting language.
License: MIT
Added: September 13, 2007

Python Programming Language
www.python.org
Added: September 13, 2007

Ruby
www.ruby-lang.org/en/
Description: A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
Added: September 13, 2007

Squirrel
squirrel-lang.org
Description: Squirrel is a high level imperative/OO programming language, designed to be a powerful scripting tool that fits in the size, memory bandwidth, and real-time requirements of applications like games.
License: zlib
Added: September 13, 2007

SDL - Simple DirectMedia Layer

OSDL - Object-oriented Simple DirectMedia Layer
osdl.sourceforge.net
Description: The OSDL project has for goal to provide a free portable high-level open-source library for multimedia and game programming.
License: LGPL
Added: October 16, 2007

SDL
www.libsdl.org
Description: 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.
Author:  Sam Lantinga
License: LGPL
Platforms: Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX
Added: October 31, 2004

SDL_Console
sdlconsole.sourceforge.net
Description: A drop down console that can be easily added to any SDL application. It is similar to Quake and other games consoles. A console gives you the ability to interact with your program in an easy way by executing predefined commands. You can also have more than one console at a time.
Authors: Garret Banuk, Boris Lesner, Clemens Wacha
License: LGPL
Platforms: All
Added: October 31, 2004

SDL_draw
sdl-draw.sourceforge.net
Description: SDL_draw is a simple library to draw basic elements, like points, lines and circles, on SDL surfaces.
Authors: Mario Palomo, José de la Huerga, Pepe González
License: LGPL
Added: October 8, 2007

SDL_image
www.libsdl.org/projects/SDL_image/
Description: An image file loading library. It loads images as SDL surfaces, and supports the following formats: BMP, PNM, XPM, LBM, PCX, GIF, JPEG, PNG, TGA.
Authors: Sam Lantinga, Mattias Engdegard
License: LGPL
Added: October 31, 2004

SDL_mixer
www.libsdl.org/projects/SDL_mixer/
Description: A sample multi-channel audio mixer library.
Authors: Sam Lantinga, Stephane Peter, Ryan Gordon
License: LGPL
Platforms: Windows, MacOS X, Linux
Added: October 31, 2004

SDL_net
www.libsdl.org/projects/SDL_net/
Description: This is a small sample cross-platform networking library, with a sample chat client and server application. The chat client uses the GUIlib GUI framework library.
Authors: Sam Lantinga, Roy Wood, Masahiro Minami
License: LGPL
Platforms: All platforms supported by SDL.
Added: October 31, 2004

SDL_sound
icculus.org/SDL_sound/
Description: SDL_sound is a library that handles the decoding of several popular sound file formats, such as .WAV and .MP3.
Author: Ryan C. Gordon
License: LGPL
Platforms: Windows, Linux, MacOS X, FreeBSD, BeOS
Added: October 31, 2004

SDL_ttf
www.libsdl.org/projects/SDL_ttf/
Description: This is a sample library which allows you to use TrueType fonts in your SDL applications. It comes with an example program "showfont" which displays an example string for a given TrueType font file.
Author: Sam Lantinga
License: LGPL
Added: October 8, 2007

XML

Expat XML Parser
expat.sourceforge.net
Description: Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document.
License: LGPL
Platforms: Cross-platform
Added: October 31, 2004

ezXML
ezxml.sourceforge.net
Description: ezXML is a C library for parsing XML documents inspired by simpleXML for PHP. As the name implies, it's easy to use. It's ideal for parsing XML configuration files or REST web service responses. It's also fast and lightweight (less than 20k compiled).
Author: Aaron Voisine
License: MIT
Added: January 29, 2006

irrXML
www.ambiera.com/irrxml/index.html
Description: irrXML is a simple and fast open source xml parser for C++.
Author: Nikolaus Gebhardt
License: irrXML License
Added: September 17, 2007

Libxml2
www.xmlsoft.org
Description: A XML C parser and toolkit developed for the Gnome project.
License: MIT
Platforms: Linux, Unix, Windows, CygWin, MacOS, MacOS X, UNIX, OS/2
Added: October 31, 2004

TinyXml
www.grinninglizard.com/tinyxml/index.html
Description: A simple, small, C++ XML parser that can be easily integrating into other programs.
Author: Lee Thomason
License: zlib
Added: October 31, 2004

Xerces-C++
xerces.apache.org/xerces-c/
Description: Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data.
License: Apache Software License
Added: September 17, 2007

XMLite
www.codeproject.com/cpp/xmlite.asp
Description: Easy to access and simple XML parser.
Author: Kyung-min Cho
Platforms: Windows
Added: October 31, 2004

Unsorted

The Demo Effect Collection
demo-effects.sourceforge.net
Description: This is not only a collection of demo effects from the early days of the demo scene (for instance the Amiga demo scene in the late eighties ) but also a multi-layered run-time pluggable demo effects system, with support for filters and transition effects. which can be used to create demo's.
Author: W.P. van Paassen
License: GPL
Platforms: Windows, any Unix flavoured OS
Added: October 31, 2004

Hermes
www.clanlib.org/hermes/
Description: Hermes is a pixel conversion library. Its only purpose is to take a buffer full of pixels and convert it into a target buffer full of pixels. The two can differ both in size and in format. Hermes is primarily intended for fast graphics display and it is optimized for that.
License: LGPL
Added: October 31, 2004

libavg
www.libavg.de
Description: libavg is an effort to do for multimedia installations what the Gimp did for image editing.
Author: Ulrich von Zadow
Platforms: Linux
Added: October 31, 2004

libsigc++
libsigc.sourceforge.net
Description: libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual.
Authors: Tero Pulkkinen, Karl Nelson, Murray Cumming, Martin Schulze
License: LGPL
Platforms: Windows, Linux, Unix
Added: January 8, 2006

METIS - Serial Graph Partitioning and Fill-reducing Matrix Ordering
glaros.dtc.umn.edu/gkhome/metis/metis/overview
Description: METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices.
Author: George Karypis
License: Free
Added: October 30, 2007

Loki
sourceforge.net/projects/loki-lib/
Description: A C++ library of designs, containing flexible implementations of common design patterns and idioms.
License: MIT
Platforms: Portable
Added: January 29, 2006

overLIB
www.bosrup.com/web/overlib/
Description: overLIB is a JavaScript library created to enhance websites with small popup information boxes (like tooltips) to help visitors around your website.
License: Clicketyclick
Added: October 31, 2004

Particle System API
www.cs.unc.edu/~davemc/Particle/
Description: The Particle System API allows you to easily include dynamic simulations of groups of moving objects. This is especially useful for eye candy in games, virtual environments and other interactive graphics apps, but can also be used in off-line animation software.
Author: David K. McAllister
Platforms: Windows
Added: October 31, 2004

Pixel Toaster
www.pixeltoaster.com
Description: Open Source C++ library for realtime software rendering.
Author: Glenn Fiedler
Added: October 31, 2004

SPL - Simple Plugin Layer
www.unitedbytes.de/go.php?site=spl
Description: The SPL (Simple Plugin Layer) library is an open source SDK for plugin development. With SPL you can extend every application written in C/C++ to use your own plugins, SPL will do all the managing, loading and unloading stuff for you. Additionally, the whole framework is fully multi-platform capable, so you don't have to develop multiple versions of the same plugin for platforms provided by SPL.
Author: United Bytes
License: LGPL
Platforms: Windows, Linux, Solaris
Added: October 31, 2004 
//z 2015-07-30 15:24:34 L.154'30926 BG57IV3@XCL T3752479411.K.F1370514324[T81,L7803,R301,V7813]

OpenGL實用開源代碼列表

有了網絡的最大好處就是可以資源共享。網絡是最大的知識庫,也是最好的老師,正所謂“沒有你想不到的,只有你找不到的”。以下是我收集的以遊戲編程,OpenGL 3D編程相關的免費擴展庫資料。不斷更新中,如果你有好的建義,也請把函數庫名及大概功能寫上,本人負責收集整理。免費共享

SDL

在3D的世界裏,SDL可真所胃是大名頂頂,正所謂“爲人不知陳近南,自稱英雄也枉然”,因此呢,如果你是做OpenGL開發的,一定要認識一下SDL。我們都知道,在windows系統中,有一個DirectX是遊戲開發商的首選的開發包,其背後只支持的Direct3D作爲三維圖形接口。而SDL就被認爲是非window系統中的DirectX,而且是開源的。SDL所使用的3D圖形接口是OpenGL。但除了圖形之外,它還支持對聲音、鍵盤、鼠標、操縱桿、2D圖像等等的底層處理。現在已有不少遊戲使用這個開發包進行開發。

SDL是跨平臺的,目前支持的系統有:Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX

SDL 是用C語言寫的,但是能很好地兼容C++語言。並且能被其它語言綁定使用,如: Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, and Smalltalk.

SDL發佈支持GNU LGPL v2.0 許可協議。也就是說SDL可以免費用於商業應用。

http://www.libsdl.org/index.php

glew(OpenGL Extension Wrangler Library )

GLEW是一個跨平臺的C++擴展庫,基於OpenGL圖形接口。使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵數,但OpenGL現在都發展到2.0以上了,要使用這些OpenGL的高級特性,就必須下載最新的擴展,另外,不同的顯卡公司,也會發布一些只有自家顯卡才支持的擴展函數,你要想用這數涵數,不得不去尋找最新的glext.h,有了GLEW擴展庫,你就再也不用爲找不到函數的接口而煩惱,因爲GLEW能自動識別你的平臺所支持的全部OpenGL高級擴展涵數。也就是說,只要包含一個glew.h頭文件,你就能使用gl,glu,glext,wgl,glx的全部函數。GLEW支持目前流行的各種操作系統(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)。

下載:http://glew.sourceforge.net/

ShaderGen 提供簡單的UI接口讓你可以產生固定管線(Fixed Pipeline)的Shader.如果你對Shader不熟悉的話,這是一個不錯的入門工具.詳細網址如下:
http://developer.3dlabs.com/downloads/shadergen/

NVSG

The NVIDIA Scene Graph Software Development Kit (NVSGSDK) is an object-oriented programming library for creating scenegraph-based applications. The NVSGSDK provides a comprehensive set of classes that developers can easily combine and extend to create fast and reliable graphics applications.

CG_GL

CG_GL is OpenGL API-based open source engine for creating 3D effects. The new release adds depth-of-field with lens blur, and motion blur using shaders. Older version of the engine work on GeForce4 and support full screen blur, transparent object distortion, and glow. Engine is available here: http://tweety3d.no-ip.org. There are also other 3D related programs.

OpenSteer for AI. [MIT license]
Fluid Studios provides a memory manager, matrix class, font generator, radiosity processor, and various other things.
Panda3D (Game/graphics lib, released by Disney after being used for Toontown Online)
math3d++ provides the normal matrix, vector and quaternion classes, and their associated operations.
BMF_Font bitmap font library (and font texture generator)
OpenSceneGraph - 3D engine.
Demeter Terrain Engine [LGPL]

OGLWFW (OpenGL Window Framework) and basically does what it says on the tin, acts as a framework to create OpenGL windows. here

ARToolKit An augmented reality toolkit, works really nice and very fun to play with. Documentation is still in the works though so you will have to do with the examples.
MXRToolKit I haven't used this one but it appears to offer about the same as ARToolKit except it comes with documentation.
MathGL++ MathGL++ is a class library for fast C++ maths for use in OpenGL C++ projects. Easy to use and similar to the OpenGL API. Matricies, Vectors, Quaternions, Linear polynomials with eigen systems are all going to be included.

ManagedGL - The cross-platform .NET game library. Development ManagedGL 1 is stalled in faviour of ManagedGL 2. Currently mostly 2D graphics.

LibUFO GUI library (for OpenGL) [LGPL] 一個基於OpenGL的界面庫
Crazy Eddie's GUI (another GUI lib)另一個比較有名氣的遊戲界面庫,被OGRE遊戲引擎收錄使用。

HGE is a greate library for creating hardware accelerated 2D games for windows that is free for freeware games.

Novodex under physics libraries, free for non-commercial use.一個物理引擎,現在被收購了,改名爲:PhysX

Pixel Toaster
http://www.pixeltoaster.com/
Open source c++ library for realtime software rendering.
It gives you a truecolor or floating point framebuffer at your choice, then converts the pixels to the display on the fly. Keyboard and mouse input, and a high resolution timer are also provided.
Currently supports only Windows (DirectX9), but ports to MacOS X and Unix (XWindows etc) are underway.

PTK . PTK is a great Mac/Windows 2d library running on top of OpenGL (so it's fast). It's free for freeware but it does have a PTK Watermark in the corner

MMXRand Almost twice as fast as the original Wagner's C++ code using Pentium MMX instruction by Matthew Bellew:
Tao Framework - .Net libraries for Cg, DevIL, FreeGLUT, ODE, OpenAL, OpenGL, and SDL.
OPAL - Open Physics Abstraction Layer, currently wraps just ODE I think but could be adapted to use other libraries. Choice of BSD or LGPL license.

Blitz++ (math library for C++)

PortAudio does cross-platform audio output and input using callbacks.

GLFTFont - zlib license
Not exactly a library, but a simple class that bridges freetype and OpenGL allowing drawing of truetype fonts in OpenGL. It's functionality is requested often enough I figured I'd release it

Object-Oriented Input System (OIS)
OIS is a library for cross-platform input management. It is under the zlib/libpng license. The library supports keyboard, mouse, and joystick/gamepad input. Action mapping is included in one of the demos, and force feedback is planned for the 0.4.0 release (currently in development).

libMikMod is a audio module player and library supporting many formats, including mod, s3m, it, and xm. Originally a player for MS-DOS, MikMod has been ported to other platforms, such as Unix, Macintosh, BeOS, and Java. libMikMod falls under the LGPL agreement.

GLM - a Math Library for OpenGL

http://members.tripod.com/markus_ilmola

This library contains useful math functions that are needed when

programming with OpenGL. Mostly vector and matrix math.

GIMPACT : Collision detection library.
http://gimpact.sourceforge.net/


============================================
目錄
General purpose libraries

AgateLib (.NET library)

(MPL)

Alchemist's Game Library (2D game engine)

(Free for non-commercial use)

Allegro

(giftware)

Amaltheia (game programming API)

LGPL

Basic Game Library (Docs in Spanish?)

Creative Commons

DXGame (Visual Basic 6, 2D game engine/toolkit)

("100% free to use"), but check for details

IKA (generic gaming engine)

('free')

ClanLib

LGPL

CRM32Pro multimedia SDK

(free, with sub-libraries under LGPL etc)

Devlib

LGPL

Game Incubator

free

GLFW

ZLIB

Goblin 2D+ Engine

(free for noncommercial, commercial licenses available for purchase)

Golden T Game Engine (Java)

(free to use, but requires credit)

KJAPI

(free for non commercial projects)

MASI-CiX 2D sprite-based game platform

(free for noncommercial, negotiate for commercial)

PLIB General purpose library.

LGPL

Popcap 2D library with extras.

(Popcap license)

Proyecto dx_lib32 Spanish language. VB6.

Free

PTK

(free for freeware, commercial license otherwise)

Realmforge (in C#)

LGPL

SDL

LGPL

SDL.NET

LGPL

SxDL 2D and 3D.

GPL

The Tao Framework (various libs ported to .Net)

(various/MIT)

3D Graphics

Amanith (vector graphics)

(QPL)

Antiryad GX

(various licenses depending on chosen usage, but free for freeware)

Apocalyx

GPL

ARToolkit

GPL (or commercial)

Axiom (OGRE in C#)

LGPL

CG

(free)

Crystal Space

LGPL

Cube

(slightly modified zlib)

Delta3D

LGPL

Demeter terrain engine

LGPL

ExNihilo

(unknown)

Fly3D

GPL

FTGL (fonts in OpenGL)

LGPL

G3D

BSD

Genesis3D

(similar to GPL)

Ghost (glut-like)

(Dual license - BL and GPL

GLee

BSD-like

Graphics Library Helper (like GLU)

(freeware)

Heretic/Hexen

(free for non-profit use)

Interactive Visualisation Framework

LGPL

Irrlicht

ZLIB

LightFeather

ZLIB

MXR Toolkit

GPL

The Nebula Device

(free license)

NeoEngine

(MPL)

NGL (glut-like framework)

LGPL

NVIDIA Scene Graph SDK

(free to use)

OGRE 3D

LGPL

OpenGlean

MIT

OpenGlut

MIT

FreeGlut

MIT

OpenGL Window Framework

ZLIB

OpenSceneGraph

(OpenSceneGraph licence, like LGPL)

OpenSG

LGPL

Panda 3D

(free)

Qhull

(free?)

QuakeForge

GPL

XEngine

ZLIB

Yake

(LGPL, custom licenses)

2D Graphics

AntTweakBar (GUI for DX/OGL)

ZLIB

Crazy Eddie's GUI System

LGPL

Eclipse

LGPL

Endogine sprite engine (C#)

("no restrictions on the use")

GameVision SDK

(unknown license)

HGE

(free for non-commercial, otherwise pay)

hxrender - docs here

ZLIB

Kyra LGPL

ManagedGL (C#/.NET/SDL)

LGPL

ParaGUI (for SDL)

LGPL

Saq2D (C#)

"free to use for personal/commercial use"

TinyPTC (open source)

LibUFO (gui, for OpenGL etc)

LGPL

zEngine

BSD

Video

Dirac

(MPL)

FFmpeg

(open source)

Theora

('BSD-like')

XviD

GPL

Image and Font Handling

BFont

LGPL

BMF_font (bitmap fonts in OpenGL)

LGPL

CImg

(CeCill license)

Corona

ZLIB

CxImage

ZLIB

DevIL

LGPL

FreeImage

(GPL, FIPL)

GFL SDK

(free for non-commercial use)

GLFT_Font

ZLIB

GTL (Game Texture Loader)

ZLIB

IJG (jpeg library)

(free?)

ImageMagick

(apache-style license)

libPNG

(libPNG license)

libTiff

(free?)

Paintlib

(free, must give credit)

SDL_image

LGPL

SFont

(choose LGPL or GPL)

Titan

ZLIB

Sound + Music

Audiere

LGPL

BASS

(Free for freeware projects, otherwise commercial)

FMOD

(Free for freeware projects, otherwise commercial)

Hekkus Sound System

(For WinCE/Win32/Symbian and .NET.) (Free use, but credit or donation required.)

libMikMod

LGPL

libsndfile

LGPL

Ogg Vorbis

BSD-like

OpenAL

(?)

PortAudio

essentially free

SDL_mixer (requires SDL)

LGPL

SDL_sound (requires SDL)

LGPL

Networking
Low level

Dyconnect

ZLIB

Enet

free use

HawkNL

LGPL

libCURL (URL transfer)

Curl license

SDL_net

LGPL

Lidgren.Library.Network (.NET/C#)

Unspecified license - contact author

High-level

Nevrax/NEL

(GPL?)

Net2

LGPL

OpenPlay

(Apple Public Source License)

OpenTNL

GPL , or commercial

RakNet

GPL , or free by application

ReplicaNet

Free for freeware, otherwise commercial

Zoidcom

Free for noncommercial, otherwise contact author

Unknown

Game Network Engine

LGPL

Model Handling and Character Animation (3D)

Animadead

LGPL

Cal3D

LGPL

GPUMesh

(free)

GNU Triangulated Surface Library

LGPL

LibASE

LGPL

lib3DS

LGPL

Filesystems, persistence, and format parsing

bzip2

(free)

Crypto++

free, but note possible crypto. legal issues

ezXML

MIT

libXML

MIT

LZMA (7-Zip compression)

LGPL or CPL

LZO

GPL

PhysFS

zlib

SDL_Config

LGPL

SQLite

(public domain)

TinyXML

zlib

Unrarlib

free for non-commercial, otherwise GPL

ZipArchive

GPL , or pay for commercial license

zipstream, bzip2stream (iostream wrappers for the zlib and bzip2 libraries)

ZLIB

zlib

ZLIB

zziplib

LGPL /MPL

Scripting Languages

AngelScript

ZLIB

BOO (Reqs .NET/CLI)

MIT/BSD style

CInt (C interpreter)

free, reg. required for commercial use

EosScript

LGPL

GameMonkey

MIT

GS9

'free' for any use

Guile

Modified GPL - almost LGPL

IO

BSD

Javascript

(presumably Mozilla license)

Lua

MIT

Perl

Artistic license

Tcl

free

Python

free

Ruby

Ruby license

Small

ZLIB

Squirrel

ZLIB

VBScript

'license at no charge'

Artificial Intelligence

FEAR

GPL , other

OpenSteer

MIT

PathLib

(old, mainly Czech)

Mathematics, Physics and Collision Detection
Mathematics

Blitz++

GPL or Blitz Artistic License)

GLM (OpenGL helpers)

free?

Math3D++ (vectors, quaternions)

free?

MathGL++ (Matrices, Vectors, Quaternions, Linear polynomials with eigen systems)

LGPL

Mersenne Twister random number generator

free

VMath (NxM matrix template class)

free

Physics

Flatland (2D physics)

BSD

Newton Game Dynamics

Free, but must notify creators

Novodex

free for noncommercial, contact for commercial

Open Dynamics Engine (ODE)

BSD

Open Dynamics Framework

free for both commercial and non-commercial use

OPAL

BSD or LGPL - please check

Physical

(free)

Plane2D (for ODE)

presumably BSD also

Tokamak

free

True Axis

free for non-commercial use

Collision detection:

ColDet

LGPL

GImpact

LGPL /BSD-like

Opcode

free usage

Rapid

free for non-commercial use

Solid

LGPL

V-Collide

free for non-commercial use

Debugging, memory checks, general purpose, etc

Boost (C++ smart pointers, parsers, random numbers, quaternions, and more)

Boost license

Chattering Pixels libraries (memory, I/O, sorting, timers)

Free for noncommercial use, shareware and commercial licenses also available

ElectricFence

GPL

Fluid Studios Logger

free

Hans Boehm garbage collector for C++

free use, no warranty

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

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

boost
loki
open gl win frame
gen library
AI lib
game graphics lib
same as previous
math 3D lib
3D engine
terain engine
reality toolkit
another as previous
math gl
gui lib
croll platform 2D text
harware acc
phisics
phisics again
realtime rendering
unti testing
2d lib
3d font lib
math lib
font lib
compresion lib
image loading
tif image loading
VR
triagulae surface lib
tokamak phisics
random numbers
glh lib
Cg
ogre .net
hex render
SDL collide
compresion lib
java game engine
FBX SDK
zip handler
3D Editor anfd BSP Compiler

轉自http://blog.csdn.net/huawenguang/archive/2006/11/18/1393904.aspx
//z 2015-07-30 15:24:34 L.154'30926 BG57IV3@XCL T3752479411.K.F1370514324[T81,L7803,R301,V7813]

C++經典開發源代碼

轉:C++ 經典開源代碼

在如下的庫支持下,開發的系統可以很方便移植到當前大部分平臺上運行
而無需改動,只需在對應的平臺下 用你喜歡的編譯器 重新編譯即可

經典的C++庫
   STLport-------SGI STL庫的跨平臺可移植版本,在以前有些編譯器離符合
         標準比較遠的情況下 那時還是有用的,當然目前vc71已經比較接近標準了,
         故目前不怎麼用它了。
   Boost---------準標準庫, 功能強大 涉及能想的到的大部分非特別領域的算法,
         有一個大的C++社區支持
   WxWindows-----功能強大的跨平臺GUI庫  ,它的功能和結構都類似 MFC,故原則上
      可以通過WxWindows把現有MFC程序移植到非Win平臺下
   Blitz---------高效率的數值計算函數庫 ,你可以訂製補充你需要的算法
   Log4cpp-------日誌處理  ,功能類似java中的log4j
   ACE-----------自適應通訊環境, 重量級的通訊環境庫。
   Crypto++ -----加/解密算法庫, 非常專業的C++ 密碼學函式庫
   CppUnit  ---  一個c++的單元測試框架  類似 java  的JUnit
   Loki -------  一個實驗性質的庫,嘗試把類似設計模式這樣思想層面的東西通過
        庫來提供,他是C++的一個模板庫,系C++"貴族", 它把C++模板的功能發揮到了極致

學術性的C++庫:
   FC++ --------The Functional C++ Library  ,用庫來擴充語言的一個代表作 ,模板庫
   CGAL ------- Computational Geometry Algorithms Library計算幾何方面的大部分重要的
     解決方案和方法以C++庫的形式提供給工業和學術界的用戶。

其它目前我感覺還不是很爽的C++庫:
   Doxygen  ----註釋文檔生成工具 ,可恨的是 我找不到 windows版本
   QT ----------大名頂頂的一個多平臺的C++圖形用戶界面應用程序框架(GUI庫)
          可氣的是他的 Windows版 是商業發佈的要付費
   xml4c--------IBM開發的XML Parser,系超重量級的, 適用大型應用中, 其DLL有 12M,恐怖吧
   Xerces c++ --Apache的XML項目, 但 只支持少數的字符編碼,如ASCII,UTF-8,UTF-16等,
           不能處理包含中文字符的XML文檔
   XMLBooster -----  也是一種  XML的 解析工具
   Fox   -------又一種開放源代碼(C++)的GUI庫,功能不是很強

C++開發環境(Win平臺下除了 Visual C++ 和 Borland C++以外的):
   Cygwin  --------Windows下的一個Unix仿真環境
   MinGW   --------GCC的一個Windows移植版本
   Dev C++ -------- 一個C/C++ 的集成開發環境,在Windows上的C++編譯器一直和標準有着一
        段距離的時候,GCC就是一個讓Windows下開發者流口水的編譯器。
   Eclipse-CDT  ----IMB 開發的一個集成開發環境,一般用來作爲Java 開發環境,但由於
         Eclipse 是通過插件體系來擴展功能,這裏我們 安裝 CDT插件後,就可以用來作爲
         C++ 的集成開發環境

-----------------------------------------------------------------------------------------
經典的C++庫
-----------------------------------------------------------------------------------------
以下以 vc71環境 爲例,其他環境 見各軟件包的說明文檔。

1.  STLport (SGI STL庫的跨平臺可移植版本。)
    -------http://www.stlport.org

vc71環境中編譯安裝
版本:STLport-4.6.2.tar.gz
copy vc71.mak makefile
nmake clean all

頭文件在 %STLport_root%/include\stlport
庫文件在 %STLport_root%/lib

頭文件添加方法如:
#i nclude   需要鏈接lib庫

2  WxWindows  (跨平臺的GUI庫)
       --------http://www.wxwindows.org
       --------http://sourceforge.net/projects/wxwindows
       --------http://i18n.linux.net.cn/others/wxWindowstut/wxTutorial.html

  因爲其類層次極像MFC,所以有文章介紹從MFC到WxWindows的代碼移植以實現跨平臺的功能。
通過多年的開發也是一個日趨完善的GUI庫,支持同樣不弱於前面兩個庫。並且是完全開放源代碼的。新近
的C++ Builder X的GUI設計器就是基於這個庫的。

vc71環境中編譯安裝
  版本:wxMSW-2.6.0-Setup.exe
  copy makefile.vc makefile
  通過 配置 config.vc 的 SHARED = 0 和 BUILD = debug
  確定 nmake clean all 的四種編譯結果:

include頭文件: include\wx
Lib庫文件:  lib\vc_dll  和 lib\vc_lib
DLL: lib\vc_dll

頭文件在 %wxWidgets_root%/include\wx
庫文件在 %wxWidgets_root%/lib\vc_dll  和 %wxWidgets_root%/lib\vc_lib

頭文件添加方法如:
#i nclude   需要鏈接lib庫

3   boost  (“準”標準庫)
   ------http://www.boost.org/
   ------http://sourceforge.net/projects/boost/

    Boost庫是一個經過千錘百煉、可移植、提供源代碼的C++庫,作爲標準庫的後備,是C++標準化進程
的發動機之一。 Boost庫由C++標準委員會庫工作組成員發起,在C++社區中影響甚大,其成員已近2000人
。 Boost庫爲我們帶來了最新、最酷、最實用的技術,是不折不扣的“準”標準庫。

vc71環境中編譯安裝
  版本:boost_1_32_0.exe

首先進入 tools\build\jam_src 運行 build.bat  得到一個工具: bjam.exe
將其複製到 boost_root 目錄下
執行 bjam "-sTOOLS=vc-7_1" stage 開始編譯  (bjam "-sTOOLS=vc-7_1" install)

頭文件在 %boost_root%/boost
庫文件在 %boost_root%/stage\lib

頭文件添加方法如:
#i nclude   有時要鏈接lib庫

Boost中比較有名氣的有這麼幾個庫:
Regex
正則表達式庫
Spirit
LL parser framework,用C++代碼直接表達EBNF
Graph
圖組件和算法
Lambda
在調用的地方定義短小匿名的函數對象,很實用的functional功能
concept check
檢查泛型編程中的concept
Mpl
用模板實現的元編程框架
Thread
可移植的C++多線程庫
Python
把C++類和函數映射到Python之中
Pool
內存池管理
smart_ptr
    5個智能指針,學習智能指針必讀,一份不錯的參考是來自CUJ的文章:
Smart Pointers in Boost,哦,這篇文章可以查到,CUJ是提供在線瀏覽的。

    Boost總體來說是實用價值很高,質量很高的庫。並且由於其對跨平臺的強調,對標準C++的
強調,是編寫平臺無關,現代C++的開發者必備的工具。但是Boost中也有很多是實驗性質的東西,
在實際的開發中實用需要謹慎。並且很多Boost中的庫功能堪稱對語言功能的擴展,其構造用盡精
巧的手法,不要貿然的花費時間研讀。Boost另外一面,比如Graph這樣的庫則是具有工業強度,
結構良好,非常值得研讀的精品代碼,並且也可以放心的在產品代碼中多多利用。

3   blitz  (高效率的數值計算函數庫)
   ------http://folk.uio.no/patricg/blitz/html/index.html
   ------http://www.oonumerics.org/blitz/
   ------http://sourceforge.net/projects/blitz/

Blitz++ 是一個高效率的數值計算函數庫,它的設計目的是希望建立一套既具像C++ 一樣方便,同時
又比Fortran速度更快的數值計算環境。通常,用C++所寫出的數值程序,比 Fortran慢20%左右,因
此Blitz++正是要改掉這個缺點。方法是利用C++的template技術,程序執行甚至可以比Fortran更快。
Blitz++目前仍在發展中,對於常見的SVD,FFTs,QMRES等常見的線性代數方法並不提供,不過使用
者可以很容易地利用Blitz++所提供的函數來構建。

vc71環境中編譯安裝
  版本:blitz-0.8.tar.gz

將 blitz-0.8/Blitz-VS.NET.zip 解壓到當前目錄下
打開 Blitz-Library.sln  編譯即可

頭文件在 %blitz_root%/blitz
         %blitz_root%/random
庫文件在 %blitz_root%/lib    (靜態庫)

頭文件添加方法如:
#i nclude   有時要鏈接lib庫
#i nclude   不需要lib庫

4   log4cpp   (日誌處理)
    -------http://sourceforge.net/projects/log4cpp/
    -------http://log4cpp.hora-obscura.de/index.php/Main_Page

   Log4cpp 是 Log4J 的 C++ 移植版本,開放源代碼並且完全免費。與 Log4J 能夠跨平臺一樣,Log4cpp
也致力於寫出跨平臺的 C++ 程序。Log4cpp 主要是用於 C++ 程序中寫 log 文件,與此同時,Log4cpp 中
有很多有用的類庫,對於寫跨平臺 C++ 程序的人來說,可以直接拿來用,或者作爲自己寫跨平臺類的參考。
   Log4cpp 中的跨平臺類庫有明顯的 Java 痕跡,比如 Class、Object 、Loader、Locale 等類。 Log4cpp
中的類都可以根據類名 new 出一個 instance,其實現的方式和 MFC 如出一轍:通過 C++ 強大的宏來實現。
   Log4cpp 中的跨平臺類庫主要有:
        信號類:Condition(broadcast,signal,wait),CriticalSection (lock,unlock),WaitAccess,
    Event(set,reset,wait),Mutex(lock,unlock), Semaphore(wait,tryWait,post)
        網絡類:InetAddress,Socket,ServerSocket,DatagramSocket,SocketInputStream,
    SocketOutputStream
        日期類:DateFormat,DateTimeDateFormat,System(currentTimeMillis)
        文件類:FileWatchdog(doOnChange)
        內存操作類:基於引用計數機制的智能指針 ObjectPtrT
        字符串操作類:StrictMath,StringHelper(toUpperCase,toLowerCase,trim,equalsIgnoreCase
    ,endsWith,format),StringTokenizer
        線程類:Thread(start,run,join)
   使用以上的類不用考慮 thread handle, event handle, socket handle 之類的 handle 問題,所有這些文
件已經被封裝了。很好用,對不對?
   不足之處在於沒有 GUI 類。ANSI C++ 中對於目錄等文件系統的處理功能較弱,這裏面也沒有目錄處理類。
另外 Socket 的 read(void * buf, size_t len) 不能設置 timeout,並且如果讀取數據個數小於 len 那麼
read 函數將一直堵塞,不太好用,很可惜。實際的使用上面,可以考慮做一個 Socket 子類,重寫 read() 函數。

vc71環境中編譯安裝
  版本:log4cpp-0.3.5rc1.tar.gz

   打開 msvc6  編譯即可

頭文件在 %log4cpp_root%/include\log4cpp
庫文件在 %log4cpp_root%/lib

頭文件添加方法如:
#i nclude   需要鏈接lib庫

5   Crypto++   加/解密算法庫
   ---http://sourceforge.net/projects/cryptopp/
   ---http://www.eskimo.com/~weidai/cryptlib.html
   ---http://www.cryptopp.com

   提供處理密碼,消息驗證,單向hash,公匙加密系統等功能的免費庫。
Crypto++ 是一個非常專業的C++ 密碼學函式庫,幾乎在密碼學裏頭常見的演算法都可以在Crypto++
找到實作的函式,如:block 與stream  ciphers,hash functions,MACs,random number generators,
public key 加密...等方法

vc71環境中編譯安裝
  版本:cryptopp521.zip

直接通過 cryptest.dsw 相關的庫

頭文件在 %cryptopp_root%
庫文件在 %cryptopp_root%/lib

頭文件添加方法如:
#i nclude <*.h>  需要鏈接lib庫

6   ACE

    ------http://www.cs.wustl.edu/~schmidt/ACE.html

    C+ +庫的代表,超重量級的網絡通信開發框架。ACE自適配通信環境(Adaptive Communication Environment)
是可以自由使用、開放源代碼的面向對象框架,在其中實現了許多用於併發通信軟件的核心模式。ACE提供了一組
豐富的可複用C++ 包裝外觀(Wrapper Facade)和框架組件,可跨越多種平臺完成通用的通信軟件任務,其中包括:
事件多路分離和事件處理器分派、信號處理、服務初始化、進程間通信、共享內存管理、消息路由、分佈式服務動
態(重)配置、併發執行和同步,等等。

7. CppUnit
    -------http://sourceforge.net/projects/cppuint/

一個c++的單元測試框架,可以通過派生測試類的方式,定製具體的測試方案。xUnit家族的一員,
從JUnit移植而來,JUnit是Java語言的單元測試框架。

vc71環境中編譯安裝
  版本:cppunit-1.10.2.tar.gz

直接通過 CppUnitLibraries.dsw  編譯相關的庫

頭文件在 %cppunit_root%/cppunit
庫文件在 %cppunit_root%/lib

頭文件添加方法如:
#i nclude   需要鏈接lib庫

8    Loki
       -----http://moderncppdesign.com
       -----http://sourceforge.net/projects/loki-lib/
       -----http://sourceforge.net/projects/loki-exp/

     其實可和Boost一起介紹它,一個實驗性質的庫。作者在loki中把C++模板的功能發
揮到了極致。並且嘗試把類似設計模式這樣思想層面的東西通過庫來提供。同時還提供
了智能指針這樣比較實用的功能。

   該庫系模板庫,庫本身無需編譯,在你的工程文件中 引用頭文件就可以使用,
如果 你直接或間接使用了small object,那你需要在你的工程文件 加上 SmallObj.cpp
如果 你直接或間接使用了Singletons,那你需要在你的工程文件 加上 Singleton.cpp

-----------------------------------------------------------------------------------------
學術性的C++庫:
-----------------------------------------------------------------------------------------
1     FC++: The Functional C++ Library
     --------http://www.cc.gatech.edu/~yannis/fc++/

  這個庫提供了一些函數式語言中才有的要素。屬於用庫來擴充語言的一個代表作。如果想要在OOP之外尋找另
一分的樂趣,可以去看看函數式程序設計的世界。大師Peter Norvig在 “Teach Yourself Programming in
Ten Years”一文中就將函數式語言列爲至少應當學習的6類編程語言之一。

   當前版本:FC++.1.5.zip
    模板庫,在實際工程中 ,加上要用的頭文件 就可以編譯。

2     CGAL
      -----http://www.cgal.org

    Computational Geometry Algorithms Library的目的是把在計算幾何方面的大部分重要的解決方案和方
法以C++庫的形式提供給工業和學術界的用戶。

    當前版本:CGAL-3.1.zip
   這是一個已編譯的版本,當然也包括完整的源碼

頭文件在 %CGAL_root%/include/CGAL
庫文件在 %CGAL_root%/lib/msvc7

頭文件添加方法如:
#i nclude   需要鏈接lib庫

-----------------------------------------------------------------------------------------
其它目前我感覺還不是很爽的C++庫:
-----------------------------------------------------------------------------------------
1  Doxygen
     ------http://sourceforge.net/projects/doxygen/
     ------http://www.stack.nl/~dimitri/doxygen/

註釋文檔生成工具,較之Doc++功能更爲齊全,可以生成包括HTML、PDF、RTF在內的多種格式的文檔,
並有GUI界面,除了支持c/c++語言外,還支持IDL、java、PHP、c#等。

2、   QT(windows版要付錢)
     -------http://www.trolltech.com/
     -------http://www.qiliang.net/qt.html

   Qt是Trolltech公司的一個多平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形
用戶界面所需的所用功能。Qt是完全面向對象的很容易擴展,並且允許真正地組件編程。自從1996年早些時候,
Qt進入商業領域,它已經成爲全世界範圍內數千種成功的應用程序的基礎。Qt也是流行的Linux桌面環境KDE
的基礎,同時它還支持Windows、Macintosh、Unix/X11等多種平臺。

3、Fox
   ---------http://www.fox-toolkit.org/
   開放源代碼的GUI庫。作者從自己親身的開發經驗中得出了一個理想的GUI庫應該是什麼樣子的感受
出發,從而開始了對這個庫的開發。有興趣的可以嘗試一下。

4  xml4c
    ------http://www.alphaworks.ibm.com/tech/xml4c

IBM的XML Parser,用c++語言寫就,功能超級強大。號稱支持多達100種字符編碼,能夠支持中文,
適合於大規模的xml應用。若只是很小範圍的應用,則非最佳選擇,畢竟,你需要“揹負”約12M左右的
dll的沉重負擔

5    Xerces c++
       -------http://xml.apache.org/xerces-c

Apache的XML項目,同樣是c++ 實現,來源於IBM的xml4c,因此編程接口也是和xml4c一致的。但是
目前只支持少數的字符編碼,如ASCII,UTF-8,UTF-16等,不能處理包含中文字符的XML文檔。
   Xerces-C++ 是一個非常健壯的XML解析器,它提供了驗證,以及SAX和DOM API。XML驗證在文檔類型定
義(Document Type Definition,DTD)方面有很好的支持,並且在2001年12月增加了支持W3C XML Schema
的基本完整的開放標準。

6   XMLBooster
      -------http://www.xmlbooster.com/

    這個庫通過產生特製的parser的辦法極大的提高了XML解析的速度,並且能夠產生相應的GUI程序
來修改這個parser。在DOM和SAX兩大主流XML解析辦法之外提供了另外一個可行的解決方案。

-----------------------------------------------------------------------------------------
C++開發環境(Win平臺下除了 Visual C++ 和 Borland C++以外的):
-----------------------------------------------------------------------------------------

1. Cygwin  (Windows下的一個Unix仿真環境)
    這個Cygwin的一部分是GCC的另外一個Windows移植版本,Cygwin是Windows下的一個Unix仿真環境。
嚴格的說是模擬GNU的環境,這也就是"Gnu's Not Unix"要表達的意思。

    至Cygwin的網站http://www.cygwin.com/下載安裝程式setup.exe,可直接點選執行或先行下載
至個人電腦後再執行。
    目前我已經下載到本地了,直接安裝即可。

2.  MinGW  (GCC的一個Windows移植版本)
     1)http://sourceforge.net/projects/mingw 直接訪問的,點擊 Files,然後下載以下文
件:MinGW-3.1.0-1.exe, mingw32-make-3.80.0-3.exe。
安裝MinGW 到 C:/MinGW 目錄下,然後安裝 mingw32-make 到 C:/MinGW 下,通過瀏覽器
到 C:/MinGW/bin 下,將 mingw32-make.exe 改名或者另外複製爲 make.exe。

(以上的設置已經足夠。不過爲了求新,我是同時下載了 gcc-core-3.4.2-20040916-1.tar.gz,
mingw-runtime-3.5.tar.gz 和 w32api-3.1.tar.gz,將它們直接解壓到 C:/MinGW 下更新舊的
文件。不過這對這篇文章本身沒有任何影響。新舊兩種配置我都測試過。)

  安裝次序:
     MinGW-3.1.0-1.exe
     mingw32-make-3.80.0-3.exe
     gcc-core-3.4.2-20040916-1.tar.gz
     mingw-runtime-3.5.tar.gz
     w32api-3.1.tar.gz
     gdb-5.2.1-1.exe
     mingw-utils-0.3.tar.gz
     binutils-2.15.91-20040904-1.tar.gz

   3)準備MinGW 用戶開發的命令行環境(一個批處理)
如: mingw.bat
@rem --------------------------------------
@SET MINGW_ROOT=D:\Mingw

@rem
@echo Setting environment for using Mingw.
@rem

@set PATH=%MINGW_ROOT%\BIN;%PATH%
@set INCLUDE=%MINGW_ROOT%\INCLUDE;%MINGW_ROOT%\INCLUDE\c++\3.2.3;%MINGW_ROOT%\include\c++\3.2.3\mingw32;%MINGW_ROOT%\include\c++\3.2.3\backward;%INCLUDE%
@set LIB=MINGW_ROOT\LIB;%LIB%
@rem ----------------------------------------

3. Dev C++   (一個C/C++ 的集成開發環境)

   GCC是一個很好的編譯器。在Windows上的C++編譯器一直和標準有着一段距離的時候,GCC就是一個
讓Windows下開發者流口水的編譯器。Dev-C++就是能夠讓GCC跑在Windows下的工具,作爲集成開發環
境,還提供了同專業IDE相媲美的語法高亮,代碼提示,調試等功能。由於使用Delphi開發,佔用內存
少,速度很快,比較適合輕量級的學習和使用。

   可以使用  MinGW-GCC 作爲它的編譯器

4  Eclipse-CDT

遊戲開發

Audio/Video 3D C++ Programming Library

  ------http://www.galacticasoftware.com/products/av/
  ------http://sourceforge.net/projects/av3d/

***3D是一個跨平臺,高性能的C++庫。主要的特性是提供3D圖形,聲效支持(SB,以及S3M),控制接口(鍵盤,鼠標和遙感),XMS。

KlayGE

  ------http://home.g365.net/enginedev/
  ------http://sourceforge.net/projects/klayge/

   國內遊戲開發高手自己用C++開發的一個開放源代碼、跨平臺的遊戲引擎。KlayGE是一個開放源代碼、跨平臺的遊戲引擎,並使
用Python作腳本語言。KlayGE在LGPL協議下發行。感謝龔敏敏先生爲中國遊戲開發事業所做出的貢獻。

OGRE

  ------http://www.ogre3d.org
  ------http://www.ogre3d.org/docs/manual/
  ------http://sourceforge.net/projects/ogre

  OGRE(面向對象的圖形渲染引擎)是用C++開發的,使用靈活的面向對象3D引擎。它的目的是讓開發者能更方便和直接地開發
基於3D硬件設備的應用程序或遊戲。引擎中的類庫對更底層的系統庫(如:Direct3D和OpenGL)的全部使用細節進行了抽象,並提供了基於現實世界對象的接口和其它類。

轉貼(c++ 中有用的源碼)

在codeproject遛達長了,發現了不少好代碼,以下如無特別聲明,皆爲.NET技術。我爲什麼會找到這麼多好東西?每天看唄!我把codeproject的過半post都看了...
1、A CBC Stream Cipher in C# (With wrappers for two open source AES implementations in C# and C):C#寫的AES加密組件
2、A small tool to remove SCC information of a VS2003.NET project file:移除SourceSafe信息
3、DevGlobalCache – A way to Cache and Share data between processes:實現進程間通信
4、Visual Studio .NET RSS Viewer with XSL :RSS閱讀器
5、Bubble.NET Game:泡泡龍遊戲
6、Switching Between HTTP and HTTPS Automatically: Version 2:自動在HTTP/HTTPS間切換
7、Data Access and Transaction Handling Framework:數據訪問/事務處理組件
8、3D Pie Chart:三維餅圖
9、C# Worker Thread Starter Kit:多線程組件
10、Gmail Agent API v0.5 / Mail Notifier & Address Importer:GMail代理/郵件監測器和地址導入器
11、Inter-Process Communication in .NET Using Named Pipes, Part 2:使用名字管道進程間通信
12、Merging Word Documents with C#:合併Word文檔
13、SharpGL, a C# OpenGL class library:OpenGL的封裝類庫,包括一個3D生成器,酷!
14、An extensible math parser:數學解析器(VC++/MFC)
15、Code to extract plain text from a PDF file:通過代碼直接獲取PDF中的文本內容(C++)
16、CppSQLite - C++ Wrapper for SQLite:SQLite C++封裝庫
17、CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet:不用Excel直接寫Excel文件(C++)
18、Implementation of a B-Tree Database Class:類似SQLite的功能,但不提供SQL語法,簡便(C++)
19、Exile 1.7 - The Password Manager:超強密碼保護!!!
20、Managed C++ wrapper for ZLib:世上最強壓縮組件Zlib的C++類庫
21、CDiagramEditor - DIY vector and dialog editor:圖形化設計器(VC++)
22、CFlowchartEditor - linking things in CDiagramEditor:流程圖設計器(VC++)
23、UMLEditor - revisiting the vector editor:UML設計器(VC++)這是我目前能給最高分數的代碼了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章