what is missing from irrlicht?

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
fmx

Post by fmx »

In my case, I preferred writing my own rendering engine for iOS because I felt irrlicht was too bloated and I couldn't spare the time hacking up the source to slim it down.
I actually found I could write raw GL-ES rendering functions quicker than just glancing through irrlicht source files to see what was essential or not

IMO the only things irrlicht needs to change is the material-system, better render-pass control, and support for some kind of custom vertex formats.

Everything else people desire (animation system, better shadows, PP shader frameworks etc) would then follow on as a natural consequence because they would be easier to create and the community would have a lot more options available to decide what should go into next version of irrlicht
Radikalizm
Posts: 1215
Joined: Tue Jan 09, 2007 7:03 pm
Location: Leuven, Belgium

Post by Radikalizm »

Well, I was replying more to Mikhail9, since he was talking about people who write their engines because they 'think they can do it better than the last guy' (although I do agree that there are people like this out there, but this is just a horrible generalisation)

To reply to your post: the writing of separate classes to extend the engine is actually what irrlicht was built for, it's just a base platform on which you can build an extended framework (see the custom scene nodes for example)
Code has to reach a certain quality and completeness before it is considered to become a part of the main engine itself, and it has to fit in with the original design goals of irrlicht, so it has to provide completeness and stability on all supported platforms (which is much harder than it sounds)

The downside of it all is of course that classes can become dependent on previously built frameworks so not everyone can use them out of the box, and a whole collection of different classes, written by different programmers in different coding styles and/or with bad coding practices can become one huge mess after a while (what is dependent on what? how does the interface for this specific class work again? etc.)

This then leads to people like devsh and others writing their own complete frameworks on top of irrlicht, to guarantee a single coding style with coherent interfaces and a guaranteed functionality, since it's you and you alone (or your team) who manages and writes the code
This creates a codebase tailored to your specific needs, even though it doesn't necessarily fit in with the irrlicht design, and it doesn't matter that it doesn't fit in, because it will be only you or your team using it and you won't have to provide support to anyone who wants to use your code the next following years (unless you license the code of course)

