下面是收集的一些开发工具包,主要是C/C++方面的,涉及图形、图像、游戏、人工智能等各个方面,感觉是一个比较全的资源。供参考!
//z 2015-07-30 15:24:34 L.154'30926 BG57IV3@XCL T3752479411.K.F1370514324[T81,L7803,R301,V7813]
Contents
- 2D Graphics
- 3D Graphics
- 3D Game Engines
- Artificial Intelligence
- Audio (Sound & Music)
- Collision Detection
- Compression
- Encryption
- Font Handling
- General Purpose
- Graphical User Interfaces
- Image Handling
- Mathematics
- Model Handling & 3D Character Animation
- Multimedia/Game Libraries
- Networking
- Physics
- OpenGL
- OpenGL Extension Handling
- Scripting Languages
- SDL - Simple DirectMedia Layer
- XML
- Unsorted
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/
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 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
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++
LibUFO GUI library (for OpenGL) [LGPL] 一个基于OpenGL的界面库
Crazy Eddie's GUI
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.
MMXRand Almost twice as fast as the original Wagner's C++ code using Pentium MMX instruction by Matthew Bellew:
Tao Framework
OPAL
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.
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
- 3D Graphics
- 2D Graphics
- Video
- Image and Font Handling
- Sound + Music
- Networking
- Model Handling and Character Animation (3D)
- Filesystems, persistence, and format parsing
- Scripting Languages
- Artificial Intelligence
- Mathematics, Physics and Collision Detection
- Debugging, memory checks, general purpose, etc
- Other Tools
General purpose libraries
(MPL)
Alchemist's Game Library (2D game engine)
(Free for non-commercial use)
(giftware)
Amaltheia (game programming API)
Basic Game Library (Docs in Spanish?)
DXGame (Visual Basic 6, 2D game engine/toolkit)
("100% free to use"), but check for details
('free')
(free, with sub-libraries under LGPL etc)
(free for noncommercial, commercial licenses available for purchase)
(free to use, but requires credit)
(free for non commercial projects)
MASI-CiX 2D sprite-based game platform
(free for noncommercial, negotiate for commercial)
PLIB General purpose library.
Popcap 2D library with extras.
Proyecto dx_lib32 Spanish language. VB6.
Free
(free for freeware, commercial license otherwise)
SxDL 2D and 3D.
The Tao Framework (various libs ported to .Net)
(various/MIT)
3D Graphics
(QPL)
(various licenses depending on chosen usage, but free for freeware)
GPL (or commercial)
(free)
(slightly modified zlib)
(unknown)
(Dual license - BL and GPL
Graphics Library Helper (like GLU)
(freeware)
(free for non-profit use)
Interactive Visualisation Framework
(MPL)
(free to use)
(OpenSceneGraph licence, like LGPL)
(free)
(free?)
(LGPL, custom licenses)
2D Graphics
("no restrictions on the use")
(unknown license)
(free for non-commercial, otherwise pay)
hxrender - docs here
Saq2D (C#)
"free to use for personal/commercial use"
TinyPTC (open source)
Video
(MPL)
(open source)
Image and Font Handling
BMF_font (bitmap fonts in OpenGL)
(CeCill license)
(free for non-commercial use)
(free?)
(apache-style license)
(libPNG license)
(free?)
(free, must give credit)
Sound + Music
(Free for freeware projects, otherwise commercial)
(Free for freeware projects, otherwise commercial)
(For WinCE/Win32/Symbian and .NET.) (Free use, but credit or donation required.)
(?)
Networking
Low level
libCURL (URL transfer)
Lidgren.Library.Network (.NET/C#)
Unspecified license - contact author
High-level
(GPL?)
GPL , or commercial
GPL , or free by application
Free for freeware, otherwise commercial
Free for noncommercial, otherwise contact author
Unknown
Model Handling and Character Animation (3D)
(free)
GNU Triangulated Surface Library
Filesystems, persistence, and format parsing
(free)
free, but note possible crypto. legal issues
(public domain)
free for non-commercial, otherwise GPL
GPL , or pay for commercial license
zipstream, bzip2stream (iostream wrappers for the zlib and bzip2 libraries)
Scripting Languages
BOO (Reqs .NET/CLI)
MIT/BSD style
free, reg. required for commercial use
'free' for any use
(presumably Mozilla license)
Artistic license
Artificial Intelligence
GPL , other
(old, mainly Czech)
Mathematics, Physics and Collision Detection
Mathematics
GPL or Blitz Artistic License)
free?
Math3D++ (vectors, quaternions)
free?
MathGL++ (Matrices, Vectors, Quaternions, Linear polynomials with eigen systems)
Mersenne Twister random number generator
free
VMath (NxM matrix template class)
free
Physics
Free, but must notify creators
free for noncommercial, contact for commercial
free for both commercial and non-commercial use
(free)
presumably BSD also
free
free for non-commercial use
Collision detection:
free usage
free for non-commercial use
free for non-commercial use
Debugging, memory checks, general purpose, etc
Boost (C++ smart pointers, parsers, random numbers, quaternions, and more)
Chattering Pixels libraries (memory, I/O, sorting, timers)
Free for noncommercial use, shareware and commercial licenses also available
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
Public domain
free
OIS (Object-oriented Input System)
Valgrind (Linux debugging and profiling tool)
Other Tools
Doxygen (documentation generator)
free
NaturalDocs (documentation generator) (Requires Perl 5.05.)
Free
free
Synopsis (documentation generator)
free
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
转自
//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++)
这是我目前能給最高分数的代码了!