For sometime I have been studying this Graphics Engine called Irrlicht. I came to know about this one from the monthly game development talks at BDOSN.org, the lecture was given by Al-Mamoon Shohag, Technical Leader at S-Games Ltd (http://www.s-games.co.uk, Previously known as Deep Red Studio Ltd.). So thanks to him and BDOSN. I think this is a really good graphics engine, because even if you’re just new to graphics/game programming you’ll be able to pick up its features within shortest amount of time. And that is not because of its simplicity but also for the wide range of documentations and tutorials found over the net.
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.
Links for starters:
3. http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=136776 (Highly recommended, but there maybe some bugs in the code snippets. Read the whole topic posting to resolve those issues).
4. http://comsci.liu.edu/~murali/index.html (Some basic examples, very helpful to get u started)
(Review of Irrlicht engine with some cool sample codes.)
Here’s a list of some open source games using Irrlicht. If you’re intersted in game development using Irrlicht, maybe these examples might help.
1. Crimson Glory – http://www.crimsonengine.com/
2. Supremacy – http://supremacy.sourceforge.net/
3. First-King – http://first-king.sourceforge.net/