

Find your way into flight simulator cockpit construction
4.1 Microsoft Flight Simulator
The Microsoft Flight Simulator consists of an open architecture (a combination of
editable configuration files and a SDK: Software Development Kit) that enables the
addition of third party add-
1: Generate output in order to operate a cockpit
2: Process input generated from the cockpit in order to operate the simulated aircraft
These are the 2 basic requirements to develop a real working flight simulator cockpit.
Starting with FSX the SDK's including detailed documentation are included with the deluxe edition. Regular updates will be provided at FSinsider. Behind every SDK is a world of its own. If you perform a search on the Internet you will find many examples of people specialized in 1 or more SDK's. To a certain extent the boundaries of what you can make are determined by you own imagination (in combination with "time"). The download libraries on AVSIM or FlightSim but also commercial suppliers like Aerosoft and Flight1 give an impression of what can be achieved. In the remainder of this section we will concentrate on the issues most relevant to building a flight simulator cockpit.
The definitions for the aircrafts within Microsoft Flight Simulator can be found
in the "SimObjects\Airplanes" directory in the Microsoft Flight Simulator main directory
(e.g "C:\Program Files\Microsoft Games\Microsoft Flight Simulator X" for a typical
installation). (Before you really start editing it is recommended you make a backup
of original files and take notice of the Microsoft Flight Simulator documentation.)
In principle you will find 1 directory with all related files per aircraft. If the
name of the aircraft would be "DC-
|
DC-
|
<directory name>
|
|
|
model
|
<dir>
|
Directory with the 3-
|
|
panel
|
<dir> |
Directory with the panel definition file "panel.cfg" and the bitmaps used to display the panel. The gauges are included in this directory or in the "gauges" directory at the same level as the "aircraft" directory.
|
|
sound
|
<dir> |
Directory with the sound definition file "sound.cfg" and the aircraft specific sound files (*.wav). The general sound files are included in the "sound" directory at the same level as the "aircraft" directory.
|
|
texture
|
<dir>
|
Directory with the textures that are mapped on the 3-
|
|
aicraft.cfg
|
<file>
|
Definitions of the aircraft
|
|
DC-
|
<file>
|
Definitions of the aircraft
|
Chances are you will find more directories and/or files, but the above are the most important ones.
4.1.1 Flight model
When your objective with building a flight simulator cockpit for a specific aircraft is "as real as it can get" than tuning the flight model (the aircraft.cfg file) will play an important role. Certainly when you have acquired specific documentation / manuals on aircraft operations, performance and construction. The formal documentation on this subject can be found in the SDK directory "SimObject Container System". Starting with FSX the SDK's including detailed documentation are included with the deluxe edition.
The aircraft.cfg file can be edited by hand. Additionally there is the "<aircraft_name>.air" file, which can not be formally edited. The content of the .air file is not communicated by Microsoft because it seems to contains sensitive / copy righted information obtained by them from the manufactures of the aircrafts that are included with Microsoft Flight Simulator. The expectation is however that within the future releases of Microsoft Flight Simulator the user will be more and more able to exactly configurate their aircraft. Within the Microsoft Flight Simulator community (by means of reverse engineering) software has been developed to edit the .air file. Places to start are AirEd , MudPond, "Bob's Flight Dynamic Tutorial" downloadable from Simviation and Herve Sors. Of special interest is AvHistory, this group shares the methods of creating flight models that fly within 1% of the performance of their real world counterparts.
The aircraft.cfg file for Microsoft Flight Simulator allows you to specify a large number of characteristics of the aircraft, many of them influencing the flight simulator cockpit experience. To get an impression you will find a brief overview below. In order to change the settings in FS without leaving FS you will have to turn off AI traffic and reload the aircraft.
|
Force feedback
|
Within the force feedback section it is possible to fine tune the "touch" of your aircraft by defining the forces generated in the force feedback joystick.
|
|
Flight tuning
|
In this section one can control the sensitivity / behavior of the aircraft with respect to flight control, stability, lift and drag. Examples of parameters are elevator_effectiveness or roll_stability. The default values of all these parameters is 1.0, you can influence them by an increase or decrease in steps of 10% (0.1).
|
|
Weight and balance
|
In this section the weight and center of gravity of the aircraft can be adjusted or tuned. This also introduces the ability to really "load" your aircraft before departure making it all more realistic. For this "loading" functionality there are some applications around that make it easy to apply a new loading configuration an example is ACLoader.
|
|
General engine data, Piston engine Propeller, Turbine engine data, Jet engine, Turbine engine data, Turboprop
|
In the engine sections the characteristics and performance of the engine(s) and propeller(s) can be defined.
|
|
Aircraft geometry
|
In this section the geometrical data of the aircraft can be specified. This will influence the handling and performance of the aircraft.
|
|
Reference speeds
|
Parameters like the stall speed of the aircraft can be edited in this section.
|
|
Contact points
|
This section is for the configuration of the way the aircraft reacts to different kinds of contacts such as: landing gear contact, braking, steering. It also defines the threshold at which damage from airspeed occurs.
|
|
Flaps
|
In this section a detailed specification of the flaps can be given.
|
|
Electrical
|
In this section the aircraft's electrical system is specified. This can be done in great detail. Be aware of the fact that "the battery voltage decreases if the generators or alternators are not supplying enough current to meet the demand of the active components". For each component the current required to power the component can be specified and influences the load on the electrical system. Also the minimum voltage can be specified that is needed for the component to function. The electric system is based on a bus structure. One can specify to which bus a component is connected.
|
|
Pitot static
|
Section to tune the lag of the vertical speed indicator for the aircraft.
|
|
Helicopter
|
Helicopter specific settings.
|
|
Exits |
Section with specific data about the aircraft exits used by the visual model.
|
|
Views
|
For the flight simulator cockpit builder this is an important section. By means of the parameter "eyepoint" the longitudinal, lateral, and vertical position of the pilot's eyepoint can be specified.
|
|
Lights
|
Section with specific data about the aircraft lights used by the visual model.
|
|
Keyboard
|
In this section the effect of key presses when manipulating the flight controls by means of the keyboard can be defined.
|
|
Direction indicators
|
In this section specifications for the direction indicators can be given.
|
|
Fuel
|
A detailed specification of the fuel system can be given in this section.
|
|
Autopilot
|
In this section a specifications for the auto pilot can be given.
|
|
Radios
|
In this section a specifications for the aircraft's radios can be given.
|
|
Smoke system
|
Section with specific data about the special smoke effects used by the visual model.
|
|
Effects
|
Section with specific data about the special visual effects that result from various systems or reactions of the aircraft used by the visual model.
|
4.1.2 Sound definitions
Sound is an important element of simulation. Besides generating an audio experience it is additionally an important source for the vibrations that can be generated in a flight simulator cockpit (as described in the section 6). Investing some time to fine tune the sound files of your aircraft pays off. Many sound definitions provided with aircrafts do not make use of all the options. When applied in the right way (e.g. matching the variations of surface types with "touchdown" or "ground roll") it can trigger the corners of your imagination. It is not easy to record aircraft sounds yourself. However, you can (with the right software) modify the Microsoft Flight Simulator sounds (e.g. make them heavier or lighter or introduce additional sounds), take samples of other sounds (e.g. video or DVD) or use one of the many sites on Internet that provide sound samples. (Be aware of the use of copy righted material when you intent to distribute your sound files to others.)
The basic principle for sound files is that a .wav file is interpolated with respect to volume, pitch or amplitude against an axis of speed (ground, wind) or RPM (engine). This interpolation can be specified between 2 to 8 points, which is called an envelope. This envelope makes it possible to specify a detailed behavior of the sound against the axis (e.g. speed). Many aircraft sounds are composed of multiple linked definitions (definition = combination of envelope specification and .wav file) which is called a “sound list” and played in sequence as a group. For instance the ground sounds can be varied according to 17 surface types (groups) or for each engine a sequence of definitions can be defined. When relevant sounds can be defined as heard inside or outside, left, front, right, backside of the aircraft. This detailed interpolation mechanism, the sequencing and the variation makes it possible to generate a large diversity of spatial sound effects with high quality. The use of a program like FS Sound Studio (FSSS) or Aviacoustic (Andrzej Suwald) makes this even very easy (fool proof).
All together you can define very detailed (and large) sound files. As stated before, investing some time pays off! Describing all the details goes beyond the scope of this text. To give an impression the sound categories are: Starter, Combustion start, Combustion, Jet whine, Shutdown, Non combustion, Propeller, Wind, Touchdown, Ground roll (including water & snow), Gear, Flaps, Various warning sounds, Scrape, Crash / Splash. The formal documentation on this subject can be found in the SDK directory "SimObject Container System". Starting with FSX the SDK's including detailed documentation are included with the deluxe edition.
4.1.3 Panel definitions
Depending if you are building a (partial) "glass cockpit" (e.g. using CRT-
A panel consists out of 3 elements: the panel.cfg file (definitions of the various panel windows and the location of gauges within these windows), *.bmp files that are used for the background of the panel windows and the gauges themselves in either *.gau or *.xml files. You can make / change your own panel (i.e. changing the panel.cfg file) by using ready made gauges from Microsoft Flight Simulator, downloaded freeware gauges, third party commercial gauges or gauges made by yourself. The use of a program like FS Panel Studio (FSPS) makes this even very easy (fool proof).
On an abstract level the principle of a panel should be seen as a collection of small programs (gauges) that are processed in a loop. Since this processing is done very rapidly the total movement of the gauges on the screen gives the impression of real time instruments. For complex gauge environments it is even possible to give priorities to the execution of gauges. Note that within the Microsoft Flight Simulator all elements on a panel (so also switches, lights, etc.) are called gauges. Until Microsoft Flight Simulator 2002 the gauges (*.gau files) where equivalent to DLL files. Starting with Microsoft Flight Simulator 2002 it is additionally possible to define gauges in XML format. Defining gauges in XML format goes very well as long as you do not need access to resources (like a database) outside Microsoft Flight Simulator or require very complex processing (not really the area for using XML). For the initial gauge definitions (the DLL variant) the SDK supports the development in "C", but there are also examples of gauges developed using Visual Basic. If programming in "C" is too much for you, perhaps EasyGauge (Blue Sky Software) is an option to make the specific gauges you need.
A gauges definition (XML) or program (DLL) can be divided in 4 parts.
|
1 |
Drawing elements
|
Gauges are made of drawing elements (.bmp files). These elements are used by the drawing instructions that create the "movement" on your screen.
|
|
2 |
Drawing instructions
|
The drawing instructions generate the "movements" of the gauges as in an animated cartoon. The instructions are on the level of a gauge, e.g. the rotation of a needle on a gauge.
|
|
3 |
Input handling
|
As a user one can interact with gauges by means of key-
|
|
4 |
Computation
|
For the movement of a gauge computation is needed. For this one can "read" a very large set of parameters within Microsoft Flight Simulator. To a smaller set of parameters one can "write" results.
|
The learning curve for the actual gauge development in "C" is (very) steep, doing
it in XML -