Articles / Irrlicht

Irrlicht

One thing I've always wanted to do is create my own computer game. This is a slightly ambitious goal for a relatively inexperienced programmer like myself, but I figured I had nothing to lose and would gain some valuable programming skills to boot. Since the game in question was to be a 3D adventure game, I needed a suitably easy-to-program 3D engine to supply the backbone for my project. So I hit freshmeat for an Open Source engine, since commercial engines are priced for game companies, not hobbyists. The one I settled on was Irrlicht, a C++ API that can use Direct3D, OpenGL, or its own software renderer.

Features

In my opinion, the best thing about Irrlicht is the learning curve. I was literally programming 3D applications after I had examined the "hello, world" sample program. It uses a class-based system that is intuitive and easy to remember. It is also simple, and much of the complexities are handled by the engine itself, rather than making the programmer responsible.

Irrlicht supports a wealth of file formats. It will load and display 3ds Max files, Quake 2 MD2 Models, Maya .obj objects, Quake 3 .bsp maps, Milkshape3D objects, and DirectX .x files. 3ds Max and Maya objects are widely supported by many 3D modelers (such as Wings3D), so creation of these files is very easy.

Particle systems are also implemented in the engine, making creation of complex effects such as fire and fountains of water very easy. It even has a rudimentary gravity effect that you can attach to particle systems that cause the particles to fall after a few seconds.

Another nifty feature is the concept of "animators." Animators are classes that can be attached to any object within your program, and are primarily involved in smooth movement of 3D objects. They are easily extended to fit your needs. For example, I had no trouble modifying the "FlyCircleAnimator" to cause the object to fly on an oval-shaped path.

Irrlicht is also well-documented. Although its author, Nikolaus Gebhardt, is slightly rusty on some of his English, the API reference is by no means unreadable. For some of the inner workings of the engine, there is no documentation, but most of the undocumented classes are fairly self-explanatory.

Problems

The engine has one shortcoming that I find annoying: It is virtually impossible to create Irrlicht-compatible animated models without high-end software. The animated model formats that Irrlicht supports are MD2, the Quake 2 character model format, and Microsoft's own .x format. I found creation of models in these formats to be cumbersome at best. I plunked down $25 for Chumbalumsoft's Milkshape3D, but found even that to be lacking in model creation capabilities. It would seem that the best way to design .x models is to model in 3ds Max and use Microsoft's exporter. However, this is but wishful thinking for those of us with limited resources (3ds Max costs $4,000).

Also, as of version 0.6, the "skybox" object is only capable of displaying 16-bit textures, thus showing color banding on higher-quality images. I find this to be a nuisance.

When using the Direct3D renderer, the engine will cause the program to crash if it's running in windowed mode and the user's color bit depth is not 16 or 32 bits. However, this is easily overcome with some basic error checking.

Conclusion

While Irrlicht is clearly still in the beta stadium, it shows some real promise. It has a large, active community that can (and will) answer questions about it.

Irrlicht gave me the motivation to learn C++, as well as teaching me many programming skills. The entire package is only 10MB, so I encourage you to download it and give it a shot! Both Windows and Linux are supported, but Direct3D is only available for Windows (naturally). I have not tried using Irrlicht under Linux, so your mileage may vary.

RSS Recent comments

08 May 2004 17:21 felistigre

3D Modeling Solution
What you need, good sir, is Blender (www.blender3d.org (www.blender3d.org) ) and a proper exporter: bane.servebeer.com/pro... (bane.servebeer.com/pro...). Enjoy. :)

08 May 2004 18:25 gbtmud2

Re: 3D Modeling Solution

> What you need, good sir, is Blender

> (www.blender3d.org ) and a proper

> exporter:

> bane.servebeer.com/pro....

> Enjoy. :)

Whoa! Pretty cool. That gives me an incentive to learn blender :)

Ian

09 May 2004 18:58 felistigre

Re: 3D Modeling Solution

>

> % What you need, good sir, is Blender

> % (www.blender3d.org ) and a

