Wednesday, January 09, 2008

What is a True FSX Aircraft?

Now that FSX Acceleration and SP2 have been released, along with their respective SDK's, there appears to be some confusion in the FS communities as to exactly what constitutes a FSX aircraft. A quick look around various payware vendors' sites sees such terminology as FSX ready, FSX compatible, FSX compliant, FSX model, true FSX aircraft, FSX/FS2004 etc.

Firstly before looking at this terminology, it might be useful to have a bit of a look at the background of all this. Also, before continuing, I would like to mention that it is not the intention of this article to criticise MS Aces or any third party developers, or indeed to debate the wisdom of backward compatibility within MS Flight Simulator. These can be addressed in future blog posts if need be.

Microsoft Flight Simulator X (FSX) was a significant upgrade over previous versions of the simulation, and in many ways quite ambitious. I think even the Aces team themselves, were surprised at the amount of work involved in developing FSX compared to previous versions of the simulation. Much of the 3d engine was re-written. New shader technology was introduced along with a new GPU based animation system. Much of the world/terrain engine was re-written. FSX now has a round earth and we can zoom out into space if we want to. (No space physics though ...... yet) I am currently not a scenery designer, but I would imagine all these changes and advances would impact scenery designers too.

From what I have read in various forums and blogs, FSX was designed primarily to work on DirectX 9.0 and Windows XP. I am not sure if Windows Vista was around or in early beta stages when FSX was specced & designed. There were certainly no DirectX 10 video cards around when FSX was developed. (DirectX 10 requires Windows Vista and a DX10 video card to function). Prior to the release of FSX RTM, MS/Aces stated their intention to add DirectX 10 compatibility to Flight Simulator X after its release, via a downloadable patch. Though what this would actually involve was not known at the time. Amidst all this change Aces attempted to maintain backward compatibilty with earlier versions of the simulation.

When FSX RTM was released, the sim looked great (at least on my PC) but performance was a significant issue on many peoples' machines. To address this MS/Aces undertook to develop a patch to address performance and other issues . This arrived in the form of SP1 accompanied by a SP1a SDK release. The necessity of SP1 pushed the development and release of the DX10 patch back by several months. Add to the mix FSX/Acceleration, complete with new aircraft and additional functionality. The DX10 upgrade arrived in the form of service pack 2 (SP2), which also included further performance enhancements. However the DX10 upgrade was not a full DX10 upgrade and was called a DX10 preview. I have read various accounts as to why this occurred. The main reason I understand to be, was that a significant code re-write would have been required, which would have further broken backward compatibility and additionally there was not enough time within the life cycle of FSX to fully develop this. FS11 is under development and Aces have other products being developed too. They have to move ahead. Both SP2 and Acceleration have respective SDKs also.

For aircraft designers the most significant DX10 preview feature is self shadowing in aircraft virtual cockpits.

The FSX SDK is now part of the Deluxe version of the product and is included on the DVD. This version of the SDK is required to be installed before installing the SDK service packs. Previous SDKs were available as free downloads. I would assume making the FSX SDK part of the Deluxe version product would enable MS/Aces to fund the development of the SDK. The FSX SDK has its own development team and all this costs money. The SDK is considerably improved over earlier versions of the SDK (IMHO at least :) ) .

As one can guess all this means considerable change in the way aircraft are created and much variability in functionality and features of aircraft created with different versions of the FS SDK.

Returning to the topic of what exactly is a True FSX aircraft, I will quote from one of my own posts at Sim-Outhouse.

"1. FSX Hybrid/Ports = usually compiled with FS2004 SDK tools, materials textures & gauges adjusted to work in FSX. These aircraft usually have issues with prop/rotor disk alpha transparency interacting with autogen and clouds. These aircraft otherwise function correctly in all versions of FSX. However the fps of FS2004 SDK compiled are not as good as native FSX aircraft.

2. FSX RTM SDK Aircraft = Aircraft compiled with the original FSX RTM SDK. These aircraft work in all versions of FSX. However significant changes were made to the SDK tools between RTM & SP1 SDK which reduce mdl size and increase fps performance. Perf is the only real difference bewteen RTM & SP1 sdks, and these are true FSX aircraft.

3. FSX SDK SP1 Aircraft = FSX compliant, but with significant perf increase over RTM.

4. FSX SDK SP2 Aircraft = FSX compliant. Further perf gains over SP1, if the aircraft's 3D modeling gives consideration to draw calls. (My own aircraft compiled with Accel/SP2 SDK appear to work in FSX SP1 but this might not happen for all aircraft.)

5. FSX SDK SP2 Aircraft/DX10 Cockpit Shadows enabled = As per 4. SP2 and Xpack SDKs also provide the modeler with an option to enable a shadow map in the virtual cockpit. Cockpit shadows on enabled aircraft will only work in DX10 preview mode. Designers also have to apply special design considerations in constructing their cockpit models otherwise unpredictable results will occur.

6. FSX SDK Acceleration Aircraft = as per 4 & 5 above, but with support for extra features in Acceleration as in the F/A-18, EH-101 and P-51 e.g. Winches, carrier functionality, P-51 ADS etc.

The bottom line is yes, there are two main categories - those compiled with FS9 SDK tools and made to work in FSX & those compiled with the various FSX SDKs. The various FSX SDKs mainly differ in terms of perf & added functionality."

As I mention in my Sim-Outhouse post now that the SP2 SDK has been released (and most likely no future SPs), it is important, from now on, for developers, payware & freeware to state which SDK has been used to compile the aircraft.

[Edit: I should have perhaps added that much additional broken aircraft functionality in DX10 preview mode is caused by aircraft, perhaps originally developed using tools earlier than FS9 SDKs (eg FS2002 to FS9 conversions). Though some aircraft have texture problems that I believe can be fixed. I have yet to move to a Vista/DX10 system myself.]

As we move forward I would think that SDK SP2, would be the advisable development standard. If DX10 preview cockpit shadow mapping has been enabled, this should be stated. (I use the term cockpit 'shadow map enabled', rather than DX10 compliant as any FSX SDK compiled aircraft should otherwise be DX10 compliant, save for this feature). Likewise if an aircraft or helicopter uses additional functionality found only in Acceleration, this should be stated also, as any purchaser or downloader would require Acceleration to run the aircraft add-on. I should also have suggested that developers should also state what versions of FSX the aircraft has been tested in. I am not a scenery developer but as a purchaser I would like to know similar information, i.e. what SDK was used to develop the scenery and configurations it has been tested on.

This article is much longer than intended. I hope it clarifies rather than confuses.

cheers

Rob

1 comment:

Lionman said...

This has been an excellent and comprehensive explanation of the current state of play regarding FSX aircraft for which I thank the author. As the capabilities of hardware and the complexity of software increases in this, perhaps the most demanding realm of PC applications of all, such detailed explanation become more and more valuable for those of us who need to know but lack an "inside track".

Thank you.

LIONMAN