Irrlicht Framework improvement and rewrite
Irrlicht Framework improvement and rewrite
I have posted about that herehttp://irrlicht.sourceforge.net/phpBB2/ ... 5&start=75
Is the 2nd post, the Guest because I forgot to login.
I willl apreciate all your ideas and comments on this.
Please think about this very sereously.I realy think Irrlicht need this before it gets biger and to big code to do that later.
Is the 2nd post, the Guest because I forgot to login.
I willl apreciate all your ideas and comments on this.
Please think about this very sereously.I realy think Irrlicht need this before it gets biger and to big code to do that later.
Kat'Oun
ok i really dont know why im writing this but i just cant keep it to myself anymore.
i hope no one will be offended by what i write otherwise i apologize and it will probably be due to my inability to express myself properly in english, as im not a native speaker.
whats wrong with this "community" ?
-theres the guy who rather collects patches instead of applying them to a library and publish that one.
-then theres one who posts his code as entries on the wiki
-then there is the question of creating a code-repository for patches and add-ons (came up multiple times)
-then theres this guy who created a nice demo with irrlicht and now goes on to create his own library
-did i mention the guy who created a nice add-on and asked where to put his code ?
-the ones who cry for features without even thinking about implementing them themselves (open source, anyone?) are of course really great
-and then there are some who see that irrlicht is not what they need and they try to start something based on irrlicht but "better"(see below on that) or they whine on this forum how bad irrlicht is and engine xxx is sooo much better or just that they are looking for something else.
but they never start anything, they always only ask others to help them. it was that way 1 year ago and its the same today.
- ill stop with the examples here, you prolly got the point by now
and now more to the point of this topic
there already is a project started from within this community to make irrlicht more suitable for other things (irrlichtnx). but instead of supporting that and bring your ideas into that project everyone works on his own. i just dont get it.
is it the "not invented here" effect (not created by me cant be good, need to reinvent the wheel) ?
is it that development on nx was stopped for a new project ? i dont see why that should hinder anyone since the cvs is still available (and will be, asking could have brought this answer easily) and also theres the successor project that is worked on
that nx is based on irrlicht 0.71 shouldnt be a problem - updating it to 0.11 should take max. 2 days for any serious programmer (its always easier to copy code than to invent new stuff, thats why it will be that fast instead of the days/weeks niko worked on it of course)
and nobody using irrlicht for as long as the people i talked about can deny knowledge of nx - dont even try to use that as an excuse.
to the ones who will say "hes just angry that noone wants to help him" or something like that i can say that there are a few people working on lf (the successor of nx) and it progresses very nicely imo.
now to make another point really clear : i think that irrlicht is the absolut best engine for people who are new to programming - it really does a great job on that and niko has my deepest respect for being able to create an engine so easy to use and still somewhat powerful. theres always a compromise to make with such things and niko concentrates on ease of use and imo fully succeeded in that.
of course no engine is suited for everything.
so why did i write this ? as i said in the beginning - i dont know really - maybe to get some people to think about what they are doing and how they are wasting resources. maybe im just sick of reading the same stuff over and over. maybe im tired of all those flames against irrlicht from people who cant get their act together to create something of their own or work together on another project.
heh you could start a blog about whats going on on this forum and would have no problem to find something to write about everyday .D
i hope no one will be offended by what i write otherwise i apologize and it will probably be due to my inability to express myself properly in english, as im not a native speaker.
whats wrong with this "community" ?
-theres the guy who rather collects patches instead of applying them to a library and publish that one.
-then theres one who posts his code as entries on the wiki
-then there is the question of creating a code-repository for patches and add-ons (came up multiple times)
-then theres this guy who created a nice demo with irrlicht and now goes on to create his own library
-did i mention the guy who created a nice add-on and asked where to put his code ?
-the ones who cry for features without even thinking about implementing them themselves (open source, anyone?) are of course really great
-and then there are some who see that irrlicht is not what they need and they try to start something based on irrlicht but "better"(see below on that) or they whine on this forum how bad irrlicht is and engine xxx is sooo much better or just that they are looking for something else.
but they never start anything, they always only ask others to help them. it was that way 1 year ago and its the same today.
- ill stop with the examples here, you prolly got the point by now
and now more to the point of this topic
there already is a project started from within this community to make irrlicht more suitable for other things (irrlichtnx). but instead of supporting that and bring your ideas into that project everyone works on his own. i just dont get it.
is it the "not invented here" effect (not created by me cant be good, need to reinvent the wheel) ?
is it that development on nx was stopped for a new project ? i dont see why that should hinder anyone since the cvs is still available (and will be, asking could have brought this answer easily) and also theres the successor project that is worked on
that nx is based on irrlicht 0.71 shouldnt be a problem - updating it to 0.11 should take max. 2 days for any serious programmer (its always easier to copy code than to invent new stuff, thats why it will be that fast instead of the days/weeks niko worked on it of course)
and nobody using irrlicht for as long as the people i talked about can deny knowledge of nx - dont even try to use that as an excuse.
to the ones who will say "hes just angry that noone wants to help him" or something like that i can say that there are a few people working on lf (the successor of nx) and it progresses very nicely imo.
now to make another point really clear : i think that irrlicht is the absolut best engine for people who are new to programming - it really does a great job on that and niko has my deepest respect for being able to create an engine so easy to use and still somewhat powerful. theres always a compromise to make with such things and niko concentrates on ease of use and imo fully succeeded in that.
of course no engine is suited for everything.
so why did i write this ? as i said in the beginning - i dont know really - maybe to get some people to think about what they are doing and how they are wasting resources. maybe im just sick of reading the same stuff over and over. maybe im tired of all those flames against irrlicht from people who cant get their act together to create something of their own or work together on another project.
heh you could start a blog about whats going on on this forum and would have no problem to find something to write about everyday .D
-
- Posts: 395
- Joined: Fri Apr 08, 2005 8:46 pm
mm765:
I couldn't agree more. I've struggled with game programming for 10 years and with Irrlicht I was doing what I thought would be impossible in just a few short days.
I am very much surprised to see all the talk about improving the engine, yet very little about using it with such topics as AI, playability, asset creation. The whole idea of engines is to free the programmer from reinventing the wheel and allow focus on creating more interesting games.
Pathfinding, Reinforcement learning , genetic algorithms, cellular automata. emotional believeability, integration with physics libraries. All of these topics are open for experimentation for me because Niko did the heavy lifting.
I honestly think Irrlicht doesn't need improving, its needs using. Rather than tinkering with the engine, I'd like to be driving the car and see where I can go to.
P.S.
Could someone give me an example of where Irrlicht fails at being production ready. I'm sure there are some, but I'm still new to game programming that I can't think of any myself.
now to make another point really clear : i think that irrlicht is the absolute best engine for people who are new to programming - it really does a great job on that and niko has my deepest respect for being able to create an engine so easy to use and still somewhat powerful. theres always a compromise to make with such things and niko concentrates on ease of use and imo fully succeeded in that.
of course no engine is suited for everything.
so why did i write this ? as i said in the beginning - i dont know really - maybe to get some people to think about what they are doing and how they are wasting resources. maybe im just sick of reading the same stuff over and over. maybe im tired of all those flames against irrlicht from people who cant get their act together to create something of their own or work together on another project.
I couldn't agree more. I've struggled with game programming for 10 years and with Irrlicht I was doing what I thought would be impossible in just a few short days.
I am very much surprised to see all the talk about improving the engine, yet very little about using it with such topics as AI, playability, asset creation. The whole idea of engines is to free the programmer from reinventing the wheel and allow focus on creating more interesting games.
Pathfinding, Reinforcement learning , genetic algorithms, cellular automata. emotional believeability, integration with physics libraries. All of these topics are open for experimentation for me because Niko did the heavy lifting.
I honestly think Irrlicht doesn't need improving, its needs using. Rather than tinkering with the engine, I'd like to be driving the car and see where I can go to.
P.S.
Could someone give me an example of where Irrlicht fails at being production ready. I'm sure there are some, but I'm still new to game programming that I can't think of any myself.
Because Irrlicht leask of features and flexsibility I abandoned it.
I havent entered this forum for a wile(or very rarely to see if enithing new is up)
I have bee for quit 2 months on Ogre's forum reading everithing I could understend and today I have finaly managed more that 60% to understend it SOURCE CODE(wich is dam complicated).
But I like the features and the flexibility of Ogre and the 'simplicity' of Irrlicht.
And I'm able to say now that the source code of Ogre can be 'simplified' with more that 30%.
My idea is not a better Irrlicht or an easy Ogre, but quit both of them and if I get the time for it I will doit( but considering Ogre is the work of 3 or more persons and I am only one programer and not that experimented as they and Niko are-they are even older them me, I might kip it for me for a wile, good thing I don't have were to uploade it to )
So if no one is realy willing to work with me on this(not like the Ogre's comunity were people work to get that engine better-and for a clue some one made I post filtering manager and you can make blur effect or hit effect like in GTA San Andreas ha) I will just work for me.
One thing, IrrlichtNX(and now LightFeather) gor a bit fare from the easy API that Irrlicht has, and I what with this in fact to make it as I sayed even more easy and intuitive that Irrlicht actualy is.
I havent entered this forum for a wile(or very rarely to see if enithing new is up)
I have bee for quit 2 months on Ogre's forum reading everithing I could understend and today I have finaly managed more that 60% to understend it SOURCE CODE(wich is dam complicated).
But I like the features and the flexibility of Ogre and the 'simplicity' of Irrlicht.
And I'm able to say now that the source code of Ogre can be 'simplified' with more that 30%.
My idea is not a better Irrlicht or an easy Ogre, but quit both of them and if I get the time for it I will doit( but considering Ogre is the work of 3 or more persons and I am only one programer and not that experimented as they and Niko are-they are even older them me, I might kip it for me for a wile, good thing I don't have were to uploade it to )
So if no one is realy willing to work with me on this(not like the Ogre's comunity were people work to get that engine better-and for a clue some one made I post filtering manager and you can make blur effect or hit effect like in GTA San Andreas ha) I will just work for me.
One thing, IrrlichtNX(and now LightFeather) gor a bit fare from the easy API that Irrlicht has, and I what with this in fact to make it as I sayed even more easy and intuitive that Irrlicht actualy is.
Kat'Oun
I disagree with you, katoun, Nx is as easier as irrlicht, and with some new features. It's got a separate resource manager (you don't have to create an irrlicht device for that). It handles different rendering windows. It also has an event system much better than just the IEventReceiver (it's like java events).
I still prefer NX, which is based on irr 0.7 than the newest irrlicht. Why adding shaders if it still doesn't have a combobox event?
mm has done a lot of work in NX and Lightfeather will be awesome (at least, the early pics I've seen are great).
But when I started with game programming and C++, Ogre just looked huge to me (even now is huge) and Irrlicht helped me a lot to understand the basic principles: working with matrices, handling different materials, integrating with other engines. And that's why we must thank Niko for all of this.
I still prefer NX, which is based on irr 0.7 than the newest irrlicht. Why adding shaders if it still doesn't have a combobox event?
mm has done a lot of work in NX and Lightfeather will be awesome (at least, the early pics I've seen are great).
But when I started with game programming and C++, Ogre just looked huge to me (even now is huge) and Irrlicht helped me a lot to understand the basic principles: working with matrices, handling different materials, integrating with other engines. And that's why we must thank Niko for all of this.
4Spintz:If you are refaring to the fact that I say thet I'll work for me, well I have been sarcastic.You know mm765 is right, this comunity in not interested in working togater for this engine for for theyr oun. The one thing they didn't realized that the work done toghater is actualy coming to all and they will all benefit from it.
I have got some nice ideas about this and I sahl do it little by little (even thow I have to learn web desing and work in that domain to suport my education further-the world is so unfare but we all must go on and not forget our dreams or we will have nothing to live for)
4Soy1Bonus:Well I don't say IrrlichtNX(now LF) is not going nice now but I don't like the actual source code.There are some things that personaly I wouldn't have done, but I think it is only from my perspective. I think the API could have been done a lot better and clearer.
About Irrlicht well because the leac of some features and the will to change that I concluded that the frame work needs some redesign.
Well I got in my mind some steps to take so it will be easy for me to do what I have planed, and I got some Ideas how to make the changes so it would realy be very easy for Irrlicht users to understend it.
My idea is to make is easy and intuitive, yet powerfull and flexible bouth at the users level(SDK) and the deveropers level(source code).
First the OpenglDriver and DirectXDriver classes must have all the functions posible for a modern game (from lights meshers textures to shaters)
so all the rendering can be done on top of the RenderingSystem.
On top of it will work specific managers Mesh Manager, Material Manager(that can send parametors to shaders automaticaly) Scene Manger, Effects Manager(with particle sistems and post filter efects like blur and hit).
Once this is done then Mesh Loader, Texture Loader, Scene Loader(Sound Loader and other if necesary)and Factorys for creating pre defines textures or meshes or scene nodes(like skidome,skibox, skyplane or skysystem, different tipes of material:wood, glass,plastic, mettal ....blablabla) will be added.
And of course kip it simple because all that Ogre can do can be made with less calsees and more clearer code and quite 'simpler'.
I have got some nice ideas about this and I sahl do it little by little (even thow I have to learn web desing and work in that domain to suport my education further-the world is so unfare but we all must go on and not forget our dreams or we will have nothing to live for)
4Soy1Bonus:Well I don't say IrrlichtNX(now LF) is not going nice now but I don't like the actual source code.There are some things that personaly I wouldn't have done, but I think it is only from my perspective. I think the API could have been done a lot better and clearer.
About Irrlicht well because the leac of some features and the will to change that I concluded that the frame work needs some redesign.
Well I got in my mind some steps to take so it will be easy for me to do what I have planed, and I got some Ideas how to make the changes so it would realy be very easy for Irrlicht users to understend it.
My idea is to make is easy and intuitive, yet powerfull and flexible bouth at the users level(SDK) and the deveropers level(source code).
First the OpenglDriver and DirectXDriver classes must have all the functions posible for a modern game (from lights meshers textures to shaters)
so all the rendering can be done on top of the RenderingSystem.
On top of it will work specific managers Mesh Manager, Material Manager(that can send parametors to shaders automaticaly) Scene Manger, Effects Manager(with particle sistems and post filter efects like blur and hit).
Once this is done then Mesh Loader, Texture Loader, Scene Loader(Sound Loader and other if necesary)and Factorys for creating pre defines textures or meshes or scene nodes(like skidome,skibox, skyplane or skysystem, different tipes of material:wood, glass,plastic, mettal ....blablabla) will be added.
And of course kip it simple because all that Ogre can do can be made with less calsees and more clearer code and quite 'simpler'.
Kat'Oun
I can't agree more with what you said. I think the 'problem' of people tinkering with the engine and not using it goes far beyond this community, I'd argue that it goes to the heart of hobbyist programmers (or even programmers as a whole). Because we're not driven by industry pressures, I think that as a group, we tend to pick fault with things more. Rather than picking the right tool for the job, we'll pick faults with all the tools and try and build our own.dhenton9000 wrote:I am very much surprised to see all the talk about improving the engine, yet very little about using it with such topics as AI, playability, asset creation. The whole idea of engines is to free the programmer from reinventing the wheel and allow focus on creating more interesting games.
I honestly think Irrlicht doesn't need improving, its needs using.
It's rather akin to someone buying a Ferrari and getting annoyed that it doesn't have two reverse gears. Rather than putting up with it and coding around it, he's convinced he needs the second gear to drive as he wants to and sets about ripping out the gearbox. After working on that, he finds out that it doesn't quite drive the engine as it used to so his time is spent on ripping out and rebuilding the new engine for his car. After months and years of work he's unable to build an engine as good as the original Ferrari engine, it doesn't run properly any more and fails more often, but hey - at least it has two reverse gears! He gives up and buys a BMW, just as Ferrari bring out a new model with two reverse gears
Many improvement projects are spent without any real analysis of the problems at hand. Instead of using a system and analysing the strengths and weaknesses of it, people are far too ready to pick up the AAA Title feature list and think "hey this engine doesn't have that, I must add it". In the real world, he probably won't even use the feature.
So after all that, I agree. We need to see more games, not tech demos and half-baked engines. Leave the engine coding to Niko and the guy behind Irrlicht NX, let's create some kick-ass games so they can really see all their hard work has paid off.
I am curious. Could you elaborate a little bit on what you don't like about LF? Its always good to hear more opinions about design.katoun wrote: 4Soy1Bonus:Well I don't say IrrlichtNX(now LF) is not going nice now but I don't like the actual source code.There are some things that personaly I wouldn't have done, but I think it is only from my perspective. I think the API could have been done a lot better and clearer.
You do a lot of programming? Really? I try to get some in, but the debugging keeps me pretty busy.
Crucible of Stars
Crucible of Stars
Oh,
So I could present my ideas for LF?
It might be taken in consideration?Do you work on the team?
Well Fisrt of all in IrrlichtNX the Root was constructed over the IrlichtDevice but
in Ogre Root actualy is the eqivalent of the IrrlichtDevice.
I had to check to see how LF is doing and il like I sayd only that IrrlichtDevice noe is called RenderWindow.
Hey RenderWindow has a ponter to SeceManager and a function to add SceneManagers, well the Root should do that.RenderWindow should be the wondow wher you render and nothing more than that.
Besides that I have seen some nice thing like the way wou create renderstates
is preaty simple but..
what is this:
That is preaty scary code.
Why couldn't be as easy as this:
I don't say LF won't get a great engine with great features but I am reserved on how easy would be to write LF projects.
I say some thing must be more intuitive by the way they connect, the functions they have, the names they have...
My easy steps:
- Make a RenderSystem that hase all the functions neede to use all the efects posible.
-Create Mesh Manager,MaterialManager,SceneManager,EfectsManager and other,these working on top of the RenderSystem.
-Create Loaders(or as you call ResourceManagers)MeshLoader,TextureLoader,AnimationLoader,others
-Effectors meaning Animators(or controllers)for different nodes or textures or effects(EffectsManagers manges particles systems) and Effectors AnimationManager and Imput(events)Manager.
-Root controles all above and iniciates all of them.
This is how I would like Irrlicht(or LF) to generaly look, but of course all of those steps has different branches htat need to be thinked of too.
I wait for comment on this.
So I could present my ideas for LF?
It might be taken in consideration?Do you work on the team?
Well Fisrt of all in IrrlichtNX the Root was constructed over the IrlichtDevice but
in Ogre Root actualy is the eqivalent of the IrrlichtDevice.
I had to check to see how LF is doing and il like I sayd only that IrrlichtDevice noe is called RenderWindow.
Hey RenderWindow has a ponter to SeceManager and a function to add SceneManagers, well the Root should do that.RenderWindow should be the wondow wher you render and nothing more than that.
Besides that I have seen some nice thing like the way wou create renderstates
is preaty simple but..
what is this:
Code: Select all
driver->add(new render::CRenderPassOpenGL2LayerCustomFixed(reinterpret_cast<render::CVideoOpenGLStub*>(driver),(render::E_RENDER_PASS_FEATURE)(render::ERPF_USER0 + userMaterialCount),100,(render::E_TEXTURE_ENVIRONMENT_MODE)m1,(render::E_TEXTURE_ENVIRONMENT_MODE) m2,true,(render::E_ALPHA_BLEND_SRC)bs,(render::E_ALPHA_BLEND_DST)bd));
Why couldn't be as easy as this:
Code: Select all
cubeModel2->getMeshBuffer(0)->addRenderFeature(render::ERPF_STATIC_CUBEMAP_REFLECTION);
cubeModel2->getMeshBuffer(0)->setTexture(0,cubemap1);
I say some thing must be more intuitive by the way they connect, the functions they have, the names they have...
My easy steps:
- Make a RenderSystem that hase all the functions neede to use all the efects posible.
-Create Mesh Manager,MaterialManager,SceneManager,EfectsManager and other,these working on top of the RenderSystem.
-Create Loaders(or as you call ResourceManagers)MeshLoader,TextureLoader,AnimationLoader,others
-Effectors meaning Animators(or controllers)for different nodes or textures or effects(EffectsManagers manges particles systems) and Effectors AnimationManager and Imput(events)Manager.
-Root controles all above and iniciates all of them.
This is how I would like Irrlicht(or LF) to generaly look, but of course all of those steps has different branches htat need to be thinked of too.
I wait for comment on this.
Kat'Oun
Well for a start, there are too many dreamers around here who want "the best graphics" but do not take into account any logistics or realistic points of actually making and finishing a game.
This especially applies to one man/small man teams who are using it to make the "next cult FPS" or "Amazing MMORPG".. they are requesting, time and again, that they want "lastest feature X" because a retail game (or OGRE) has that capability.
WHY? Are you seriously, in your lifetime, as an intermediate user going to realistically finish the game with all these bells and whistles and asset requirements? no.. unless you have a dedicated TEAM and if you do then you are probably not going to be using IRRLICHT in the first place.
I am a one man (occasional small team) coder/designer and the reason I use irrlicht is NOT because it is seen as "for beginners" or "easier" (though being easier than other engines is to be commended not ridiculed), it is because I use it in realistic projects, in place of my own framework - I have a highly customised build of irrlicht.dll weighing in at around 640k with some improvements/fixes and a lot of stuff TAKEN OUT that we don't need for a particular project.. why? Filesizes..
Filesizes are extremely important in online distribution of lower end / indie / shareware (call them what you will) games. It is THESE games that ARE completed in a high frequency, DO get released and DO make money. If a business can use an engine for what it excells at (small footprint, easily customisable) then that is a good thing!
The problem with re-writing (even though the core framework of irrlicht is not industry leading or anything) is that it would be mainly to appease the feature junkies.. the guys who say "wow.. look... new ultrashadermegarenderer is now in irrlicht", proceed to knock up some tech demos, feel good about themselves having "mastered" the technology then come back and ask for MORE MORE MORE features.
FEATURE CREEP in an engine is bad. It should evolve naturally once it is stable. We are not at release 1.0 yet and people are asking for cutting edge features (more shader stuff etc) when we still don't have basic fixed function pipeline cube mapping!!!! (which should be added asap imo)
Why would we want older tech instead of shader everything? Because of compatability - beacuse the people using Irrlicht for actual projects they will finish are more than likely targeting a wide range of lower end users as well (scalable) and belive it or not there are millions of pcs out there that do not have shader support, or even 3D acceleration... but that is another story.
So to sum up, LIGHTFEATHER is probably going to be the total "re-write" that people are seeking. There is NO point at this stage changing everything that irrlicht does to fit a "better" paradigm, when for a lot of us, it works just fine now for "simpler but achievable" games development.
If you want "OGRE" level features then use OGRE - they are different beasts with different ideas and methods. I have looked into OGRE and can say it is "powerful" but it is not as small or as down-sizable as irrlicht.
I would love to see the actual completed projects from the people demanding cutting edge features in an engine that was obviously designed to be more basic and useable as a small general purpose 3D renderer.
It is not a technology battle - you think any of these guys will ever make an engine to compete with UnrealEngine 3 for instance? no.. they do not have the time and resources, so the let them concentrate on REALISTIC targets and to make those features already in as robust and stable as possible.
A year from now I would like people to look at Irrlicht as that "100% rock solid renderer that you can throw into any project that a small/one man team may be working on" and not to be saying "Irrlicht, oh yes it has all the latest features, it 'competes' with all the other engines, but unfortunatley none of them are stable, none are version 1.0, and the dll is 10mb with dependencies as long as your arm.. we'll pass on that and use Engine X instead"...
You see, irrlicht could easily try and compete with the wrong competition and in the process get swept under the carpet. Once the graphics junkies are happy that their requested feature is in, they will move on to ANY engine that has a better implementation and again until they sate their addiction.. meanwhile Irrlicht is left unfinished and unwanted by ANYONE.
I suggest Niko look hard at these requests and realise which audience he is serving best by keeping his original ideas alive, and to implement things ONLY if they do not bloat the engine, cause older hardware not to be able to run anything made with it, and not stop the people USING it in actual games from being able to continue (interface re-writes == bad).
Niko has done a great job, it is not perfect, but it is heading towards properly stable.. and a stable released engine with a great feature set is 100% more useful and rewarding than a 50% stable engine with awesome features.
rant over... flame away if you must...
This especially applies to one man/small man teams who are using it to make the "next cult FPS" or "Amazing MMORPG".. they are requesting, time and again, that they want "lastest feature X" because a retail game (or OGRE) has that capability.
WHY? Are you seriously, in your lifetime, as an intermediate user going to realistically finish the game with all these bells and whistles and asset requirements? no.. unless you have a dedicated TEAM and if you do then you are probably not going to be using IRRLICHT in the first place.
I am a one man (occasional small team) coder/designer and the reason I use irrlicht is NOT because it is seen as "for beginners" or "easier" (though being easier than other engines is to be commended not ridiculed), it is because I use it in realistic projects, in place of my own framework - I have a highly customised build of irrlicht.dll weighing in at around 640k with some improvements/fixes and a lot of stuff TAKEN OUT that we don't need for a particular project.. why? Filesizes..
Filesizes are extremely important in online distribution of lower end / indie / shareware (call them what you will) games. It is THESE games that ARE completed in a high frequency, DO get released and DO make money. If a business can use an engine for what it excells at (small footprint, easily customisable) then that is a good thing!
The problem with re-writing (even though the core framework of irrlicht is not industry leading or anything) is that it would be mainly to appease the feature junkies.. the guys who say "wow.. look... new ultrashadermegarenderer is now in irrlicht", proceed to knock up some tech demos, feel good about themselves having "mastered" the technology then come back and ask for MORE MORE MORE features.
FEATURE CREEP in an engine is bad. It should evolve naturally once it is stable. We are not at release 1.0 yet and people are asking for cutting edge features (more shader stuff etc) when we still don't have basic fixed function pipeline cube mapping!!!! (which should be added asap imo)
Why would we want older tech instead of shader everything? Because of compatability - beacuse the people using Irrlicht for actual projects they will finish are more than likely targeting a wide range of lower end users as well (scalable) and belive it or not there are millions of pcs out there that do not have shader support, or even 3D acceleration... but that is another story.
So to sum up, LIGHTFEATHER is probably going to be the total "re-write" that people are seeking. There is NO point at this stage changing everything that irrlicht does to fit a "better" paradigm, when for a lot of us, it works just fine now for "simpler but achievable" games development.
If you want "OGRE" level features then use OGRE - they are different beasts with different ideas and methods. I have looked into OGRE and can say it is "powerful" but it is not as small or as down-sizable as irrlicht.
I would love to see the actual completed projects from the people demanding cutting edge features in an engine that was obviously designed to be more basic and useable as a small general purpose 3D renderer.
It is not a technology battle - you think any of these guys will ever make an engine to compete with UnrealEngine 3 for instance? no.. they do not have the time and resources, so the let them concentrate on REALISTIC targets and to make those features already in as robust and stable as possible.
A year from now I would like people to look at Irrlicht as that "100% rock solid renderer that you can throw into any project that a small/one man team may be working on" and not to be saying "Irrlicht, oh yes it has all the latest features, it 'competes' with all the other engines, but unfortunatley none of them are stable, none are version 1.0, and the dll is 10mb with dependencies as long as your arm.. we'll pass on that and use Engine X instead"...
You see, irrlicht could easily try and compete with the wrong competition and in the process get swept under the carpet. Once the graphics junkies are happy that their requested feature is in, they will move on to ANY engine that has a better implementation and again until they sate their addiction.. meanwhile Irrlicht is left unfinished and unwanted by ANYONE.
I suggest Niko look hard at these requests and realise which audience he is serving best by keeping his original ideas alive, and to implement things ONLY if they do not bloat the engine, cause older hardware not to be able to run anything made with it, and not stop the people USING it in actual games from being able to continue (interface re-writes == bad).
Niko has done a great job, it is not perfect, but it is heading towards properly stable.. and a stable released engine with a great feature set is 100% more useful and rewarding than a 50% stable engine with awesome features.
rant over... flame away if you must...
katoun: i dont think that this is the correct forum to discuss lf design issues so i answered to your post here:
http://www.irrlichtnx.mmdevel.de/phpBB2 ... =2003#2003
http://www.irrlichtnx.mmdevel.de/phpBB2 ... =2003#2003
Hey, nice discussion, sorry that I've seen it this late. Lots of arguments have been written, and I think most of them are right, it only simply depends on the perspecitive. The major problem seems to be that Irrlicht is so popular and it is not possible to make the engine do everything everybody needs. My plans are to continue development as it is: Let Irrlicht still be compact and simple. In my opinion it is not necessary to create a framework which provides every little cutting edge feature there is. It is ok for Irrlicht just to be a small framework for 3D applications, mostly games. If there is something missing, and it doesn't look like I am going to add it in the near future, just add it yourself. And If you like to publish your enhancements, would be cool. Maybe I'm going to include your enhancement into Irrlicht then, if I think it's useful.
I don't have a problem with forks, extensions, complete rewrites of Irrlicht at all, it's the opposite: I really like seeing them.
I don't have a problem with forks, extensions, complete rewrites of Irrlicht at all, it's the opposite: I really like seeing them.
that's just what I try to do.Anonymous wrote:I suggest Niko look hard at these requests and realise which audience he is serving best by keeping his original ideas alive, and to implement things ONLY if they do not bloat the engine, cause older hardware not to be able to run anything made with it, and not stop the people USING it in actual games from being able to continue (interface re-writes == bad).