List Of Libraries        
Image

This section is for libraries that are often used when developing OGRE applications, but they do not inherently support OGRE. You will have to integrate them yourself.

  • If a project has explicit and active OGRE support, please move it to OGRE Libraries.
  • Please correct dead links.
  • Please delete dead projects.

Image

Application Frameworks

An alternative to assembling all of these libraries yourself is to use an existing application framework.

  • NeoAxis Game Engine: is an all-purpose, modern 3D graphics engine for 3D simulations, visualizations and games. Includes many editors for scenes, physics, materials, particles etc. Uses C# for scripting. Non-commerical free licence as well as commerical licences available.

Image

Physics

Games or simulations normally follow some consistent model of the physical universe. Physical laws dictate that balls bounce when they hit the ground or that arrows arc upwards then down when fired into the air. More recently, ragdoll physics has become popular as a way of animating characters according to physical models, for example, enabling realistic animation of a person falling after being shot.

  • Full-source packages
    • Newton Game Dynamics: Windows, Mac, Linux(x86); Free open source under Zlib license. You can integrate Newton Game Dynamics into your projects with ease. With our technology you only need to know basic physics principles to produce realistic physics behavior. Tuning time is reduced to a minimum because you don't need to wrestle the targeted hardware nor set up esoteric parameters to get the correct timing for your simulation. Newton physics engine behaves naturally. This has been used in at least one Ogre project (Stunt Playground).
    • Bullet - Windows, Mac, *nix ; Free open source under the Zlib style license. Under active development, includes COLLADA Physics support, GJK general convex collision detection and specialising in continuous collision detection. Some handy resources and sourcecode on the site. Under heavy and constant development.
    • PhysBAM - Source release only (no Windows build environment yet, but it is set up to use GCC and SCons); Free open source MIT-style license. Under active development at Stanford University, in existence since about 1998, recently open-sourced; primary target is film and post effects, so it targets realism more than performance (probably not a real-time physics engine but could be very good for visualization applications).
    • ODE: Windows, Mac, *nix ; Free under the LGPL and BSD style license. The Open Dynamics Engine (ODE) is a popular tool for programming physics with Ogre.
  • Binary-only packages

Image

Artificial intelligence

