The State of FS Development
I'll try to keep this simple as I'm hoping for dialog.
By now, after 30 years in existence, and perhaps 20+ where an ancillary 3rd-party add-on scene/market has been afoot, I've taken some time to reflect on the software processes for making flightsim add-ons.
Over the past 10 years, the bar for add-on quality has raised substantially and we've seen exquisite new highs in achievement, some retirement/withdrawals from the community, and a change in nature towards commercial endeavors.
The point I am working towards is: what progress has the development community made in realizing common standards and practices? We've certainly enjoyed an official Software Development Kit from Microsoft (and it was free for quite a while to boot). We've benefited from fusillade of cool and useful tools. However, in most cases (the wonderful efforts of FSDeveloper notwithstanding), the software processes for FS development work still seems to be largely without method and without process. Even as we commonly compensate many developers now for their work, be it from high or even middling quality, I don't detect that the commercialization of the community has lead to improved or mature processes which can be used used to ensure a timely and defect-free product of exceeding quality.
In fact, FS development still seems every bit a dark art (okay, it's certainly more "grey" since 2000 or so) than it was when I bought my first addons around 1990.
What gives?
I know that we had a pause and a period where we thought our franchise was dead, but what has been our progress over the years? Are we where we should be? Are we behind? What?
Towards a Premise
As I try to characterize my premise concerning the nature of FS development, please allow me to reflect on another software development community: Linux.
I think about Linux, which, as a software concern, is younger than FS, but also dominates in its league/niche (as does FS). Of course, I'm not comparing cathedrals to cathedrals here, but Linux and MSFS are comparable as being representative of their respective areas. Linux has a development community which is exemplary in so many ways (not perfect, but admirable) and I wonder what we could learn from them?
Yes, I know that Linux is open source, essentially powers substantial parts of the WWW, and has a user base that far outstrips MSFS, but both represent quite distinct communities.
Why does information concerning Linux development flourish and, on the other hand, why is information regarding developing for MSFS so difficult to aggregate? Why do we not develop consistent traditions of development that allow newbies, or even those cross-migrating from other traditions of development, to get a handle on things?
Witchcraft
I believe some of the problem may be that our development habits arose from sorcery, alchemy, and just plain old witchcraft in general. When I think about the paucity of development tools in the 1990s, when many of our luminaries (past and present) got their start, I realize that our traditions started from those who had to "hack" into a closed and proprietary source in order to get any voodoo working.
In this sense, these folks perfected a "craft" where traditions, despite and also according to very open places like fsdeveloper, freeflight design, etc., remained very word-of-mouth, in-the-known, and heirloom in nature.
I think developers became used to living in these tribes where information didn't leak out enough, or didn't leak out in a conjoined and organized fashion. On top of that, we have a very closed environment to develop for where the most appealing results are still obtained from sorcery (direct memory techniques like FSUIPC), alchemy (weaving a tapestry of multi-SDK and non-SDK techniques), and witchcraft (each "chef" with their own secret ingredients).
The Potential is There
The thing is, the potential to cover the earth and skies in MSFS with all manner of things is there. But the "craft" approach isn't likely to get us there as a unified process doesn't exist. For instance, it was only when ModelConverterX was released did I think that scenery models could really be done quickly. This is because Sketchup is such an insanely intuitive tool. I realize that this is just a set of tools, but it represents a far easier path to get the "middling" among us to develop.
We have the WHOLE WORLD to populate and yet, we're so far from getting that done. We have a constellation of cool aircraft to make and yet it seems like that list is barely dented.
Moreover, many of our "pro-level" development houses seem to lack any sort of software development process method: many duplicate the creation of the same aircraft, many seem to move through projects haphazardly, and many release products with serious defects. Wouldn't, perhaps, a little consortium go a long way? Perhaps pool efforts to achieve the greatest possible combined outcome? We exist in a kind of "pre-industrial" mode where each craftsman is, laboriously, producing the same goods, by hand, over and over again. The "factory process" model seems to have eluded us for the most part. Want a Smiths FMS or a Honeywell ACARS? you can't license of buy it from an outfit that specializes in it, you've go to build it yourself. This sort of replication of effort explains why, proportionally, it is just as long and painful to get high-quality transport-category aircraft to market as would be the case in reality. This soft of modularization, and intra-developer ecosystem is probably what we need to get it off the ground. Why not this sort of specialization? I know we have examples here and there (RealityXP, ISG, etc.), but not enough to really get us moving.
Etc. You get the point (I hope).
That wasn't short at all
Okay, that wasn't brief. So, here's my point: why does the development community for Flight Simulator still generally lack common traditions of software development? Why do we not have a more unified process model and why do we lack easily-adopted practices and standards?
Are we so small and insignificant that we can't develop the critical mass required for cohesion? Are we so born of craft methods that a wider tradition isn't possible?
We have a platform to populate an entire world out there in the software "ecosystem" that is FSX and I feel like what's available only scratches the surface. Would maturing our processes help? Or, do we have the best possible environments and frameworks now?
I am not trying to troll with this, I'd really like to know. I realize that FSX is nearly 5 years old now, and I realize that there is information on FS Development available. However, according to my craft premise, it is spread all over the place, presented in varying (and, at times contradicting) levels of clarity and quality, and just feels disjointed.
If you made it this far, thank you for reading. Again, I am really interested in thoughts and ideas on identifying stable traditions of development that allows greater output that is consistent in quality. In the early days, the number of techniques were fewer and freeware seemed to be more common. It felt like it was somewhat easier to get into it. Now, I'm not so sure.
I'll try to keep this simple as I'm hoping for dialog.
By now, after 30 years in existence, and perhaps 20+ where an ancillary 3rd-party add-on scene/market has been afoot, I've taken some time to reflect on the software processes for making flightsim add-ons.
Over the past 10 years, the bar for add-on quality has raised substantially and we've seen exquisite new highs in achievement, some retirement/withdrawals from the community, and a change in nature towards commercial endeavors.
The point I am working towards is: what progress has the development community made in realizing common standards and practices? We've certainly enjoyed an official Software Development Kit from Microsoft (and it was free for quite a while to boot). We've benefited from fusillade of cool and useful tools. However, in most cases (the wonderful efforts of FSDeveloper notwithstanding), the software processes for FS development work still seems to be largely without method and without process. Even as we commonly compensate many developers now for their work, be it from high or even middling quality, I don't detect that the commercialization of the community has lead to improved or mature processes which can be used used to ensure a timely and defect-free product of exceeding quality.
In fact, FS development still seems every bit a dark art (okay, it's certainly more "grey" since 2000 or so) than it was when I bought my first addons around 1990.
What gives?
I know that we had a pause and a period where we thought our franchise was dead, but what has been our progress over the years? Are we where we should be? Are we behind? What?
Towards a Premise
As I try to characterize my premise concerning the nature of FS development, please allow me to reflect on another software development community: Linux.
I think about Linux, which, as a software concern, is younger than FS, but also dominates in its league/niche (as does FS). Of course, I'm not comparing cathedrals to cathedrals here, but Linux and MSFS are comparable as being representative of their respective areas. Linux has a development community which is exemplary in so many ways (not perfect, but admirable) and I wonder what we could learn from them?
Yes, I know that Linux is open source, essentially powers substantial parts of the WWW, and has a user base that far outstrips MSFS, but both represent quite distinct communities.
Why does information concerning Linux development flourish and, on the other hand, why is information regarding developing for MSFS so difficult to aggregate? Why do we not develop consistent traditions of development that allow newbies, or even those cross-migrating from other traditions of development, to get a handle on things?
Witchcraft
I believe some of the problem may be that our development habits arose from sorcery, alchemy, and just plain old witchcraft in general. When I think about the paucity of development tools in the 1990s, when many of our luminaries (past and present) got their start, I realize that our traditions started from those who had to "hack" into a closed and proprietary source in order to get any voodoo working.
In this sense, these folks perfected a "craft" where traditions, despite and also according to very open places like fsdeveloper, freeflight design, etc., remained very word-of-mouth, in-the-known, and heirloom in nature.
I think developers became used to living in these tribes where information didn't leak out enough, or didn't leak out in a conjoined and organized fashion. On top of that, we have a very closed environment to develop for where the most appealing results are still obtained from sorcery (direct memory techniques like FSUIPC), alchemy (weaving a tapestry of multi-SDK and non-SDK techniques), and witchcraft (each "chef" with their own secret ingredients).
The Potential is There
The thing is, the potential to cover the earth and skies in MSFS with all manner of things is there. But the "craft" approach isn't likely to get us there as a unified process doesn't exist. For instance, it was only when ModelConverterX was released did I think that scenery models could really be done quickly. This is because Sketchup is such an insanely intuitive tool. I realize that this is just a set of tools, but it represents a far easier path to get the "middling" among us to develop.
We have the WHOLE WORLD to populate and yet, we're so far from getting that done. We have a constellation of cool aircraft to make and yet it seems like that list is barely dented.
Moreover, many of our "pro-level" development houses seem to lack any sort of software development process method: many duplicate the creation of the same aircraft, many seem to move through projects haphazardly, and many release products with serious defects. Wouldn't, perhaps, a little consortium go a long way? Perhaps pool efforts to achieve the greatest possible combined outcome? We exist in a kind of "pre-industrial" mode where each craftsman is, laboriously, producing the same goods, by hand, over and over again. The "factory process" model seems to have eluded us for the most part. Want a Smiths FMS or a Honeywell ACARS? you can't license of buy it from an outfit that specializes in it, you've go to build it yourself. This sort of replication of effort explains why, proportionally, it is just as long and painful to get high-quality transport-category aircraft to market as would be the case in reality. This soft of modularization, and intra-developer ecosystem is probably what we need to get it off the ground. Why not this sort of specialization? I know we have examples here and there (RealityXP, ISG, etc.), but not enough to really get us moving.
Etc. You get the point (I hope).
That wasn't short at all
Okay, that wasn't brief. So, here's my point: why does the development community for Flight Simulator still generally lack common traditions of software development? Why do we not have a more unified process model and why do we lack easily-adopted practices and standards?
Are we so small and insignificant that we can't develop the critical mass required for cohesion? Are we so born of craft methods that a wider tradition isn't possible?
We have a platform to populate an entire world out there in the software "ecosystem" that is FSX and I feel like what's available only scratches the surface. Would maturing our processes help? Or, do we have the best possible environments and frameworks now?
I am not trying to troll with this, I'd really like to know. I realize that FSX is nearly 5 years old now, and I realize that there is information on FS Development available. However, according to my craft premise, it is spread all over the place, presented in varying (and, at times contradicting) levels of clarity and quality, and just feels disjointed.
If you made it this far, thank you for reading. Again, I am really interested in thoughts and ideas on identifying stable traditions of development that allows greater output that is consistent in quality. In the early days, the number of techniques were fewer and freeware seemed to be more common. It felt like it was somewhat easier to get into it. Now, I'm not so sure.
Last edited: