下面是收集的一些開發工具包,主要是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]php
Contentscss
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, 2004java
Eclipse 2D Game Engine
eclipseeng.sourceforge.net
Author: JGH
License: LGPL
Added: October 31, 2004python
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, 2005linux
hxRender
mavweb.mnsu.edu/longaj/hxrender/
Author: Joel Longanecker
License: zlib
Platforms: Windows, GNU/Linux, MacOS X
Added: October 31, 2004ios
Haaf's Game Engine - Hardware accelerated 2D game engine
hge.relishgames.com
License: Free for non-commercial use
Platforms: Windows
Added: October 31, 2004c++
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, 2004web
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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 [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
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/
(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)
(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)
("no restrictions on the use")
(unknown license)
(free for non-commercial, otherwise pay)
Saq2D (C#)
"free to use for personal/commercial use"
TinyPTC (open source)
(MPL)
(open source)
BMF_font (bitmap fonts in OpenGL)
(CeCill license)
(free for non-commercial use)
(free?)
(apache-style license)
(libPNG license)
(free?)
(free, must give credit)
(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.)
(?)
libCURL (URL transfer)
Lidgren.Library.Network (.NET/C#)
Unspecified license - contact author
(GPL?)
GPL , or commercial
GPL , or free by application
Free for freeware, otherwise commercial
Free for noncommercial, otherwise contact author
(free)
GNU Triangulated Surface Library
(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)
BOO (Reqs .NET/CLI)
MIT/BSD style
free, reg. required for commercial use
'free' for any use
(presumably Mozilla license)
Artistic license
GPL , other
(old, mainly Czech)
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
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
free usage
free for non-commercial use
free for non-commercial use
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)
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
在以下的庫支持下,開發的系統能夠很方便移植到當前大部分平臺上運行
而無需改動,只需在對應的平臺下 用你喜歡的編譯器 從新編譯便可
經典的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#等。
二、 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等多種平臺。
三、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)的所有使用細節進行了抽象,並提供了基於現實世界對象的接口和其它類。
在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++)這是我目前能給最高分數的代碼了!