There has been little standardization yet as to what an AI engine might contain. But there are enough common AI problems in games, such as pathfinding, that seem to need writing over and over again. Most Ogre projects use custom-built AI libraries.

  • OpenAI: Windows, Mac, *nix. OpenAI or the Open-source Artificial Intelligence library aims to be for AI what OpenGL is for graphics. That said, it is not so good for use in DirectX but integrates seamlessly and without trouble into OpenGL. The library has many features. Is written in Java. Note: Development halted April 5, 2003.
  • FEAR: Windows, Mac, *nix. FEAR is an AI library whose status is unclear. There is, however a book by FEAR's lead developer which is based on FEAR. Author of the library do not think his library is ready for real-time or games application, it's under construction, but meanwhile have an education purpose and wish people can help him. Testing and use of the library does needs Quake 2. (or you won't be able to test your code and the demos.). If you buy the book you get mores Bots sources and demo. Very good for education purpose on neural nets, FSM, Fuzzy logic. Note: Developer states he has moved on to a new project, the last FEAR release v0.4.0 on March 23, 2005 does not appear to be ready for production use.
  • OpenSteer: Windows, Mac, *nix; MIT License OpenSteer is a C++ library to help construct steering behaviors for autonomous characters in games and animation. In addition to the library, OpenSteer provides an OpenGL-based application called OpenSteerDemo which displays predefined demonstrations of steering behaviors. The user can quickly prototype, visualize, annotate and debug new steering behaviors by writing a plug-in for OpenSteerDemo.
  • A* Tactical Pathfinding: Windows. Free (needs copyright notice) Described in the "Game Programming Gems III book". A tactical path deviates from the shortest path to achieve increased concealment and cover from threats. The simple way to create tactical paths is adding a new cost to the A* cost function. These new costs reflect exposure to enemy observation and fire at each point in the terrain.(on the same page, from "AI Game Programming Wisdom" book, there's also the Path Lookup Tables explorer.) Also see here for an Ogre implementation of various A* pathfinding with source
  • PathLib: Windows; Free A C++ A* pathfinding, fast and robust, along with a windows demo, that allows path testing and map editing. ( supports Group pathfinding) Also see here for an Ogre implementation of various A* pathfinding with source
  • Garfixia AI Repository: This site contains an open-source library of AI techniques, written in C++. Excellent material - appears to be Open Domain - not production quality, but an invaluable starting point. FSM, fuzzy, learning trees, etc. Good Stuff!
  • MicroPather Windows, Mac, Linux; zlib/libpng License. From the webpage: "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."
  • Boost Graph Library platform independent. This library can perform A* searches.
  • FANN Platform independent; GNU Library General Public License (LGPL). From the webpage: "Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution in both fixed and floating point are supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast. PHP, C++, .NET, Python, Delphi, Octave, Ruby, Pure Data and Mathematica bindings are available. A reference manual accompanies the library with examples and recommendations on how to use the library. A graphical user interface is also available for the library."
  • OpenSkyNet Windows; GNU Library General Public License (LGPL). A* pathfinding lib with a user-settable option to determine the number of seconds alloted for pathfinding each call and batch pathfinding, such that multiple objects can use the same grid. Written in C++.
  • Recast Platform independent; zlib License. Recast is state of the art navigation mesh construction toolset for games. Recast creates a voxel mold from your level's geometry, which is used to generate a navigation mesh. You can throw any level geometry at it and you will get robust mesh out.


Image

Networking

Effective use of the network is important to multiuser games. To support games played over the Internet, it is necessary to deal with problems of network performance, fault-tolerance, concurrency control and security. Most Ogre projects are based on custom networking libraries. The following libraries, however, have been found useful by some Ogre users.

  • ReplicaNet: This library has the choice of using reliable UDP connections, peer-to-peer or client server sessions or object oriented replicated objects. It also supplies a complete lobby interface including user management, chat services, online leaderboards, user data storage and file patching services. It has been used on games consoles, desktop machines and mobile phones.
  • RakNet: Windows, *nix; Free under Creative Commons Attribution - NonCommercial 2.5 license (commercial use $100-$4000) Used in quite a number of Ogre projects. From the web page: "RakNet is a networking API that is a wrapper for reliable UDP and higher level functionality on Windows, Linux, and Unix. It allows any application to communicate with other applications on the same computer, over a LAN, or over the internet. Although it could be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games."
  • OpenTNL: Windows, Mac, Linux; GPL or Commercial License. From the web page: "The Torque Network Library is a robust, secure, easy to use cross-platform C++ networking API designed for high performance simulations and games."
  • Zoidcom: Windows, Linux; Free or Commercial License. From the web page: "Zoidcom 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. This is achieved by multiplexing and demultiplexing object information from and into bitstreams, which make it easily possible to avoid sending redundant data. Bools only take one single bit, integers and floats are stripped down to as many bits as needed."
  • HawkNL: Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "Game oriented network API HawkNL (NL) is a fairly low level API, a wrapper over Berkeley/Unix Sockets and Winsock. But NL also provides other features including support for many OSs, groups of sockets, socket statistics, high accuracy timer, CRC functions, macros to read and write data to packets with endian conversion, and support for multiple network transports (version 2.0 is beta)."
  • ENet: Windows, Linux; MIT-style License. From the webpage: "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."
  • ZIGE Game Engine: Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "ZIG is a free, LGPL licensed, extendable client-server game engine. Besides networking, it provides support for other features like: logging, an interactive debug console, timing control (for client framerates and server packet rates), automatic downloading of game files from server to client, etc. From the standpoint of ZIG, the graphics renderer, the sound engine and the input handler are all extensions you must provide. You will be able to plug your Allegro, SDL, DirectX, OpenGL etc. stuff into ZIG with ease. ZIG is a cross-platform C/C++ library which depends on HawkNL and Pthreads (POSIX Threads)."
  • SDL_net Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "SDL_net is a small sample cross-platform networking library that runs on all platforms supported by SDL."
  • SFML: Windows, Linux, Mac OS X and soon Android & iOS; Free SFML provides audio functionality (including 3D spatial playback) in addition to many other useful features such as window and input handling and networking.


Image

Audio

Games and simulations rely greatly on sound and music to provide atmosphere. While we often focus on graphics as programmers, sound is at least as important to developing an immersive atmosphere.

  • FMOD: Windows, Mac, Linux, WinCE, PS2, XBox, GameCube; Commercial, but free for non-commercial use. From their web page: "FMOD supports 3d sound, midi, mods, mp3, ogg vorbis, wma, aiff, recording, obstruction/occlusion, cd playback (analog or digital), cd ripping, mmx, internet streaming, dsp effects, spectrum analysis, user created samples and streams, synchronization support, ASIO, EAX 2&3, C/C++/VB/Delphi and more."
  • OpenAL: Windows, Mac, Linux, PS2, XBox, GameCube; Mainly free under LGPL but commercial for some platforms. From the web page: "OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications." The two OGRE wrappers are 'OgreOggSound' (most active) and OgreAL.
  • BASS: Windows; Commercial, but free for non-commercial use. From the web page: "BASS is an audio library for use in Windows software. It's purpose is to provide developers with the most powerful and efficient (yet easy to use), sample, stream (MP3, MP2, MP1, OGG, WAV, 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."
  • Audiere: Windows, *nix; Free "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." Featuring a Braindead easy API . (Doesn't support 3D positioning of sound (perhaps)
  • irrKlang: Windows, Linux, Mac; Commercial, but free for non-commercial use. From their web page: "2D and 3D cross platform audio library which plays WAV, MP3, OGG, MOD, XM, IT, S3M and more file formats. Users of .NET should look to page IrrKlang for MOGRE.
  • cAudio: Windows, *nix; Free From their web page: "The cAudio Engine is a C++ wrapper around OpenAL to allow you to get sound and music into your games easily. The main reason behind making cAudio was there wasn't a hole lot of choices for getting sound into your game. The only problem with using OpenAL is it's hard to use in games. So cAudio was born. cAudio uses OpenAL for controlling all aspects of the sound. Vorbis libary for decoding and playing .ogg files. Mikmod for the mod,xm,it,and s3d support."
  • SFML: Windows, Linux, Mac OS X and soon Android & iOS; Free SFML provides audio functionality (including 3D spatial playback) in addition to many other useful features such as window and input handling and networking.

Image

Scripting

3D applications are often organized so that the performance-critical parts are written in C++ while the application itself is written in a so-called scripting language. Scripting languages are typically interpreted allowing a tighter code/execution cycle, and are usually easier to debug than C++. This allows more rapid application development while retaining good performance.

Alternatively, the application can be structured where scripts are embedded within a C++ application.

  • Lua: Windows, *nix; Free under MIT License. Lua is a library that can be called from Ogre, allowing scripts to be called from within a C++ main application. From the web page: "Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping." Lua programs can in turn make calls/callbacks into Ogre (and other C++ libraries) via luabind (free under the MIT License). See also our wiki entry.
  • LuaPlus: Lua C++ oriented fork with debugging facilities (visual studio plugins), optimisations.
  • Java: Windows, *nix, Mac; Free. Java is a type-safe byte-code interpreted object-oriented language.
  • Python: Windows, *nix, Mac; Free. Python is a dynamically-typed, byte-code interpreted, object-oriented language. For more performance there is also a Python JIT (just in time compiler), psyco.
  • Ruby: Windows, *nix, Mac; Free. Ruby has received a fair bit of positive press lately as a structured OO language with the power of Perl. Ruby has its own C++ interface, as well as a SWIG interface.
  • Squirrel: Windows, *nix; Free. 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. Squirrel's syntax is similar to C/C++/Java, but the language has a very dynamic nature like python/Lua. It's API is very much like Lua, too. See also our wiki entry.
  • AngelScript: Windows, *nix; Free. AngelScript is a high level programming language which has the familiare syntaxes of C/C++. Its designed to be modulative, light-weight, efficient and highly-configurable. It features Run-Time bytecode compilation and ability save/load bytecode on demand. AngelScript is offered on the ZLib license.
  • GameMonkey: Windows, *nix; Free. GameMonkey is a high level embedded scripting language, similar to Lua and AngelScript. It has a C style syntax, supports threading and focuses on having a light footprint. GameMonkey is offered under the MIT license.
  • Falcon: Windows, *nix, Mac; Free. Falcon provides six integrated programming paradigms: procedural, object oriented, prototype oriented, functional, tabular and message oriented. It's multithreaded and the basic syntax is similar to Lua.
  • ChaiScript: Any platform you C++ compiler can target. C++ header-only metaprogramming-based scripting language, looks like very simplified C++.
  • Runtime-Compiled C++ This technique allows you to change your C++ code while it's running., it uses no scripting, no VM, no external tools - you can apply it to your own code and you can continue to use your favourite IDE.

Image

Input

  • SDL: MS Windows, Linux, BeOS, Solaris, IRIX, FreeBSD, MacOS; Free under the GNU LGPL. From the web page: " 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." Look at this page to learn how to use SDL with OGRE.
  • LibGII: MS Windows, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Darwin/MacOSX, IRIX, AIX; Free under the MIT license. From the web page: "LibGII is intended to be to input what our LibGGI library is to graphics. The goal of LibGII is to provide a single easy to use, but yet powerful, API for all possible input sources.". See also this page on integrating libGII into your OGRE program.
  • OpenInput: Linux, Windows OpenInput is a cross-platform, easy-to-use, portable input handler library, written in C.
  • SFML: Windows, Linux, Mac OS X and soon Android & iOS; Free SFML provides audio functionality (including 3D spatial playback) in addition to many other useful features such as window and input handling and networking.

Image

Other tools

  • Libnoise: Windows, *nix; Free under LGPL. libnoise is a portable C++ library that is used to generate coherent noise, a type of smoothly-changing noise. libnoise can generate Perlin noise, ridged multifractal noise, and other types of coherent-noise. Coherent noise is often used by graphics programmers to generate natural-looking textures, planetary terrain, and other things.
  • SimpleFileWatcher: A library for getting callbacks on file / folder changes in a cross-platform way


Didn't find quite what you are looking for? Here is another large list of libraries assembled from gamedev.net that may help.


Alias: List_Of_Libraries