I am all for a greater community involvement in the development of this magnificent engine, but I can completely understand why people build their own private frameworks (I too have a private irrlicht-based framework used for prototyping and test cases, although it hasn't seen that much action lately)
Mikhail9
Posts: 54
Joined: Mon Jun 29, 2009 8:41 am

Post by Mikhail9 »

Radikalizm wrote:Well, I was replying more to Mikhail9
I suppose I should clarify that I wasn't talking about any current forum participant in particular, which is why I removed Devsh's name from the text I quoted. Obviously you guys have good reasons for doing what you are doing (and can explain it clearly -- a good sign). From what I've seen you've got the skills to complete the job.

And while we're at it, there's nothing wrong with making a new and improved engine because you like working on engines, either. That's hobby work; go for it.

But even experienced programmers go down the "rewrite" rabbit hole time and time again, and most of the projects are abandoned. It's played out numerous times here on this board during the years I've been reading it, and it happens frequently in the real world where real money goes down the drain. You can never convince those programmers of the risk.

We should all be as clear as Radikalism and fmx about what we are really trying to accomplish and avoid the distraction of rewriting something peripheral to those goals. I hope you guys can find time to push some improvements back to Irrlicht, because I definitely do NOT like writing frameworks or engines and I'm therefore dependent on others to make it better.
Radikalizm
Posts: 1215
Joined: Tue Jan 09, 2007 7:03 pm
Location: Leuven, Belgium

Post by Radikalizm »

I already try to port my work over to the irrlicht engine whenever I can, but the difference in architectures makes this difficult to do without messing with irrlichts internals

I tried to port my multithreading model over to irrlicht for example, but it required some really dirty hacks to get it to work, and I think we can all agree that hacks are bad (m'kay) :D

And you're right about a lot of these projects getting abandoned, and I've learned from my own experience and my own set of abandoned projects that it's always because a lack of planning (although planning EVERYTHING is impossible), or a lack of insight in the project you're trying to do
This is why it's so important to teach newer users/programmers to start small and simple, and to tell them that they have to grow into these larger projects they have in mind, even if they don't like to hear this


But back on topic:

Maybe it would be a good idea to put up some sort of 'programmer guide' for irrlicht which explains irrlicht coding standards, use and creation of the interfaces and underlying implementations, and how to write good multi-platform code (when applicable)
If people would then use this as a reference for writing their irrlicht-related code, you'd get a much higher quality of code which creates a common usage and 'feel' throughout all irrlicht extensions, matching the usage of the engine itself
This would also be good for people who want to start their programming adventure with irrlicht, since they'll immediately get an understanding of good coding practices and OOP
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

MarcoTMP
Posts: 37
Joined: Mon Aug 29, 2005 8:14 pm
Location: Dominican Republic
Contact:

Post by MarcoTMP »

Adler1337 wrote:If a company supported it then it would no longer be free. Half of what makes irrlicht great is the fact that it is free.
Not necessarily. Look at other projects like Ubuntu (Canonical), drupal (Aquia), ogre (Torus Knot Software), and others.

Back on topic, I think there should be a way to increase the participation of the comunity for the creation of modules and addons, but we have to think about how to achieve that.

I think if we are seeing ppl creating their own new engine or not contributing their modifications back, maybe there is something missing.

Maybe it's time to review things like the global vision of the engine,
or to think about an open source business model to support the engine, don't know, just thinking. :wink:
Alpha Omega
Posts: 288
Joined: Wed Oct 29, 2008 12:07 pm

Post by Alpha Omega »

I have been using Irrlicht on and off for about 2 years. Probably only coding my own projects for 3 months or so of that 2 years. I learned C++ to use Irrlicht because I wanted to understand how to make games. Then I became more interested in the math behind the games. Now I am writing a physics engine for Irrlicht. My OOP skills are zero but I can use Irrlicht easily. I think the documentation in doxygen is very nice.

On the other side, I must agree I do not like the tutorials. I tried using the tutorials but as a new user I did not have the capability to understand the code behind the interface. (It was my first time dabbling in such a thing). I have learned so much in the last month writing my own physics engine than trying to understand the tutorials to write a game and I feel that to understand irrlicht you need to implement something new on top of it. To get my physics to work right I had to go into the docs and understand how all the methods worked.

Anyway I know Irrlicht is a graphics engine, and I have no idea how graphics works at all. I dont know if I will switch over from physics to graphics. If I did this than maybe I could help write code for Irrlicht but than my c++ would have to get better to write efficient code.

I would personally like to participate in building things for Irrlicht because I am here to learn how to do something new for a hobby and if you can help Irrlicht become better at the same time than why not try?

I see that Irrlicht collsion detection system is not that great. Even as a novice in C++ I found that Irrlicht collision system was not good at all for several reasons.

1) Only AABB method for bounding volume
2) The collision animators are not robust

This is on top of the fact that there barely is any methods for collisions specifically. I am not saying that I could do better but I ventured into the physics engine simply because Irrlicht did not provide what I needed. I would be glad if someday my physics engine could be a part of irrlicht but at the same time its only a personal project.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

MarcoTMP wrote:Back on topic, I think there should be a way to increase the participation of the comunity for the creation of modules and addons, but we have to think about how to achieve that.
We have the irrExt project where basically everyone can submit code and also participate as a developer. So far, activities have been pretty low, though.
MarcoTMP
Posts: 37
Joined: Mon Aug 29, 2005 8:14 pm
Location: Dominican Republic
Contact:

Post by MarcoTMP »

I want to know why people are not using IrrExt, so I'm asking them here:
http://irrlicht.sourceforge.net/phpBB2/ ... p?p=244123

I think the list of addons should be included in the irrlicht frontpage below downloads link in a table similar to the ones in downloads section.
Post Reply