 |
Irrlicht
by Ian Gowen, in Project Reviews - Sat, May 8th 2004 00:00 UTC
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]
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]
|
 |