Irrlicht Engine#Engine extensions
{{Short description|Computer game programming engine}}
{{Use dmy dates|date=August 2020}}
{{Infobox software
| name = Irrlicht 3D Engine
| logo = Irrlicht new logo.png
| developer = Nikolaus Gebhardt et al.
| latest release version = 1.8.5
| latest release date = {{Start date and age|2021|11|1|df=yes|br=yes}}
| latest preview version =
| programming language = C++
| operating system = Cross-platform: Windows, Linux, macOS, Windows CE
| genre = Application framework
| license = zlib/libpng-based
| website = {{URL|https://irrlicht.sourceforge.io/}}
}}
Irrlicht (pronounced {{IPA|de|ˈɪʁlɪçt|}} in German) is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox (up to Irrlicht version 1.8.1), PlayStation Portable,{{cite web |url=http://www.ltestudios.com/projects/lte-game-engine/ |title=LTE Game Engine |publisher=Ltestudios.com |access-date=13 November 2011 |url-status=dead |archive-url=https://web.archive.org/web/20110713235341/http://www.ltestudios.com/projects/lte-game-engine/ |archive-date=13 July 2011}} Symbian,{{cite web|url=https://sourceforge.net/projects/irrlichtfors60/ |title=Irrlicht For S60 |publisher=Sourceforge.net |date=10 December 2008 |access-date=13 November 2011}} iPhone,{{cite web|url=http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=181454 |title=Announcement about Irrlicht on iPhone |publisher=Irrlicht.sourceforge.net |access-date=13 November 2011}} AmigaOS 4,{{Cite web|url=http://irrlicht.sourceforge.net/?p=1679|title=AmigaOS4 port of Irrlicht 1.8.4 – Irrlicht Engine - A free open source 3D engine}} Sailfish OS via a Qt/QML wrapper, {{Cite web|url=https://github.com/savegame/sailfish-irrQml|title = Savegame/Sailfish-irrQml| website=GitHub |date = 14 May 2019}} and Google Native Client.{{cite web|url=http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=46400&start=15 |title=Irrlicht on Google Native Client |publisher=Irrlicht.sourceforge.net |access-date=4 June 2012}}
Irrlicht is known for its small size and compatibility with new and older hardware alike, ease of learning, and a large friendly community.{{cite web|url=http://irrlicht.sourceforge.net/phpBB2/index.php |title=Irrlicht support forum |publisher=Irrlicht.sourceforge.net |access-date=13 November 2011}}{{Unreliable source?|date=July 2014}} Unofficial bindings for many languages exist including AutoIt,{{cite web |url=http://www.irrlicht3d.org/wiki/index.php?n=Main.AutoIt |title=Au3irrlicht |publisher=Irrlicht3d.org |date=7 September 2010 |access-date=13 November 2011 |archive-url=https://web.archive.org/web/20130328201537/http://irrlicht3d.org/wiki/index.php?n=Main.AutoIt |archive-date=28 March 2013 |url-status=dead}} C++Builder,{{cite web |url=http://komradstudios.altervista.org/cppbIrrlicht |title=cppbIrrlicht |publisher=Komradstudios.altervista.org |date=23 April 2009 |access-date=13 November 2011 |archive-url=https://web.archive.org/web/20110725001405/http://komradstudios.altervista.org/cppbIrrlicht/ |archive-date=25 July 2011 |url-status=dead}} FreeBASIC,{{cite web|url=https://www.freebasic.net/forum/viewtopic.php?t=31076|title=FreeBASIC binding of Irrlicht 3D engine 1.8.6|website=FreeBASIC Forums|first=D.J.|last=Peters|date=2021-12-26|access-date=2023-03-26}} GameMaker Language,{{cite web |url=http://gmc.yoyogames.com/lofiversion/index.php/t61910.html |title=GMIrrlicht |publisher=Gmc.yoyogames.com |access-date=13 November 2011 |archive-date=5 November 2008 |archive-url=https://web.archive.org/web/20081105140415/http://gmc.yoyogames.com/lofiversion/index.php/t61910.html |url-status=dead}} Java,{{cite web|url=http://jirr.sourceforge.net/ |title=Jirr: Irrlicht for Java |publisher=Jirr.sourceforge.net |access-date=13 November 2011}} Lua,{{cite web|url=http://irrlua.sourceforge.net/ |title=IrrLua, A Lua front end to Irrlicht |publisher=Irrlua.sourceforge.net |access-date=13 November 2011}} .NET,{{cite web|url=https://sourceforge.net/projects/irrlichtnetcp/ |title=Irrlicht.Net Cross Platform Project Page |publisher=Sourceforge.net |access-date=13 November 2011}}{{cite web|url=http://sourceforge.net/projects/irrlichtlime/ |title=Irrlicht Lime |publisher=Sourceforge.net |access-date=8 April 2016}}{{cite web|url=https://github.com/slater1/Irrlicht.Net |title=Irrlicht.Net |publisher=GitHub.com |access-date=18 May 2020}} Object Pascal (Delphi),{{cite web|url=http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=10511 |title=Irrlicht 4 Delphi |publisher=Irrlicht.sourceforge.net |access-date=13 November 2011}}{{cite web|url=http://sourceforge.net/projects/irr-pascal |title=IrrPascal |publisher=Sourceforge.net |access-date=13 November 2011}} Perl,{{cite web|url=http://search.cpan.org/~tels/Games-Irrlicht-0.04/lib/Games/Irrlicht.pm |title=Irrlicht for Perl |publisher=Search.cpan.org |access-date=13 November 2011}} Python,{{cite web|url=https://pypi.org/project/pyirrlicht |title=ctypes python module for Irrlicht Engine SDK. |access-date=28 July 2020}}{{cite web|url=https://sourceforge.net/projects/venom-v2/ |title=Venom: Irrlicht wrapper for Python |publisher=Sourceforge.net |access-date=13 November 2011}} and Ruby,{{cite web |url=http://irr.rubyforge.org/ |archive-url=https://web.archive.org/web/20040528080318/http://irr.rubyforge.org/ |url-status=dead |archive-date=28 May 2004 |title=IrrRuby |publisher=Irr.rubyforge.org |access-date=13 November 2011}} though most of them have not been maintained for five years or more.
Irrlicht's development began in 2003 with one developer, Nikolaus Gebhardt.{{cite web|url=http://www.linuxdevcenter.com/pub/a/linux/2005/06/02/irrlicht.html |title=Interview with the Irrlicht founder |publisher=Linuxdevcenter.com |date=9 October 2008 |access-date=13 November 2011}} Only after the 1.0 release of Irrlicht in 2006 did the team grow to ten members as of 2011, most of them being developers.{{cite web|url=http://irrlicht.sourceforge.net/author.html |title=Development team members |publisher=Irrlicht.sourceforge.net |date=14 February 2006 |access-date=13 November 2011}}
Irrlicht is a common German term for a will-o'-the-wisp.
Features
Irrlicht supports 3D rendering via OpenGL, DirectX 8, 9 and internal software rasterizers. DirectX 8 is not supported after 1.8.1,{{cite web |title=Removing DX8, CG and WinCE from Irrlicht |url=http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=50617&p=292397 |access-date=13 August 2015}} effectively ending support for Xbox. External renderers and windowing systems plug in through simple interfaces, giving rise to a community-made Simple DirectMedia Layer (SDL) video driver and support for iPhone and Symbian devices. The engine comes with a library of standard material renderers, allowing fallback materials where user hardware is unable to handle advanced methods. New materials can be added to the engine at run-time, allowing users to write their own as needed. In addition to legacy fixed-function pipeline materials, programmable Pixel and Vertex Shaders (1.1 to 3.0 and 4.0 using GLSL), ARB Fragment and Vertex Programs, HLSL, Cg and GLSL materials are supported.
File:IrrlichtPerPixelLighning.jpg in Irrlicht]]
Irrlicht supports many file formats. It will load and display 3ds Max files, Quake 2 MD2 Models, Wavefront .obj objects, Quake 3 .bsp maps, Milkshape3D objects, and DirectX .x files.[http://freshmeat.net/articles/irrlicht Irrlicht features] on Freashmeat Additional format loaders have been written as external plugins. Lights, cameras and 3D objects are managed as a tree of Scene Nodes, arbitrary groupable entities linked together in a scene graph. These nodes are responsible for their own behaviour, but can also be managed by animators, each other, or manually by users.
Many 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 additional node types are available from the community. Node types packaged with Irrlicht include a terrain renderer and sky domes-boxes for outdoor rendering, binary space partitioning (BSP) for indoor rendering, bone based animated meshes, stencil shadows, billboards and particle systems, water surfaces and primitives.
A skinnable 2D graphical user interface (GUI) is available, supporting many controls and the ability for users to plug in their own (or community made) custom widgets at runtime. Irrlicht's internal event system provides mouse, keyboard, joystick and GUI events without having to rely on additional libraries.{{Cite web|url=http://irrlicht.sourceforge.net/docu/example005.html|title = Irrlicht 3D Engine: Tutorial 5: User Interface}}
Filesystem access is abstracted allowing platform-independent file and folder access, and transparent access to files within ZIP archives. Other I/O features include an XML reader and writer, the ability to take screenshots, manipulate images and meshes and then save them in several different file formats.
Irrlicht provides support for simple collision detection including mouse picking, but users are advised that this is not intended as a replacement for a full featured physics engine.
Engine extensions
Irrlicht was designed to be able to load and save the current scene to an XML file; this combined with the engine's open-source licensing model has attracted various programmers and developers to create world editors for Irrlicht to simplify the world-creation process. One such example is the irrEdit world editor, developed by Nikolaus Gebhardt and other members of the company Ambiera.{{cite web|url=http://www.ambiera.com/irredit |title=Official website of the irrEdit Scene editor |publisher=Ambiera.com |access-date=13 November 2011}} IrrEdit contains a radiosity lightmap generator and a scripting interface using Squirrel scripts.
Since Irrlicht does not support sound by itself, Ambiera has also developed irrKlang, a non-free, proprietary audio library with an API similar to Irrlicht.{{Cite web|url=http://www.ambiera.com/irrklang/|title = IrrKlang - audio and sound library for C++, C# and .NET}} Being developed by the same group, irrEdit supports the use of sounds in levels made by irrEdit for use with irrKlang-enabled compiled DLLs. Also, among Ambiera's creations is irrXML, Irrlicht's XML parser.
Many physics libraries have had plugins and wrappers written for Irrlicht, including Nvidia PhysX, Bullet, and Open Dynamics Engine.
More extensions can be found in the Irrlicht forums and in the irrExt project, a side-project of Irrlicht for special purpose add-ons.
There are also some new technologies in forums such as Deferred shading or Shadow mapping. Many users contribute extensions such as Compute Shaders (OpenGL 4.3) and Tessellation Shaders (Shader Model 5.0).
Projects using it
- Arena of Honor, 3D deathmatch first-person shooter.[https://sourceforge.net/projects/aoh/ Arena of Honor on SourceForge]
- Amulet of tricolor, a 2D game
- Bolzplatz 2006 by Xenoage Software, a soccer game.
- Bugsnax, a monster collection adventure game.{{Cite web |last=Geisler |first=Kevin |date=13 June 2020 |title=Kevin Geisler on Twitter: "@FrancyRanc @YoungHorses yes, it is our final game in Irrlicht" |url=https://twitter.com/luthyr/status/1271866001467080705 |access-date=2022-10-11 |website=Twitter |language=en}}
- Build A World EDU, an educational scenario-based game, but it uses its own extremely modified and stripped-down version of Irrlicht.{{cite web |url=https://github.com/buildaworldnet |title=Build A World's GitHub Page|website=GitHub }}
- Craft The World 2014 by Dekovir Entertainment, a sandbox game that combine mechanics from Terraria and Dungeon Keeper games.
- Eve, a robot simulator by the Biologically Inspired Robotics Group (BIRG) at the Swiss Federal Institute of Technology in Lausanne.
- Galactic Dream: Rage of War, a commercial space strategy game by Evolution Vault.
- Gekkeiju Online, a gratuitous fantasy multi user role playing game.
- H-Craft Championship, an open source sci-fi racing game{{Cite web|url=http://irrlicht.sourceforge.net/2015/02/sci-fi-racer-coded-with-irrlicht-got-open-sourced/|title=Irrlicht Engine - A free open source 3D engine}}
- irrlamb, a 3D physics game{{Cite web|url=https://gitlab.com/irrlamb/code/-/tree/main/src/irrlicht|title=Irrlicht in irrlamb's source tree}}
- Luanti, an open-world-game similar to Minecraft (using a fork specialized for it).
- Octodad: Dadliest Catch, a comedic fatherhood simulator
- Project Chrono
- Schwarzerblitz, a 3-D fighting game released in 2019 for Windows PC. It is heavily inspired by Dead or Alive and Soulcalibur.
- Sokoban Challenge, a 3D remake of the classic puzzle game Sokoban for Android.
- Star Ruler, a 4X game in space
- SuperTuxKart (since version 0.7), a 3D kart racing game; though since version 0.9, STK uses an extremely heavily modified version of Irrlicht, including a whole new OpenGL 3-based renderer called "Antarctica".{{cite web |url=https://supertuxkart.net/Antarctica:_Overview |title=Antarctica engine |access-date=7 November 2017 |archive-date=28 March 2019 |archive-url=https://web.archive.org/web/20190328144918/https://supertuxkart.net/Antarctica:_Overview |url-status=dead}}
- Tetris (iOS version), a Tetris game from EA Mobile.
- The End Of Dyeus, an open-world adventure game
See also
{{Portal|Free and open-source software|Video games}}
References
{{reflist}}
External links
- {{Official website|https://irrlicht.sourceforge.io/}}
- [http://irrlicht3d.org Author's blog]
- [https://web.archive.org/web/20080615142754/www.irrlicht3d.org/wiki/ Irrlicht wiki] at irrlicht3d.org
Further reading
- {{flagicon|Germany|size=15px}} [https://www.heise.de/kiosk/archiv/ix/2006/9/52_kiosk Irrlicht review] at heise.de (paywalled)
- [https://www.brighthub.com/internet/web-development/articles/15493.aspx Using Irrlicht with Java] at Bright Hub
- [https://www.linuxjournal.com/article/10294 Irrlicht how-to] in Linux Journal (April 2009)
- [https://github.com/buildaworldnet/IrrlichtBAW GPGPU OpenGL-only focused fork] at GitHub
{{video game engines}}
Category:Free 3D graphics software
Category:Free software programmed in C++
Category:Game engines for Linux