• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FS Software Process, Development, and Quality

I've always thought of FSDeveloper as the 'base' repository of all things FS, it always amazes me what I can find here. Ok, you do need to search a bit to find what you need, but to me this is a better way than a simple how-to.

The wiki here is a bit under-utilised, but the basics are there.

Here's just a few thoughts which have crossed my mind when reading this thread:

Most developers come to this from different directions, through different needs. I don't think that anyone plans the jump from early dabbler through to serious developer, this just happens, and is normally directed by their particular requirements -- which may vary a lot from other developers. I started out wanted to improve the scenery for New Zealand, and that's still my goal, so working towards a global goal is of no interest to me.

One thing I've talked about before is the desire to learn new things. I wouldn't want too many people like that collaborating together, though, as it wastes a lot of time. So my way isn't the best way, but it suits me, and I wouldn't do this if I couldn't suit me. I'd be doing something which pays a lot better.

To create an 'industry' means following every other industry -- which means drones to do the actual work. I've never met a developer who would be happy to be a drone!

I like to do things my way, and be self-sufficient, which is why I chose to support myself designing scenery. Ok, it didn't quite work out great, with a couple of hard years with health issues, but it still suits me.

I'm aware that a lot of budding developers are looking for the easy way, but like anything, there is none. My original tutorials were designed to get people using GMAX without worrying about 99% of its features, but those who eventually went on to create great stuff actually learn the other 99% themselves, over a long time, which is pretty much what beginners don't want to know. I really had to trick people into thinking it was easy, and those who got hooked did the rest.

So back to the original post:

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?

I think that developers do generally use the same techniques, subject to:
a) new developers tend to like to do things simpler, so they look at other tools, such as Sketchup.
b) the 'best' techniques depend on the resources you start with, which can vary a lot. Forcing every development along the same path doesn't allow for any 'artistic license', or any other creativity, for that matter.

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?

Yes, pretty much, considering that another side of this is the actual organisation -- a lot of developers require the freedom to do things their own way, which doesn't leave a lot to band together.

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?

As I said, FSDeveloper is the ideal environment, it already contains much a greater knowledge base than I would ever have imagined, and still manages to encourage creativity and experimentation.
 
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.
Just recently I came across an article from the https://www.cogniteq.com/blog/top-iot-companies blog and decided to contact Cogniteq regarding development issues. They almost immediately understood what kind of product I wanted to get and completed their work in the shortest possible time. I'm happy.
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.

:)
This is a truly important issue that deserves attention and discussion.

In my opinion, one of the main problems is the lack of centralized leadership or organization that would coordinate the efforts of developers and set common standards. This leads to fragmentation of information and the lack of a unified approach to development.

To improve the situation, it may be worth looking at examples of successful developer communities such as Linux and trying to learn from their methods of collaboration and information sharing. It is also important to encourage initiatives to create training materials and guides that would help newbies better understand the development process and use the available tools more effectively.

I hope that together we can move forward and make application development for Flight Simulator more structured and efficient.
 
Back
Top