Implementing new features for FlightGear: Difference between revisions

Jump to navigation Jump to search
no edit summary
mNo edit summary
No edit summary
Line 6: Line 6:
In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a "currency" for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.
In an open source project like FlightGear, which is entirely volunteer driven, time is the most precious resource we have to contribute. It is like a "currency" for the project, and whenever something (or someone) is taking up lots of time without anything materializing, this is draining resources from other areas, no matter if it's end-user support or development in some shape or form.


We are now trying to document how "bootstrapping" a project works conceptually, i.e. implementing new feature for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to "just work", which is an important aspect for a non-organized project like FlightGear, where development itself also primarily "just happens".
We are now trying to document how "bootstrapping" a feature or project works ''conceptually'', i.e. implementing new features for Flightgear - to provide a perspective that enables people to better understand how to bring changes to FlightGear without having to do all the work on their own. Note that this doesn't mean that this is the only way to accomplish something, but this is a tested and proven way - which we didn't come up with, but which is just a convention that happens to "just work", which is an important aspect for a non-organized project like FlightGear, where development itself also primarily "just happens".


Currently, this article is entirely based on a write-up that Thorsten contributed based on having worked on a variety of novel FlightGear features over the years which initially also didn't receive much support at all, and which also caused lengthy discussions (or even flame wars) on the forum and the devel list, including features like [[Advanced weather]], [[Atmospheric light scattering]], [[Procedural Texturing]] and most recently the [[FlightGear Newsletter April 2014|EarthView]] orbital rendering engine.  
Currently, this article is entirely based on a write-up that Thorsten contributed based on having worked on a variety of novel, and unprecedented, FlightGear features over the years which initially also didn't receive much support at all, and which also caused lengthy discussions (or even flame wars) on the forum and the devel list, including features like [[Advanced weather]], [[Atmospheric light scattering]], [[Procedural Texturing]] and most recently the [[FlightGear Newsletter April 2014|EarthView]] orbital rendering engine.  
These are just a few examples to put some context around the advice given here. Also note that the people who contributed to this particular write-up are not core developers per se, we are also primarily middleware/base package developers. And when we started out a few years ago (and several thousand postings back), we were also highly critical about the way the project works, and all its shortcomings. And now, we're often the one being "yelled" at on the forums when dealing with newcomers, even though that's exactly how we started out.  
These are just a few examples to put some context around the advice given here. Also note that the people who contributed to this particular write-up are not core developers per se, we are also primarily middleware/base package contributors. And when we started out a few years ago (and several thousand postings back), we were also highly critical about [[How the FlightGear project works|the way the project works]], and all its shortcomings. And now, we're often the ones being "yelled" at on the forums when dealing with newcomers, even though that's exactly how we started out.  
Yet, fast forward 5+ years later, we are still trying to contribute in meaningful ways to the project, despite some (or even many) of these problems still persisting even today. So this is an attempt to provide a '''lessons learnt''' intro based on newcomers trying to become contributors, and trying to turn their ideas into features that actually end up in FlightGear, without having to be expert programmers necessarily, or even programmers at all.}}
Yet, fast forward 5+ years later, we are still trying to contribute in meaningful ways to the project, despite some (or even many) of these problems still persisting even today. So this is an attempt to provide a '''lessons learnt''' intro based on newcomers trying to become contributors, and trying to turn their ideas into features that actually end up in FlightGear, without having to be expert programmers necessarily, or even programmers at all.}}


Navigation menu