> proper

> % exporter:

> %

> bane.servebeer.com/pro....

> % Enjoy. :)

>

>

> Whoa! Pretty cool. That gives me an

> incentive to learn blender :)

>

> Ian

>

>

Glad to be of service. :)

James

11 Jun 2004 04:01 AndrewCates

Your game
Is your game up anywhere? I'd love to have a look at what a beginner can achieve these days (as a beginner too)
BozMo (catesfamily.org.uk/)

12 Jun 2004 11:28 dimovich

Some Thoughts
IMHO there are only 2 things that stop beginers from doing great things: 1-fear from unknown and complicated things; 2-boredom that appears because of the "interest treshold level", that merely roots from the first problem, and fear of unsuccesful end...

AS you see I would better speak, and urge someone to write an article more about the way people get things done, and motivation that drives them to do them and keep them cool.

Also, about the 3D Game programming, I think it is great to start doing it using a library that gets you away from all math and low level directives... You learn the abstract concepts, and only if you are really a future Carmack, you will dive into the realm of games' 0's and 1's :).

30 Aug 2004 09:51 dslfreak

Mediocre level engine, wich is a good start for most..
<br>

I'v tried this engine myself to see what the fuzz is all about :-)<br>

The engine (and techdemo provided) looks (at first) nice. It has some nice things in store to fiddle with. (wich is nice for beginners too)<br>

However, after playing with it for some time, the engine began to show more and more negative setbacks... for instance... <br>the graphic render module is not that good, it lacks the quality AAA-class engines have. (it actually made me think that i was seeing a render of a game back in 1998).<br>

So the engine is more an educational kind of engine, and not an engine usable for a commercial class game. <br>

So if you want to be in 3d gaming business, this engine can proof itself, in the way of learning you how some things are accomplished in the 3d programming.<br>

<br>

I'll stick with a more AAA class engine.....

13 Sep 2004 07:03 gbtmud2

Re: Mediocre level engine, wich is a good start for most..
Mediocre, yes, but you must realize that this is only in the 0.7(as of last saturday) stadium, which is hardly production-level quality. I chose Irrlicht a) for its ease of use and b) for its licensing: it's under a zlib-style license. I doubt you'll find a less restrictive license on any 3D engine. It ain't Torque, but it has a good features-to-ease-of-use ratio.

> <br>

> I'v tried this engine myself to see what

> the fuzz is all about :-)<br>

> The engine (and techdemo provided) looks

> (at first) nice. It has some nice things

> in store to fiddle with. (wich is nice

> for beginners too)<br>

> However, after playing with it for some

> time, the engine began to show more and

> more negative setbacks... for

> instance... <br>the graphic render

> module is not that good, it lacks the

> quality AAA-class engines have. (it

> actually made me think that i was seeing

> a render of a game back in

> 1998).<br>

> So the engine is more an educational

> kind of engine, and not an engine usable

> for a commercial class game. <br>

> So if you want to be in 3d gaming

> business, this engine can proof itself,

> in the way of learning you how some

> things are accomplished in the 3d

> programming.<br>

> <br>

> I'll stick with a more AAA class

> engine.....

>

13 Sep 2004 07:49 dslfreak

Re: Mediocre level engine, wich is a good start for most..
Ian,

Ok, you're right. It was (and is) a bit premature to compare the engine towards well known engines (wich i've used too).

Don't get me wrong: The engine has huge potential, sure, no doubt about it.

In other words, keep it up! still there is a long way to go... :-)

cheers, Rogier van Gemert

> Mediocre, yes, but you must realize that

> this is only in the 0.7(as of last

> saturday) stadium, which is hardly

> production-level quality. I chose

> Irrlicht a) for its ease of use and b)

> for its licensing: it's under a

> zlib-style license. I doubt you'll find

> a less restrictive license on any 3D

> engine. It ain't Torque, but it has a

> good features-to-ease-of-use ratio.

>

>

> % <br>

> % I'v tried this engine myself to see

> what

