fmII
Tue, May 13th home | browse | articles | contact | chat | submit | faq | newsletter | about | stats | scoop 11:01 PDT
in
Section
login «
register «
recover password «
[Article] add comment [Article]

 Irrlicht
 by Ian Gowen, in Project Reviews - Sat, May 8th 2004 00:00 PDT

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.


Copyright notice: All reader-contributed material on freshmeat.net is the property and responsibility of its author; for reprint rights, please contact the author directly.

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.


Author's bio:

Ian Gowen is a student currently residing in Oregon. He is a vehement Open Source advocate, and uses Linux whenever (and wherever) possible. Consequently, his first question about purchasing new hardware for his various computers is "Is it compatible with Linux?" He can be reached at graalguy@yahoo.com.


T-Shirts and Fame!

We're eager to find people interested in writing articles on software-related topics. We're flexible on length, style, and topic, so long as you know what you're talking about and back up your opinions with facts. Anyone who writes an article gets a t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let jeff.covey@freshmeat.net know what you'd like to write about.

[Comments are disabled]

 Referenced categories

Topic :: Games/Entertainment
Topic :: Multimedia :: Graphics :: 3D Modeling
Topic :: Multimedia :: Graphics :: 3D Rendering

 Referenced projects

Irrlicht Engine - A high performance cross-platform 3D engine in C++.

 Comments

[»] Blender does support .X export
by Kamran - Nov 3rd 2005 23:04:14

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.

--
you just need an start, the rest is upto your art!

[reply] [top]


[»] Mediocre level engine, wich is a good start for most..
by Rogier van Gemert - Aug 30th 2004 09:51:18

<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.....

--
Cheers, Rogier v Gemert

[reply] [top]


    [»] Re: Mediocre level engine, wich is a good start for most..
    by Ian Gowen - Sep 13th 2004 07:03:49

    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.....

    >

    [reply] [top]


      [»] Re: Mediocre level engine, wich is a good start for most..
      by Rogier van Gemert - Sep 13th 2004 07:49:08

      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.....

      > %

      >

      >

      >

      --
      Cheers, Rogier v Gemert

      [reply] [top]


    [»] Re: Mediocre level engine, wich is a good start for most..
    by jkromero - Dec 17th 2004 23:22:08


    > <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)

    [reply] [top]


[»] Some Thoughts
by Dumitru Pletosu - Jun 12th 2004 11:28:57

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 :).

--
The biggest problem of the mankind is that it makes the same mistake twice

[reply] [top]


[»] Your game
by BozMo - Jun 11th 2004 04:01:39

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

--
BozMo

[reply] [top]


[»] 3D Modeling Solution
by FelisTigre - May 8th 2004 17:21:51

What you need, good sir, is Blender (http://www.blender3d.org ) and a proper exporter: http://bane.servebeer.com/programming/blender/index.html. Enjoy. :)

[reply] [top]


    [»] Re: 3D Modeling Solution
    by Ian Gowen - May 8th 2004 18:25:32


    > What you need, good sir, is Blender

    > (http://www.blender3d.org ) and a proper

    > exporter:

    > http://bane.servebeer.com/programming/blender/index.html.

    > Enjoy. :)

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

    Ian

    [reply] [top]


      [»] Re: 3D Modeling Solution
      by FelisTigre - May 9th 2004 18:58:21


      >

      > % What you need, good sir, is Blender

      > % (http://www.blender3d.org ) and a

      > proper

      > % exporter:

      > %

      > http://bane.servebeer.com/programming/blender/index.html.

      > % Enjoy. :)

      >

      >

      > Whoa! Pretty cool. That gives me an

      > incentive to learn blender :)

      >

      > Ian

      >

      >

      Glad to be of service. :)

      James

      [reply] [top]




© Copyright 2007 SourceForge, Inc., All Rights Reserved.
About freshmeat.net •  Privacy Statement •  Terms of Use •  Trademark Guidelines •  Advertise •  Contact Us • 
ThinkGeek •  Slashdot  •  ITMJ •  Linux.com •  NewsForge  •  SourceForge.net  •  Surveys •  Jobs •  PriceGrabber