From Wikipedia, the free encyclopedia
Irrlicht (pronounced [????l?çt] in German) is an open source 3D engine written in C++. It is cross-platform, officially running on Windows, Mac OS X, and Linux, though due to its open nature there have been ports to other systems including the Xbox, PlayStation Portable, and SymbianOS in development.
Irrlicht is known for its small size and compatibility with new and older hardware alike, a shallow learning curve and a large friendly community. It is released under the zlib license allowing commercial use without having to release source changes. Recently Irrlicht has acquired official .NET bindings, allowing users to develop in .Net languages such as VB.NET, C# and Boo. Unofficial bindings for many other languages exist including Java, Perl, Ruby, Python, FreeBASIC, and Lua including a port for Game Maker called GMIrrlicht.
Irrlicht supports 3D rendering via OpenGL, DirectX 8 and 9, and internal software rasterizers. External renderers can be written and plugged via a simple interface, giving rise to a community-made SDL video driver. The engine comes with a library of standard material renderers, allowing fallback materials where user hardware is unable to handle advanced techniques. New materials can be added to the engine at run-time, allowing users to write their own where required. In addition to legacy fixed-function pipeline materials, programmable Pixel and Vertex Shaders (1.1 to 3.0), ARB Fragment and Vertex Programs, HLSL and GLSL materials are supported.
The engine supports most common 3D mesh and image formats by default, and more have been written as external plugins. Lights, cameras and 3D objects are managed as a tree of ‘Scene Nodes’, arbitrary groupable entities which are responsible for their own behaviour. Nodes can be managed by generic animators, by each other, or manually by the user. A large number of built-in node types exist and can be used together to make complex indoor and outdoor scenes, new nodes are trivial to make and can be added at runtime, many extra ones are provided by the community. Internal node types include a terrain renderer and sky domes/boxes for outdoor rendering, BSPs for indoor rendering, bone based animated meshes, stencil shadows, billboards and particle systems, water surfaces and primitives.
A skinnable 2D GUI is available, sporting many controls and the ability for users to plug in their own (or community made) custom controls at runtime, access to a full event system is provided for responding to GUI, mouse and keyboard events without having to rely on external libraries.
Filesystem access is abstracted allowing platform-independent file and folder access, and transparent access to files within Zip archives. Other IO features include an XML reader and writer, the ability to take screenshots, manipulate images and save them in several different file formats.
Rudimentary collision detection is also included, but for more serious physics uses, users are recommended to use a full featured Physics engine.
Main article: Irrlicht Engine Extentions
The engine’s open-ended nature has attracted various programmers and developers to create world editors for Irrlicht to simplify the world-creation process. Irrlicht was designed to be able to load and save the current scene to an XML file. Ambiera, a company consisting mainly of Nikolaus Gebhardt, has developed the irrEdit World Editor. Although in early beta, irrEdit contains a powerful radiosity lightmap generator and a scripting interface using Squirrel scripts, making it a powerful addition to the Irrlicht engine. Another newly-risen world editor is Sourena 3D World Editor. The editor however is still in progress.
Since Irrlicht does not support sound from the get-go, Ambiera has also developed irrKlang, the Irrlicht audio library. Being developed by the same group, irrEdit supports the use of sounds in levels made by irrEdit for use with irrKlang-enabled compiled DLLs.
Another creation handled by Ambiera is irrXML, Irrlicht’s XML parser.
More extensions can be found in the Irrlicht forums.
Known issues and problems
The engine is constantly changing. For example, some older code (Versions 1.2 and below) will not compile in version 1.3 due to supposed name changes at various points in the engine code.
The demo applications do not work well on all systems, possibly because the engine has been modified for the demos to prevent use of the supplied DLL without proper rights to the DirectX SDK.
The current release version (1.4.1) has issues with ATI cards running OpenGL. The unstable version 1.5 has a fix for this.
List of projects using the Irrlicht Engine
Some noteworthy projects include
Slam Soccer 2006 by Xenoage Software, a free comic-style 3D-football-game created using Irrlicht/Jirr (Written in Java)
Eve, a robot simulator made by The Biologically Inspired Robotics Group (BIRG) of the Swiss Federal Institute of Technology in Lausanne (EPFL).
Galactic Dream: Rage of War by Evolution Vault, a commercial space-based strategy game.
Gekkeiju Online, a Free-to-play Fantasy based 3D Multi-User Dungeon that has been running since 2003.
H-Craft Championship, a commercial SciFi racing game.
Lex Venture: A Crossword Caper, a casual word game
Amulet of tricolor, a 2D casual game
The Mupolis Engine, a 3D city rendering engine
Bowling Evolution, a realistic 3D bowling game made by two Finnish software designers
IrrWizard A game creation framework based on the Irrlicht rendering engine.
Lighted (dutch) A First Person Shooter created using GMIrrlicht, the Game Maker Irrlicht port.
More projects can be found here and here.