> % the fuzz is all about :-)<br>

> % The engine (and techdemo provided)

> looks

> % (at first) nice. It has some nice

> things

> % in store to fiddle with. (wich is

> nice

> % for beginners too)<br>

> % However, after playing with it for

> some

> % time, the engine began to show more

> and

> % more negative setbacks... for

> % instance... <br>the graphic

> render

> % module is not that good, it lacks the

> % quality AAA-class engines have. (it

> % actually made me think that i was

> seeing

> % a render of a game back in

> % 1998).<br>

> % So the engine is more an educational

> % kind of engine, and not an engine

> usable

> % for a commercial class game.

> <br>

> % So if you want to be in 3d gaming

> % business, this engine can proof

> itself,

> % in the way of learning you how some

> % things are accomplished in the 3d

> % programming.<br>

> % <br>

> % I'll stick with a more AAA class

> % engine.....

> %

>

>

>

17 Dec 2004 23:22 jkromero

Re: Mediocre level engine, wich is a good start for most..

> <br>

> I'v tried this engine myself to see what

> the fuzz is all about :-)<br>

> The engine (and techdemo provided) looks

> (at first) nice. It has some nice things

> in store to fiddle with. (wich is nice

> for beginners too)<br>

> However, after playing with it for some

> time, the engine began to show more and

> more negative setbacks... for

> instance... <br>the graphic render

> module is not that good, it lacks the

> quality AAA-class engines have. (it

> actually made me think that i was seeing

> a render of a game back in

> 1998).<br>

> So the engine is more an educational

> kind of engine, and not an engine usable

> for a commercial class game. <br>

> So if you want to be in 3d gaming

> business, this engine can proof itself,

> in the way of learning you how some

> things are accomplished in the 3d

> programming.<br>

> <br>

> I'll stick with a more AAA class

> engine.....

>

I happy to see that someone who can afford $1Mill per project for a AAA 3d Engine (i.e Id's Commercial Engine) still chooses to browse around freshmeat.net......

as for looking like something from '98 try running it on hardware from 2004

($1500 laptop amd64 3gigHZ 512Mb 64meg-ati 9600igp

@ 200+fps on the Techdemo with q3ctf2.bsp & textures

(thats 39000+ polys in that map)

with OpenGL & D3D8 D3D9 support & True Platform Independance)

it leaves a lot of overheadroom for dynamic game content.

try doing that in '98 without an SGI Onyx WorkStation($50,000+ and propriatary API's !!!)

but for my money Irrlecht is quite a feat,

the best part about it is if something is not quite to ones taste, the source is there to spice it up,(a true 3D programmers gift from the gods), and it also works as promoted right out of the box. PreCompiled DLL's WOW.

also

i rebuilt the entire project without having to debug a single line of code,or download any 3rd party libs, incredible.

(on msvc6++ noless)

as a Graphics programmer since the raster&vector days (that is back in '84) i am IMPRESSED

it definitly paves the road for the next generation of programmers to concentrate on intuitive gameplay and dynamic content without having to write 150 lines of code just to init a gfx mode, or lay out 10 grand for an entry level 'AA' Engine. (note thats only 2 A's meaning only adequate)

AnyOne Interested in Irrlecht OpenGL Support for

the i-glasses 3D display and/or HeadTracker please let me know, I could use some beta testers,

Also i am personaly offering webspace for Articles/Examples/Tutorials etc.. for the Irrlecht API (Comming Soon to a URL near you...... send all inquiries to 3D@jkromero.com)

03 Nov 2005 23:04 codebox

Blender does support .X export
You dont have to purchase 3dsmax for anything! Blender has an .X file exporter. Besides that, Blender can also export OBJ files so there is no downside in this regard anymore.

Screenshot

Project Spotlight

confluence-el

An Emacs extension for interacting with a Confluence wiki.

Screenshot

Project Spotlight

Aspose.Pdf for Reporting Services

A system to generate PDF reports from MS SQL Server 2000 & 2005 Reporting Services.