Patches

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

and since youre not around long enough to know: i am the one who started irrlichtnx, so i consider myself to be an expert and authority on this topic.
No, this is completely damn wrong. Just because you forked the source into an independent project neither makes you an expert in spin-offs, nor in software development in general (only on NX or LF, but that's not what was meant here). This does not make lingwitt automatically any better, though.
And regarding IrrlichtNX one could easily say that this spin-off simply became independent because you did not manage to code your ideas in a way compatible with Irrlicht. Or you did not have enough energy to keep your project compatible with Irrlicht. I won't judge this, though.
Oh, and I never had a really close look on the LF sources, yet. Only once to find a fix for some patch I got from the Irrlicht forums which were taken from NX++ I think. So I just had to check which changes were made to basic classes to make the patch working again. So I don't have any plans to take over things from LF, yet, nor do I even know if there are things to reuse.
Electron
Posts: 874
Joined: Sun Mar 14, 2004 12:05 am
Location: Massachusetts USA

Post by Electron »

And regarding IrrlichtNX one could easily say that this spin-off simply became independent because you did not manage to code your ideas in a way compatible with Irrlicht. Or you did not have enough energy to keep your project compatible with Irrlicht. I won't judge this, though.
One could say that if the intention were to remain compatible. It's hard to rewrite the render pipeline and maintain compatibility tho. . .
You do a lot of programming? Really? I try to get some in, but the debugging keeps me pretty busy.

Crucible of Stars
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

hybrid: its kinda funny how we always misunderstand each other - we should definitely work on our communication :)
hybrid wrote:
and since youre not around long enough to know: i am the one who started irrlichtnx, so i consider myself to be an expert and authority on this topic.
No, this is completely damn wrong. Just because you forked the source into an independent project neither makes you an expert in spin-offs, nor in software development in general (only on NX or LF, but that's not what was meant here).
since the topic was irrspintz/LF i was speaking in regard to the forking of nx->nx++->lf, nothing else.
additionally my post was a direct answer to lingwitt since i couldnt decide if your post was about an expert on forking ( does someone like that exist?), or if you wanted to agree with me that lingwitt shouldnt go on assuming things. i thought i made that clear by writing "now to lingwitt:" but i see now that this can be misunderstood, i should have left the "now to" out.
And regarding IrrlichtNX one could easily say that this spin-off simply became independent because you did not manage to code your ideas in a way compatible with Irrlicht. Or you did not have enough energy to keep your project compatible with Irrlicht. I won't judge this, though.
hmm in my opinion youre wrong on this but since you said yourself that you havent looked at the LF code, i dont think that a discussion of this matter would make sense. you might want to take a look at the engine-design-document in the documentation-menu on the lf-homepage and at the changelog in the wiki on the page to get an idea on how different things are.
Oh, and I never had a really close look on the LF sources, yet. Only once to find a fix for some patch I got from the Irrlicht forums which were taken from NX++ I think. So I just had to check which changes were made to basic classes to make the patch working again. So I don't have any plans to take over things from LF, yet, nor do I even know if there are things to reuse.

hmm other than the patches to the base-classes, you wont find anything you can use if you dont want to change the api radically i think.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

I think it would have been very hard to find the right words which not had made me reply in a similar way like I did :wink:
Maybe a professional software architect could be an expert to decide at which point a split would be necessary. But decisions to drop an existing software and develop a completely new one are rather hard ones, and not that common in case money matters. So even though money did not matter here there might have been other ways to do this, e.g. abstract the pipeline and use the new interface to add a completely new subsystem.
BTW: I know the design documents, I started with Irrlicht shortly before NX++ was announced. And I know the new renderer code from NX++ up to its change to LF. Further development was not visible from the LF forums and I did not follow code changes, yet.
However, to once more make my opinion clear: I appreciate the different branches of Irrlicht as long as they are testbeds, which is what branches re meant for. But nothing more. And thus I really don't understand why you did not start from scratch. To mangle a project for one's own purposes until there are some replacements is weak. Either use and enhance a project, or stay on your own (as long as it's the same product). So basically a matter of my personal style.
Eternl Knight
Posts: 313
Joined: Tue Nov 01, 2005 5:01 am

Post by Eternl Knight »

Well, here I will have to disagree with you, hybrid. I do not see using any project as a basis for another one "weak", especially when developing in an iterative fashion (such as with most game engines). In fact, I would highly recommend it.

I happen to be a software architect for a living and to be frank, given what was trying to be accomplished with NX++ (& then LightFeather), I would have recommended the same methodology. Using Irrlicht (a working engine) as a basis allows the NX/LF developers to change the engine feature by feature to get something working. Between each feature change there is (or should be) a fully working engine.

Starting from scratch is actually something I would have smacked someone upside the head for if they were on my development team. Starting an engine from scratch is a TONNE of work. Writing a new architecture, support classes, etc would have taken alot of work up front that is not necessary. Irrlicht is open-source and extending/changing it beyond the base it provides is what it is for!

And put simply, prior to you & bitplane being brought on board as developers - there really is no way to smoothly create the architecture that NX/LF has internally in a way compatible to Irrlicht. The optimisations made are for a different target video card category. And (let's face it) even if the changes were made compatible with Irrlicht - there was no way to get them merged back in without Niko doing so. Look at all the patches you are merging in at the moment (a significant percentage being bug fixes too). In that environment, what advantage is there to keeping the engine made for your purposes compatible with an engine that is updated sporadically, does not fix all bugs (even if fixes are emailed/forum-posted to Niko), and is not likely to change API's to the level required for your purposes?

I too like forks for experimentation, but the Irrlicht development process was not amenable to that method. Spintz tried his darnest to keep compatibility where possible, and good features still were not merged in when Niko did not want them or did not have the time to merge them. NX/LF needed more than Irrlicht could offer - so they made the same decision I would have were money on the line (i.e. if it came up in my day job - I would have done the same).

--EK
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

hybrid:
lets just assume that you had a bad day (hangover from soccer world cup maybe?) otherwise, from those comments, you would have me believe that you have no idea about software design/development because what you propose is simply a case of reinventing the wheel combined with the "not invented here" syndrome (which funnily someone attributed to me in another thread some time ago).
and besides that it looks to me like you havent read the design docs for LF but the old stuff on nx++ which is completely different.
and ,please, stop seeing LF as a fork of irrlicht. nx was, nx++ was, LF is NOT, it simply shares some base-classes instead of reinventing the wheel for a 10000th time.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

No, I was and am perfectly fine. If you really want to make something new, it's usually best to start from scratch since refactoring is far too expensive and brings major problems due to the requirements to adapt the new API to the rest of the legacy part.
Developing the base classes would not have been that hard, that's what STL is for. So if you really replaced everything except for those classes right now it would have been possible to start from scratch as well - only that probably some developers would not have been working that much on a partial engine in the early days then. So in my opinion there's a difference between taking over a project and extending a project just as there's a difference between free beer and free speech. But taking LF as an independently developed project there's no real point in this discussion anymore.
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

hybrid wrote:No, I was and am perfectly fine. If you really want to make something new, it's usually best to start from scratch since refactoring is far too expensive and brings major problems due to the requirements to adapt the new API to the rest of the legacy part.
it was the other way around, the base classes were kept and the new stuff used the existing base classes. no major refactoring on the base classes was done, just patches and fixes.
But taking LF as an independently developed project there's no real point in this discussion anymore.
exactly my point from the beginning - i just didnt want any discussion which is why i asked lingwitt to stop talking about it :)
Eternl Knight
Posts: 313
Joined: Tue Nov 01, 2005 5:01 am

Post by Eternl Knight »

Well, I would have to respectfully disagree with you, hybrid. Unless the project is completely different from another I have code for (& the rights to use them), I tend to use (and have throughout my career) said code.

For example, I recently wrote an application that enabled users to create PDF reports online via filling out an HTML form. To get it done quickly I reused about 80% of a similar project I had written previously. This is standard practice for developers I work with and has been for the sum total of my career as a programmer & (more recently) software architect.

And I am confused where the "taking over a project" thing came from. There is no way for someone to "take over" Irrlicht; and I doubt anyone really wants to.

--EK
Spintz
Posts: 1688
Joined: Thu Nov 04, 2004 3:25 pm

Post by Spintz »

As far as Irrlicht -
I've contributed with the terrain addition, as well as many patches/bug reports.

As far as IrrlichtNX -
I've done some light work on IrrlichtNX but when I joined the team, it was gearing up for the move to Lightfeather.

As far as Lightfeather -
I contributed a lot in the beginning but my time demands at work( which take precedence as they pay me a lot more than my free hobby work does with all these 3D engines ) took me away very often. I am no longer active with Lightfeather, and never really explained what happened( even to matthias, which I'm sorry for, and I'll explain now ). I made the decision to stick with Irrlicht code base and do what I can do contribute to the Irrlicht community. Working with Irrlicht and Lightfeather engines as well as my work obligations was just too much. Maybe one day, I'll be able to get back involved in Lightfeather as I really like the concepts and the re-design of the core engine components( for the most part :P )

As far as IrrSpintz -
The API is kept nearly intact to Irrlicht. The base core of the engine remains the same. All the work I've done on IrrSpintz is very hard from a spin-off. It's easier for me, and less time consuming to just provide the work in a complete engine and let people like hybrid make patches and help contribute to Irrlicht. As well as I am constantly, when I have the time, submitting bug reports and patches to Niko.

Anyways, the point of all this, is that it's how Open Source works. People contribute, go off on their own paths to cater the engine to their needs or wants. It's just the way it works. The developers of Irrlicht do what they can to incorporate those changes and changes of their own, however that is deemed to be done by Niko and the team is up to them. I don't really understand the complaint, it's just how it works.

Oh, and I forgot to mention I'm also trying to code up a game, using Irrlicht/IrrSpintz with a fellow named Richmund, and I haven't even had the time for that. God damn it, I need to clear my plate a little!!!

I don't have the time to
Image
Post Reply