FAQ – Irrlicht Engine - A free open source 3D engine

FAQ

Frequently asked questions and their answers:

What is the Irrlicht Engine?

The Irrlicht Engine is a high performance open source and cross platform 3D engine for creating realtime 3D applications. Its main targets are to be easy to use, extremely fast, extensible and crash safe.The engine is a quite flexible graphics engine, and it is possible to write lots of different applications with it. Some are: complex 3D simulation applications, first and third person shooter games with indoor and/or outdoor scenes, real time strategy games, 2D games, …

For more information, look at the features page.

Can I use the engine in a non open source commercial product?

Yes you can. The engine is open source and totally free. You can debug it, fix bugs and even change things you do not like. And you do not have to publish your changes: The engine is licensed under the zlib license, not the GPL or the LGPL. Look at license for more information.

Can I create my game using Irrlicht as game engine?

Of course you can, it’s easy.

But please note: Irrlicht is not a game engine, it only does graphics. For a game, you need a bit more, like sound output and maybe networking and physics, and tools such as a game level editor. You are free to choose any other library to do this. But to make it easier, there are libraries and tools made by us which are independent of Irrlicht, but easily integrate with Irrlicht engine projects. For example, there is irrKlang, a free 3D and 2D sound engine, or irrEdit, a free 3D world and level editor. See the toolset page, the wiki or the forum for more information and help about this.

How can I make contributions to the engine?

If you’ve wrote your own SceneNodes, image or mesh loaders or further extensions to the engine, just send them per mail to me or post them into the forum. We will have a look at them and consider to put them on the homepage or even into the SDK of the engine.
There is a tutorial available on the tutorial page, which shows how to extend the Irrlicht engine. If you want your addition to be merged with the development branch, please also try to adhere to the Irrlicht coding rules.

There are lots of other 3D Engines available. So what are the advantages of the Irrlicht engine?

The Irrlicht engine was created because no available 3D engine satisfied my needs. I wanted an engine which had some awesome features, and no engine wich was available featured these things:

  • Easy to use. All standard things and all cool special effects of the Irrlicht Engine are able to be used without the need to study its documentation for days. For example: To start up the engine, load and show a complete quake 3 level needs only about 6 calls to the engine and about 10 lines of code. Just take a look at the tutorials and examples included in the sdk.
  • Flexibility: The programmer is able to change and influence almost everything in the engine although it is that easy to use.
  • Extreme stability. Most libraries for realtime applications crash when the user does something the library programmer did not expect. This is different in the Irrlicht engine. It prints out a warning to (debug-)log and continues, always trying to keep on running.
  • Fast as lightning. Because speed is always an issue with 3d engines.
    Lots of built-in importers. The engine is able to directly load lots of common file formats because I did not want to use converters or exporters, increasing development time. (.3ds, .md2, .obj, .pk3, .ms3d, .bsp, .x, .bmp, .tga, .jpg, .psd, .pcx…)
  • Platform independence. The engine is available on multiple platforms.
  • API independence. Because there are always some driver issues, the Irrlicht engine supports more then one API. Currently there is an OpenGL, Direct3D8 & Direct3D9 device, a null device and two software rasterizers. The devices are able to be switched during runtime.
  • No dependencies from other libraries. The engine needs no other libraries and sdks to be installed. Not for programming with the engine and not for using the engine as end user. E.g. The engine will also start up if no DirectX is installed on the end user system.
  • Detailed Documentation. With lots of examples and tutorials.
    All the standard stuff. It provides you built-in tools and utilities you will often need in 3D applications. Things you do not always want to code again when doing a new application. (GUI System, Font System + Tools, fast 3D Math, Containers, …)
  • Open source. The engine is fully open source and totally free. You can debug it, fix bugs and even change things you do not like. And you do not have to publish your changes: The engine is licensed under the zlib licence, not the GPL or the LGPL.

You can take a look at the features page of the Irrlicht engine, for a more detailed description of most features.

How many polygons is the engine able to draw?

There is no limit. Okay, almost none: The only limit is your hardware. So push out as much polygons as you need, as long as your game runs quickly enough.
Some people keep asking why there are only 10000 polys in the techdemo as maximum. This is only because I did not want to include a huge quake 3 level, making the SDK download size bigger. If you want to see the engine render more polys, just replace the demo level with another one, and see for yourself.

I’ve a problem with my code, could solve it for me please? I get no answer in the forum.

Sorry, but I don’t have the time to debug your application. Lots of people are sending me their code because they are not capable of using a debugger, and I am not able to check every program which is sent to me. In most cases it’s a problem in your C++ code and has nothing to do with the engine. Just start your debugger and find out where your application crashes. Or if you don’t know how to use a debugger, you could print out a text before every line, to find out at which line it crashes.

The most common reason, why you don’t get any help in the forums is because you did not specify your problem enough. Just pasting 100 lines of code into there and writing “it crashes somewhere here, could you solve it for me” is not enough. Hey, you are the programmer, and at least 60% of the programming time is spent debugging the code. Well, this is how I do it, and the 60% value may be higher or lower for other programmers, but I think you get the clue. Just try to find out by yourself what you did wrong. You’ll learn more from this then if you let it be fixed by others.

What does ‘Irrlicht’ mean?

Irrlicht is the german word for a fairy-tale creature which glows and flies, and can be found mostly in the vicinity of swamps. I think the correct english translation is “will-o’-the-wisp”. Also, the word “Irrlicht” is the composition of the two german words “irr”, meaning “mad” and “Licht”, meaning “light”. The Irrlicht Engine is being developed in Austria (country south of Germany, not Australia) and so I think ‘Irrlicht’ is a cool name, although non german speaking people may not know how to pronounce it.
Because lots of people asked me how it is pronounced, I uploaded a .wav file, in which you can hear a girl saying ‘Irrlicht Engine’.

Can I join the Irrlicht Engine team?

Don’t ask us, we’ll ask you!

Though we do have a benevolent dictator, the team is essentially a meritocracy, so if you’re a respected member of the community who provides lots of bug fixes, patches and/or other enhancements, then you will eventually be invited to join the development team officially.

What will be in the next release of the engine?

The changelog contains a list of changes that will definitely be in the next release.

When will the next version be released?

When it is ready. We aim for about two major releases a year, we have a tradition of deciding this about a month in advance and keeping the release date private in case we miss our deadline. A careful eye on the SVN log might give you some clues!