Slashdot Mirror


Irrlicht - Fast Realtime 3D Engine

Surye writes "Though a few days late on the release, Irrlicht has released version 0.7 of its engine. The site describes it as 'an open source high performance realtime 3D engine written in C++. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines.' Bindings for java, perl, ruby, and python, and it is platform independent (only implemented currently on Windows and Linux, but when it moves to other platforms, the code will be completely portable). The feature list is simply amazing, and since it's still being quite actively developed, I can see this becoming a major player soon."

34 of 221 comments (clear)

  1. game applications by Anonymous Coward · · Score: 5, Insightful

    This is neat and all, but they need to make a complete game with it. Without the game, the engine developers don't really know what game developers need, thus insuring that it's never used in commercial games.

    1. Re:game applications by Rakefighter · · Score: 4, Informative

      It is NOT GPL. Read the freaking web site.

      --

      --Life may have no meaning, or, even worse, it may have a meaning of which you disapprove.

    2. Re:game applications by nofx_3 · · Score: 5, Insightful

      Exactly. A project like this is actual one of those instances where a GPL license might be a bad idea. If both commercial and open-source developers all work on one engine, there are bound to be some contributions from both fronts (all from the open source camp) but there is the benefit that if this engine matures we will have games that are playable on any platform. I don't give a damn about my games being free as in beer, as long as developers are willing to make good games that play on linux I will be happy, even if the code is not open source.

      I do think that even commercial developers would give something back to a community that provided them with a free, robust, and mature game engine.

      -kaplanfx

      --
      Visualize Whirled Peas
    3. Re:game applications by pmjordan · · Score: 3, Insightful

      That's somewhat true. I've selected Irrlicht for graphics in our project, and although it's better than most other engines out there, it's still a pain to integrate into a game and still make it be replacable.

      The problem with all game-oriented graphics engines I've seen is that they do more than it says on the box. They handle input, XML parsing, file handling, etc. and you end up re-implementing a lot of stuff to tie it in with your code unless you let yourself depend completely on the engine in question.

      ~phil

    4. Re:game applications by Sunnan · · Score: 3, Insightful
      we will have games that are playable on any platform.

      Not unless the game developers provide recompiles for all platforms. The only programs that are truly "platform independent" come with source code.
    5. Re:game applications by pmjordan · · Score: 4, Interesting

      The point is that stuff such as file handling should be unified within the game, but everyone will have their own system. We use PhysFS to abstract everything within one big file tree. If you use PhysFS, you have to change, or, if you want to be able to upgrade to a higher version later without any trouble later, rewrite all the Irrlicht code that uses files, rather than writing some kind of plugin/implementing a generic interface.

      XML parsing was possibly a bad example, but we've basically got two XML parsers compiled into the game right now. Irrlicht's XML parser would be a pain to get running with PhysFS, and it only works once the graphics engine is set up, at which point we'll actually have done a considerable amount of XML file loading already.

      The problem with all this added functionality is that it's fairly laborious to work around if you don't want it, and it's quite likely that that is the case, because the way it's integrated into the engine isn't especially flexible.

      Input handling is another one of these problems. We support keyboard and joystick input in our game. Because keyboard input is heavily tied in with the windowing abstraction, and thus the graphics engine, it seems sensible to put it into the graphics engine. It isn't that clever though, because you'd now have two seperate systems doing almost the same thing - the graphics engine doing keyboard input, and the input system doing joystick input. It's barmy!

      I also shy away from anything but graphics being dependent on the graphics engine. If there was an Irrlicht file handling module, an Irrlicht Input module, and an Irrlicht graphics module, that would be great. If I decided to drop Irrlicht graphics I could still use Irrlicht file handling without having this behemoth sleeping in my source tree. As it is, I wouldn't even want to rely on loading sound files with the Irrlicht file system, because sound and graphics are, and should be separate.

      It can certainly be worked around, it would just be a lot friendlier to make it inherently more extensible, for example by creating a very simple file handling interface, providing a standard implementation that uses fstream objects or whatever, but leaving you the ability to create another implementation to that interface which happens to use your file handling system of choice. Lots of C-based libraries use callbacks for this kind of stuff, and in C++, with polymorphism in the language, it should be even cleaner!

      ~phil

  2. How does this compare... by Anonymous Coward · · Score: 5, Informative

    There's another OS 3d engine called crystal space 3d. It's been in development FOREVER now, and I'm still waiting for a completed cross-platform game, but it looks like a cool proejct. Anyone feel like porting this to mac?

    1. Re:How does this compare... by Kristoffer+Lunden · · Score: 4, Interesting

      We've been looking at Crystal Space, as well as Irrlicht and others such as the Nebula Device. In the end, we ended up buying licenses for Torque from GarageGames, because it has been used to do several games and it has lots of integrated tools built right into the engine. You can move and reshape just about everything inside the running game. Now, it is a bit dated, but there will be a newer version out hopefully soon with all those shaders the kids like. For now, it is definitely good enough for most people. Most people couldn't produce content to match the newest engines anyways... ;-)

      Really, Crystal Space or the Nebula Device may be better in themselves, but if we were to use them, we'd have to recreate all these tools ourselves. Hint: if you are gonna do a game of any serious magnitude, you will need tools, and lots of them. If Crystal Space wants to start seeing games built, they should include starter kits (as in something simple to start modding instead of starting from scratch) and more importantly tools. Tools for manipulating terrain, creating particle effects, placing objects and so on. Being able to import stuff from Quark or Maya is not enough. DO you as a level designer want to place everything in your game by entering numbers in a text file? I thought not... =)

      As for Irrlicht, I really like it a lot. It is cool, it is really, really easy to get something up quickly in, it has good performance and plenty of good examples to get one started. However, it is nowhere finished enough (but I can wait) and it is not a game engine - it is a 3D rendering engine that could very well be used to power an awesome game engine. I think some people over there are working on such beasts, though I don't know the status... if any of them also read this, remember the tools boys! ;-)

    2. Re:How does this compare... by Tet · · Score: 3, Interesting
      In the end, we ended up buying licenses for Torque from GarageGames

      I've always wondered why there seem to be so few (any?) licencees of Croteam's Serious Engine. Are they just pricing themselves out of the market, or something? I mean, Serious Sam has proved that it's more than capable of getting the job done, and Serious Editor looks to provide all the tools you could want. So why aren't people using it? What made you choose Torque? What advantages did it have over the competition?

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    3. Re:How does this compare... by Sir+Homer · · Score: 3, Informative

      That's cause SeriousEngine and Torque are completely different leagues. One Torque license is only $100 (with no royalty!), when the most limited SeriousEngine license is $20,000, and which includes high royalty rate, NO updates, and NO technical support. They are completely alienating hobby/indie developers who have less money to spend on a car let alone an engine. They are alienating professional developers too who have a $10 million dollar budget and who would pay the extra $100k for a better engine. Hence why they have no market share.

    4. Re:How does this compare... by Kristoffer+Lunden · · Score: 3, Interesting

      A lot of it boils down to who you are and why you are getting an engine, and yes, price matters. If you are an indie, an hobbyist or an upstart, $20,000 (Serious Engine minimum) is still a lot of money, even if the engine itself is worth every buck. I wouldn't know if it is, I just skimmed the site briefly.

      If you are someone who has investors backing you, or have a company with money in the bank... or at least someone with a contract with a publisher, you maybe can afford to shell out that kind of money, but is it worth it?

      On the surface, it seems you are getting about the same deal as you get with Torque, which is $100 per programmer - so it would then be a matter of ease of use and results: Are the tools that much better and does the result look that much nicer that it will be worth it - and even more importantly, will it pay off in money returned?

      But don't get me wrong, $20,000 is a drop in the ocean if we are talking about modern AAA games budgets, that is like what? What it costs to have a programmer for a couple of months maybe? So it may well be worth it to get that extra bang. However, if you have the money, why not step up a bit more and get an engine from Epic or ID or something? Sure, it costs quite a lot more, but you get to put "Powered by Really Known Engine" on the box. ;-)

      I'k kinda guessing that they might fall between the chairs a bit: low budget productions and upstarts can't afford it, and it isn't cool enough for the big boys.

      Also add to the fact that because Torque is so cheap, students and hobbysist can afford it, which gives a big and friendly userbase and community that helps each other out... and these guys can afford to do a demo level that can be used to sell the real game, which will use... Torque, probably, because that is what they know. They aren't gonna switch engine unless they land a deal that lets them buy one of the really big guns.

      Or so I speculate. It isn't easy to be sure of anything, but those are my best guesses.

      And am I happy we chose Torque? Yeah, mostly. What you get per dollar is simply unbeatable, even by the free alternatives, and the company has a sound take on open source, cross platform and indies. The engine sure has a lot of quirks, which hopefully will be sorted out with TSE, the next generation, but compared to doing all the tools ourselves or doing editing without them, it is a no-brainer.

      Would I use the Unreal Engine instead if I could? Probably in a heart-beat, as long as I personally didn't pay for it. ;-) But this Serious Engine? Dunno. Is it that good?

    5. Re:How does this compare... by Jorrit · · Score: 4, Informative

      If you think CS is not well designed and bloated then you don't really understand the structure. CS is very modular so while indeed we have a big source base, all of those modules are more or less independent. They result in plugins that can be loaded dynamically in the game. It is VERY easy to make a trimmed down version of Crystal Space where you simply remove the plugins that you don't want.

      As to design. CS is complicated to use (I agree with that) but the design of CS is geared towards flexibility (both for the game writer and also with regards to supporting new advanced features of modern 3D cards).

      Of course, I'm the original creator of Crystal Space. So take my opinion with a mountain of salt :-)

      Greetings,

      --
      Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
  3. So how is this engine different? by dsanfte · · Score: 3, Insightful
    Most open-source 3D engines are undocumented messes thrown together in the spare time of otherwise gainfully-employed graphics programmers.

    Ever tried coding with Genesis 3D? The documentation is shit. Take for example the explanation for the "GoEngine" function:

    GENESISAPI geBoolean geEngine_Activate(geEngine* Engine, geBoolean bActive);

    This seems to have something to do with whether the application is the current Active application.


    Yeah, hey guys, it seems to have something to do with something! Let's code with it! For fuck's sakes.

    Show me a 3D engine with reasonably documented code and I'll jump at it. Until then, you may have all the features in the world Mr. Engine Programmer, but if I can't pick it up and start doing something meaningful within an hour, you've failed miserably at your primary task: making sure the engine is actually usable.
    --
    occultae nullus est respectus musicae - originally a Greek proverb
    1. Re:So how is this engine different? by int2str · · Score: 4, Informative

      I guess Irrlicht is pretty good then...

      Irrlicht Documentation

  4. Within three hours of Irrlicht's release by Anonymous Coward · · Score: 5, Funny

    3D Realms issued a press release saying that they had standardized on it for the final engine to be used in Duke Nukem Forever

    When asked whether the move to Irrlicht would interfere with the work already done since their announcement last week that DNF had standardized on the Mario Party 6 engine, 3D Realms declined to answer, instead apparently becoming distracted by and taking chase after a rabbit running through the grass nearby

  5. Will It Last? by chesp3 · · Score: 4, Insightful

    I came across this engine once while looking for a good 3D engine for one of my games. It was great but people are afraid of the "iron fist" developer.

    Apparently the engine has only one developer who can supposedly drop the project at anytime. Probably not likely though. Maybe there are more developers now, this was weeks ago.

    1. Re:Will It Last? by Mike+deVice · · Score: 5, Informative

      My understanding is that the developer simply didn't wish to put his code into CVS or the like until after a version 1.0 release. Some other people at Irrlicht NX decided to take the source, stick it in CVS, and apply patches and fixes and the like. The author had zero problems with this, and even lauded the effort.

  6. Before you start bashing, check the site... by thrill12 · · Score: 4, Informative

    ...and download Irrlicht 0.7. In it, you will find "Irrlicht.chm", which starts with (I quote):
    Welcome to the Irrlicht Engine API documentation. Here you'll find any information you'll need to develop applications with the Irrlicht Engine. If you look for a tutorial on how to start, take a look at the homepage of the Irrlicht Engine at irrlicht.sourceforge.net or into the SDK in the directory \examples.

    The Irrlicht Engine is intended to be an easy-to-use 3d engine, so this documentation is an important part of it. If you have any questions or suggestions, just send a email to the author of the engine, Nikolaus Gebhardt (niko (at) code3d.com).


    In the documentation are the classes explained in a quite clear and concise manner, in JAVADOC-style.

    I'm sorry, but some 3D-engines do think that documentation is important, so I guess your 3D engine with reasonably documented code is already here....

    --
    Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
  7. "Game" engine vs 3D engine. by noselasd · · Score: 4, Informative

    Just wanted people to realize the diffrence here. irrlicht is is
    a 3d engine, which is about putting things on screen.
    For making a full game, much much more is needed. Player control/input
    handling, level loading when needed, loading saving of progress. Physics. AI. And , well, a _whole_ lot of other code. Plus some amazing
    artists and a good way of dealing with content made in 3d party applications(modellers)..

  8. Engine lacks... by SynKKnyS · · Score: 4, Informative

    Doesn't seem to have normal mapping (bump mapping and its cousins) or portal rendering (and all of its cousins). This doesn't make the engine very modern. It also seems to be lacking in the shaders department.

    However, it is open source so stay tuned in the future!

    1. Re:Engine lacks... by Anonymous Coward · · Score: 4, Informative

      Doesn't seem to have normal mapping (bump mapping and its cousins)...

      Bump mapping and it's cousins are generally implemented using vertex and pixel shaders, which the Irrlicht Engine supports.

  9. The benefits of a good virtual machine by ShatteredDream · · Score: 4, Interesting

    Imagine if the parrot or mono guys wrote really slick bindings for this and made them availible on all supported platforms. Personally, I would rather have a game that is just "pretty" fast but isn't bound to a particular operating system to one that is really fast, but that I cannot take to any platform I want.

    If PERL 6 and Parrot are able to get really mature in the next 6 months to a year, they owe it to their users to try to provide solid support for a library like this as part of the parrot distribution. A language like PERL 6 which is supposed to be really slick thanks to ruby's influence on its design would be great for opening up game development to the masses.

    The way I see it, unless a game written in C/C++ is going to completely max out your CPU and GPU then it's probably worth being written in C# or PERL 6 eventually. Something like this would be Microsoft's worst nightmare for home users who play games a lot.

  10. Good but not the best by KrackHouse · · Score: 4, Informative

    Irrlicht is good because it's easy to use. If you want a high performance engine for use in a serious project have a look at OGRE. Sure it's harder to use but it has an active community and the performance in complex, real world scenarios is great. I looked at both when researching what to use for Motorsport and right now, OGRE is a better choice for big serious apps. We're using OGRE for our open source driving simulator and it compiles in Linux and Windows with no changes to the code. OGRE is good because it sticks to what it is good at, 3D. There are a lot of Game engines out there that try to be all things to all people but aren't good at any of them. OGRE is good at 3D.

    That said, if you're new to 3D Irrlicht is a good place to start.

    --
    What if Digg added local news and a Slashdot inspired comment karma system? ---
    http://houndwire.com
    1. Re:Good but not the best by Mawen · · Score: 4, Informative

      I second the advice to take a look at Ogre. Ogre has an very clean, well designed, and stable API. (Especially compared to some other engines. I for one found it many times easier to understand and more organized than Crystal Space when I stopped following it a couple years ago.)

      While Irrlicht may be designed to provide a very nice and quick API for beginners to 3D programming, Ogre has seemed more professional to me. As a graphics engine, Ogre seems top-notch in terms of performant implementation of bleeding edge features that won't run on anything less than the latest generation video cards. (I have not really taken a close look at Irrlicht since about version 0.5 though.)

      There have been at least a couple commercial games released (an arcade machine and some game appearing on Finnish television) done with Ogre.

      I think that because it is new, and maybe because it is a graphics engine and not a game engine, Ogre has been getting less press than it may deserve. Anyway, be sure to check it out.

      Also, don't judge an engine by their demo screenshots. Open source authors often don't have the resources to make beautiful artwork to dazzle people with (nor do they have the financial incentive to do so).

  11. Crystal Space 3D by myspys · · Score: 5, Informative

    Another engine that is open source (LGPL) and possibly a bit more mature than Irrlicht is Crystal Space 3D.

    From the about us-blurb "Crystal Space is a free (LGPL) and portable 3D Game Development Kit written in C++. It supports: true six degrees of freedom, colored lighting, lightmapped and stencil based lighting, shader support (CG, vertex programs, fragment programs, ...), mipmapping, portals, mirrors, alpha transparency, reflective surfaces, 3D sprites (frame based or with skeletal animation using cal3d animation library), procedural textures, particle systems, halos, volumetric fog, scripting (using Python, Perl, Java, or potentially other languages), 16-bit and 32-bit display support, OpenGL, and software renderer, font support (also with freetype), hierarchical transformations, physics plugin based on ODE, ... See the extensive list of features for more details."

    Read more at http://crystal.sourceforge.net/

  12. Easy To Use... by md81544 · · Score: 4, Informative

    I'm impressed. Downloaded the 0.7 zip file from the site (it was the only download available). I thought... well, this must be the windows version (I'm on Linux FC2), but I'll have a look at the code anyway. Unzipped it, realised it was for Win and Lin, looked for a "configure" script, couldn't find one, so just ran "make". All compiled without a single problem. Then went to the examples and compiled all those, again just with a make, everything ran OK. It seems pretty solid. I think this is going to be great.

  13. Re:Portable 3D Engine by jericho4.0 · · Score: 3, Interesting
    The Unreal licence cost ~$250,000 U.S. I don't know about you, but it might as well not exist for me.

    The only other reasonable option is the Torque3D engine.

    --
    "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
  14. license by j1m+5n0w · · Score: 4, Informative

    Here's the actual license, for those too lazy to follow the parent's link. It's very short, and allows you to do pretty much whatever you like with it:

    Copyright © 2002-2003 Nikolaus Gebhardt

    This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

    Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

    • 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
    • 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
    • 3. This notice may not be removed or altered from any source distribution.

    -jim

  15. Picture Quality... by i-Chaos · · Score: 3, Insightful

    I have been following the releases of Irrlicht because I've been looking for a good 3D Engine that's easy to use. The only problem that I've found with the Irrlicht Engine is that things just don't look so good, and have a gritty look to them. I don't know what is the problem, but I haven't seen any "nice" renders of anything using Irrlicht yet. Nothing production quality, anyway.

    --
    ...I am proof that intelligent beings are not always intelligent...
    1. Re:Picture Quality... by wazlaf · · Score: 3, Informative

      I don't understand all the excitement about Irrlicht - wile it is surely an OK 3D Engine, it lags just so much behind in terms of what's possible with current 3D Hardware. If you are looking for something more advanced, have a look at OGRE. It does decent stencil shadows, is also independent of the underlying rendering API and it is used in many commercial and open source games.

  16. REAL WORLD: Cost of Engine vs Senior Engineers by adisakp · · Score: 3, Insightful

    First of all, I work in the REAL WORLD of games development.

    That said, $250K is not cheap but it's not an exorbitant cost to license a full graphics engine and tool chain. That's the same order of magnitude cost as Criterion Renderware which many companies license (and is what we use at Midway Games for nearly all of our games including the upcoming Mortal Kombat 6). Of course, with Renderware you can license just the engine (without the tools like Renderware Studio / Physics) or the additional packages you like rather than everything and save some $$$.

    You just have to put it in perspective that the engine license typically cost less than 2-3 Senior Engineers for a year. Plus most teams only have a couple really senior graphics guys and they tend to also be the senior system level guys as well. Do you want those guys stuck writing the graphics engine and supporting it for the whole game or do you want them making a better game?

  17. OGRE3D by ggambett · · Score: 4, Informative

    Our current project uses OGRE (http://www.ogre3d.org). We evaluated Irrlicht, CrystalSpace and others, which are good, but you defintely want to take a look at OGRE.

    OGRE doesn't try to be a game engine - just an Object-oriented Graphics Rendering Engine. It can be easily integrated with other libraries to create a complete game framework - ODE for physics is a quite popular choice.

    OGRE itself focuses on a clean and well designed API, while other engines are just hacks over hacks. It also has a very knowledgeable community and a very involved project leader.

  18. What's so "real-time" about it? by skids · · Score: 4, Interesting

    People have to stop abusing this term. There's nothing in that API that even qualifies it as soft-real-time. Real-time APIs have runtime estimation, deadline scheduling, and other things that have to do with managing time.

    Not that I'd expect it to be real-time given it doesn't require any real-time OS features, and not that I know anything about whether game developers can use real-time features, just a pet peeve.

  19. Another one?? by Saville · · Score: 4, Informative

    There are quite a few 3d engines out there. The biggest I guess are Crystal Space 3D, Genesis3D, OGRE, Toque (Tribes2), Quake and Quake II. Of course there are others to fill certin niches like Yeti or ExoEngine and libraries like DevLib and G3D for those who want to write their own engine, but don't feel like they need to implement yet another file loader. I'm not sure why 0.7 of Irrlicht was worth mentioning on /. as it is isn't clear what its roll is compared to those other engines.

    I was at Siggraph 2004 and attended a round table on "how will you (game developers) feed next generation games". The problem is going from a Playstation1 to Playstation2 many developers found games now took roughly 2 to 3x the man years to create. But profits didn't really go up that much to compensate. This has happened every console generation and will happen again with the up coming generation. PC games don't have clear generations, but the same concept applies.

    The main ideas were to reuse content. For example if you're making a Matrix game, get the 3d models from the movie instead of making your own and start from there. Or if you're making a port try to reuse as much as possible. Future games will have a lot of computer generated stuff which is artist guided instead of artist created so that one artist creates a forest instead of creating a bunch of leafs on a single tree.

    A big surprise to me was open source wasn't mentioned until somebody asked. A company like id will implement something cool like unified lighting for all objects first, but a year later everybody has their own implementation of it. Every year has something like this that gets the anual lens flare award; colour lighting, ground clutter, normal mapping, rag doll physics, etc. Yawn. Every company spends all this time re-implementing the exact same technology. All developers can read the same papers from Siggraph, Eurographics, or GDC and then discuss them on the same mailing lists so there is plenty of open sharing happening already. So I was surprised to hear none of the guys at the round table thought open source would really be useful to help save them money in the future other than for rather basic things like zlib, lua, etc.

    It sure would be nice to see some engines reach commercial quality to used in some good games instead of getting more and more re-implementations of the foundation, which /. apparently is finds interesting. Once it happens there will be a huge snow ball effect where it picks up a LOT of developer attention. Maybe in five years one of the existing engines will reach a level of maturity that it can start to be really used and then in another ten we'll see it catching on like GNU/Linux is now?