Why reinvent <b>every</b> wheel? But read the GLPL Cautionary Note.
The short story on licenses:
- GPL: Bad.
- LGPL: We can deal with it, if the library can be built as a DLL.
- LLGPL: We can deal with it. (See detailed comments on /Lisp.)
- Artistic: It's cool.
I can't believe I forgot about this until now. Looking for C++ libraries? Visit the [Available C++ Libraries FAQ]! Of course! Duh!
Misc. or Uncategorized
- [NeoEngine] LGPL
- [Google's collection of libraries]
- I didn't even know about this local Ann Arbor company [Cybernet] that develops all sorts of game related libraries.
- [HDF5] A library from NCSA for storing scientific data in a portable and compact file format.
- Edi Weitz has a [collection of libraries] for Lisp. Edi's work has been publically praised for code quality, API completeness, and documentation.
Game Frameworks and Multi-component Libraries
- [Irrlicht] The Irrlicht Engine is an open source high performance realtime 3D engine written in C++. Supports multiple platforms, engines, and data file formats, has a liberal license, and is reputed to be very fast and have a clean class structure.
- [Havok] Game Dynamics SDK.
- [PLIB] Another open source project. A collection of libraries to support cross-platform game development. LGPL
- [Crystal Space] - Crystal Space seems to be reasonably actively developed. LGPL
- [Allegro] - don't think this adds much over what DirectX probably does better - although it has been around a long time and I think it has a reasonably large following. I doubt we'd use this.
- [ClanLib] C++ library. Includes basic graphics, sound, networking, input, etc. Open source, cross-platform, extensible. LGPL *[Flat Four Engine] Interesting game development framework. Has APIs for simple rendering, user interaction, collision detection, and rigid-body physics. It uses OpenGL and claims to be portable between Windows and Linux. It also has built in support for the Lua scripting language.
- GarageGames Torque Engine <= See local page for more info.
Networking Libraries
- [ACE] Just rediscovered this library, and it looks very intriguing. It's a whole framework for OO network programming, highly portable, very mature, comprehensive, good license. There's a book to go with it, published as part of the excellent "C++ In-Depth Series", titled [C++ Network Programming, Vol. 1] (ISBN 0-201-60464-7).
- [Nevrax] NeL is an open-source library for the development of persistent worlds, with a focus on MMORPGs. The company that hosts this ([Nevrax]) keeps their game content proprietary, but their source code open. GPL
- Quazal Net-z <== See local page for more info.
- [OpenSkies] This is one of [Cybernet]'s technologies that claims to have developed a distributed network server technology for the real-time data transfer of dynamic game network content. Their words not mine.
- Wegiz Bah, I didn't really read this before I posted the link and now that I've read this some more I think they are full of malarkey. Still, it's interesting reading.
- DWM I found some of the white papers a bit interesting, they gave me some design ideas. Also note that this s/w is somehow related to the military's networked simulation work, whence cometh the dead reckoning technique.
Physics and Math
- [Open Dynamics Engine (ODE)] Used by Flat Four Engine, above. Interesting brief commentary and links to other physics engines. This library has a [wiki], too! This wiki stuff must be contagious.
- [Blitz++] "Blitz++ is a C++ class library for scientific computing which provides performance on par with Fortran 77/90. It uses template techniques to achieve high performance."
- [Matrix Template Library] (MTL).
- DWM I tried using the MTL, spent several hours at it. It looks very promising, but the poor quality of the documentation makes it nearly unusable. As with most template-based libraries, reading the headers directly is a daunting prospect. If you can use them as documentation, you are truly a C++ god.
- [Boost] includes components for quaternions and general graphs, but not for matrices. It is rumored that MTL is being prepared for submission to Boost. (Choose Artistic or GPL license.)
- [uBLAS] A C++ library based functionally on BLAS, which is apparently a well-known (among mathematicians) vector and matrix library (for FORTRAN?). Note the Boost logo on this page. It requires Boost, and after finding this, I'd bet that the rumors about MTL (cited above) are not true.
- [MATLAB reference] Off-topic for this page, but this came in handy for understanding a discussion about uBLAS's API syntax.