Capitolo 6
Features

FlightGear contains many special features, some of which are not obvious to the new user. This section describes how to enable and make use of some of the more advanced features.

Many of the features are under constant development, so the information here may not be completely up-to-date. For the very latest information (and new features), see the FlightGear Wiki, available from https://wiki.flightgear.org.

6.1 Multiplayer

FlightGear supports a multiplayer (MP) environment, allowing you to share the air with other flight-simmers. For server details and to see who is online (and where they are flying), have a look at the excellent multiplayer map, available from:

http://mpmap02.flightgear.org

Click on the “server” tab to see a list of multiplayer servers.

6.1.1 Quick Start

You can connect to the MP environment from the Multiplayer Settings dialog under the Multiplayer menu. Simply select the server closest to you from the list, enter a callsign (which will be seen by other players), and click “Connect”.

To see a list of other pilots are in the area, select Pilot List from the Multiplayer menu.

All the standard MP servers are interconnected, so there is no need to be on the same server as people you are flying with.

6.1.2 Other Methods

If you are connecting to a non-standard server, or the above method does not work, you can also connect using the methods below.

Using the FlightGear Launcher

The Settings screen of the FlightGear Launcher has a section for Multiplayer. You can select an existing server from the drop-down list, or configure access manually by selecting Custom server. The latter requires you to provide a hostname and port in the format hostname:port.

You should also configure the callsign to identify yourself. This can be up to 7 characters in length.

Using the Command Line

The basic arguments to pass to fgfs for multiplayer are these:

--multiplay=out,10,<server>,<portnumber>
--multiplay=in,10,<client>,<portnumber>
--callsign=<callsign>
--enable-ai-models

where

  1. <portnumber> is the TCP port number of the server e.g. 5000.
  2. <server> is the name of the multiplayer server e.g. mpserver01.flightgear.org.
  3. <client> is the name of your computer, or the IP address ip address of the network interface being used by FG to connect to the server – even if that’s a local 192.168 type address. e.g. 192.168.0.1
  4. <callsign> is the call sign to identify yourself, up to 7 characters, e.g. N-FGFS.

Once the simulator has loaded, you should see yourself displayed on the map. If you don’t, check the console for error messages and see the Troubleshooting section below.

6.1.3 Troubleshooting

To get multiplayer to work, we need information about the IP address of our computer and the ability to communicate with the server. How to get this information depends on your configuration and is described below.

Those using a USB modem to connect to the Internet

Firstly, you will need to know the IP address of the network you are going to be running FG multiplayer over. If your Internet connection is via an ADSL modem that plugs directly into your computer with a USB connection, you should be able to find your IP address by visiting https://www.whatismyip.com. Please note that this address may very well change every now and again – if MP stops working, check this first.

Those using some kind of Ethernet router to connect to the Internet

Otherwise, your connection is likely via some kind of router that connects to your computer via an RJ-45, or “Ethernet” connector (similar shape to most Western telephone plugs), or by a wireless link. You need to find the IP address of that network interface.

Under Linux, this can be found by logging in as root and typing “ifconfig”. You may find more than one interface listed, beginning with “lo” – ignore that one. You should have something like “eth0” or “wlan0” also listed – look through this block of text for “inet”. This will be followed directly by the number you’re looking for, e.g. “inet 192.168.0.150”

Under Windows 10, click menu Start and type “cmd”. In the terminal window which appears, type “ipconfig”. This should show you your IP address – note it down.

If It Still Doesn’t Work

You MUST give your local, behind-the-router IP address for MultiPlayer to work. Trust me on this one!

You should check that your firewall is not causing problems – either turn it off temporarily or add an exception to allow incoming connections on port 5000.

If it’s still just not working for you, ask nicely on the FlightGear IRC channel and someone should be able to assist.

6.2 Aircraft Carrier

FlightGear supports operations on several carriers, both in the US (such as Nimitz and Vinson in San Francisco) and the Mediterranean sea (such as Eisenhower and Foch). The carriers are equipped with working catapult, arrester wires, elevators, TACAN and FLOLS .

Note that several FG aircraft are carrier-capable, but the seahawk is possibly the easiest to fly to begin with.

6.2.1 Starting on the Carrier

To position your aircraft on the carrier at startup, use the following command line options:

--carrier=Nimitz --aircraft=seahawk

Please note the uppercase “N” in “Nimitz”.

If you are using the launcher, you can select a carrier from the Location screen. Click on the “boat” button on the top right (to the right of the search bar). This will display a list of available carriers, and allow you to set the start position – either on deck or in the air.

If you are using the Windows or OS X launcher to run FG, you should find a text entry box in the gui that allows you to specify command line options, add the above options there.

6.2.2 Launching from the Catapult

Once FlightGear has started, you should ensure that the parking brakes are off and press and hold L to engage the launchbar. You must hold down L until the launch bar has engaged. You should notice the aircraft being pulled into alignment with the catapult and see the strops appear and hold down the aircraft. This will only happen if your aircraft is close enough to the correct spot on the catapult; as a rough guide, for the default parking position the seahawk’s nose should be roughly level with the deck observation bubble.

To get the carrier into as good a position as possible for launch, open the AI Objects dialog from the AI menu, select the carrier you are at (in this case, Nimitz), and select the option Turn to launch course. You should now notice the carrier begin to pick up speed and turn into the wind, and naturally the deck may tilt somewhat as it turns. You should wait for this maneuver to finish and the deck to return to level before moving on to the next stage.

Being attached to the catapult, you should spool up the engines to full power, ensure the brakes are off and that all flight controls are in a suitable position for launch (stick held right back with the seahawk). When ready, press C to release the catapult. Your aircraft will be hurled forward off the deck, and you should be able to raise the undercarriage and climb slowly away, being careful to avoid stalling.

6.2.3 Finding the Carrier – TACAN

Actually finding the carrier in a vast expanse of open water can be very difficult, especially if visibility is poor. To assist with this task, Nimitz is equipped with TACAN (TACtical Air Navigation), which allows a suitably-equipped aircraft (including the Seahawk) to obtain a range and bearing to the carrier. First, you must set the appropriate TACAN channel, 029Y in this case, in the radios dialogue (F12 or choose Equipment Radio Settings from the FG menubar). You should, if within range, notice the DME (Distance Measuring Equipment) instrument show your distance from the carrier, and the ADF (Automatic Direction Finder) instrument (next to the DME in the seahawk) should indicate a bearing to the carrier. Turn to the indicated heading and you should see the DME dial indicate your closing in on the carrier.

6.2.4 Landing on the Carrier

This is the most difficult part of the operation, as in real life. You might well find Andy Ross’ tutorial on operating the A4 Skyhawk useful. It is available from here:

https://wiki.flightgear.org/A-4F_Skyhawk_Operations_Manual

Once you have used the TACAN to locate the carrier, you must line up with the rear of the flight deck. As this part of the deck is at an angle to the course of the vessel, you may need to correct your alignment often. Ensure that the aircraft is in the correct configuration for approach (the Help Aircraft Help menu should contain useful data for your aircraft) and that the gear and the arrestor hook are down.

As you approach you should see, on the left hand side of the deck, a set of brightly coloured lights – called the Fresnel Lens Optical Landing System (FLOLS). This indicates your position on the landing glideslope. You will see a horizontal row of green lights, and when approximately on the glideslope, an orange light (known in some circles as the “meatball”) approximately in line with the green lights. When approaching correctly, the meatball appears in line with the green lights. If you are high it is above, and when low it is below. If you are very low the meatball turns red. If you fly to keep the meatball aligned you should catch number 3 wire.

Carrier landings are often described as “controlled crashes” and you shouldn’t waste your time attempting to flare and place the aircraft gently on the deck like you would with a conventional landing – ensuring that you catch the wires is the main thing.

Immediately your wheels touch the deck, you should open the throttles to full power, in case you have missed the wires and need to “go around” again; the wires will hold the aircraft if you have caught them, even at full power.

If you wish, you can then raise the elevators (through the AI AI Objects <your carrier> menu), taxi onto one of the elevators, lower it (uncheck the box on the menu) and taxi off into the hangar.

Don’t be discouraged if you don’t succeed at first – it’s not an easy maneuver to master. If after a little practice you find the Seahawk too easy, you could move on to the Seafire for more of a challenge!

6.3 Atlas

Atlas is a “moving map” application for FlightGear. It displays the aircraft in relation to the terrain below, along with airports, navigation aids and radio frequencies.

Further details can be found on the Atlas website:

http://atlas.sourceforge.net

6.4 Multiple Displays

FlightGear supports multiple displays. Using some straightforward XML, you can configure multiple “slave cameras” that are offset from the main view, so you can use multiple monitors to display a single view of the simulator. For example, you can have one display showing the view straight ahead, while two additional displays show the view to either side.

Information on configuring multiple displays can be found in the README.multiscreen file in the docs directory of your FlightGear installation.

6.5 Multiple Computer

FlightGear allows you to connect multiple instances of the program using the very flexible I/O subsystem, and display completely different views and controls on different computers. This can be used in combination with the Multiple Display support to create a more sophisticated environment with separate cockpit panel displays and even a separate control station allowing an instructor to fail instruments, change the weather etc.

An example of this is the 747 cockpit project:

http://geoffair.org/fg/site/Projects/747-JW/

6.5.1 Basic Concepts

Each instance of FlightGear can support a single display. Due to the complexity of the FDM and graphics, FlightGear is very processor-intensive, so running multiple instances of FlightGear on a single machine is not recommended.

You will therefore need a computer for each view of the simulation you wish to display, including the panel. The computers obviously must be networked and for simplicity should be on the same subnet.

One computer is designated as the primary machine. This computer will run the FDM and be connected to controls such as yokes, joysticks and pedals. As the machine is running the FDM, it usually only displays a simple view, typically the main panel, to maximize performance.

All other computers are designated as secondary. They are purely used for display purposes and receive FDM information from the primary.

6.5.2 Basic Configuration

Creating a basic configuration for multiple displays is straightforward. The primary computer needs to broadcast the FDM and control information to the secondary machines. This is done using the following command line options:

--native-fdm=socket,out,60,<IP-secondary>,5505,udp
--native-ctrls=socket,out,60,<IP-secondary>,5506,udp

You should change <IP-secondary> to the IP of your secondary machine. Finding out the IP of your machine is dependent on your OS; how to do it you can see in Section 6.1.3.0. If you have multiple secondaries, you can copy these two options in the primary’s command line as many times as required, changing the <IP-secondary> field appropriately for each secondary and keeping the rest of the fields identical.

After starting the primary, you can start the secondary computers. These need to listen for the information provided by the primary, and also need to have their own FDMs switched off:

--native-fdm=socket,in,60„5505,udp
--native-ctrls=socket,in,60„5506,udp
--fdm=null

6.5.3 Advanced Configuration

The options listed above will simply show the same view on both machines. You will probably also want to set the following command-line options on most of the computers:

--enable-fullscreen (full screen for sdl or windows)
--prop:/sim/menubar/visibility=false (hide menu bar)
--prop:/sim/ai/enabled=false (disable AI ATC)
--prop:/sim/ai-traffic/enabled=false (disable AI planes)
--prop:/sim/rendering/bump-mapping=false

If using the primary to display a panel only, you may wish to create a full-screen panel for the aircraft you wish to fly (one is already available for the Cessna 172), and use the following options on the primary:

--enable-panel (enable the display of the 2D cockpit panel)
--disable-hud (disable the HUD)
# switch off rendering the world:
--prop:/sim/rendering/draw-mask/terrain=false
--prop:/sim/rendering/draw-mask/aircraft=false
--prop:/sim/rendering/draw-mask/models=false
--prop:/sim/rendering/draw-mask/clouds=false

6.6 Recording and Playback

As well as the Instant Replay feature within the simulator, you can record your flight for later analysis or replay using the I/O system. Technical details of how to record specific FDM information can be found in the $FG_ROOT/Docs/README.protocol file.

To record a flight, use the following command line options:

--generic=file,out,20,flight.out,playback

This will record the FDM state at 20 Hz (20 times per second), using the playback protocol and write it to a file flight.out. To play it back later, use the following command line options:

--generic=file,in,20,flight.out,playback
--fdm=external

The playback.xml protocol file does not include information such as plane type, time of day, so you should use the same set of command line options as you did when recording.

6.7 Text to Speech with Festival

FlightGear supports Text To Speech (TTS) for ATC and tutorial messages through the festival TTS engine (http://www.cstr.ed.ac.uk/projects/festival/). This is available on many Linux distros, and can also be installed easily on a Cygwin Windows system. At time of writing, support on other platforms is unknown.

6.7.1 Installing the Festival system

  1. Install festival. Some Linux distros (such as Ubuntu 20.04) have packages available to install from their package managers. Otherwise, you can install it from
    http://www.cstr.ed.ac.uk/projects/festival/.
  2. Check if Festival works. Festival provides a direct console interface. Only the relevant lines are shown here. Note the parentheses!

    $ festival
    festival> (SayText "FlightGear")
    festival> (quit)
    

  3. Check if MBROLA is installed. Again, you may be lucky and find it in your distro’s package manager. Otherwise, the official page of the project is:

    https://github.com/numediart/MBROLA

    MBROLA is optional, so you can skip it if you wish. But then you can’t use the more realistic voices :(

    Run MBROLA and marvel at the help screen. That’s just to check if it’s in the path and executable.

    $ mbrola -h
    

6.7.2 Running FlightGear with Voice Support

First start the festival server:

$ festival --server

Now, start FlightGear with voice support enabled. You can do that by adding the following option to your command line:

--prop:/sim/sound/voices/enabled=true

Of course, you can put this option into your personal configuration file. This doesn’t mean that you then always have to use FlightGear together with Festival. You’ll just get a few error messages in the terminal window, but that’s it. You cannot enable the voice subsystem when FlightGear is running.

To test it is all working, contact the KSFO ATC using the  key. You should hear your voice first (and see the text in yellow color on top of the screen), then you should hear ATC answer with a different voice (and see it in light-green color).

6.7.3 Troubleshooting

On some Linux distros, festival access is restricted, and you will get message like the following:

client(1) Tue Feb 21 13:29:46 2006 : \
  rejected from localhost.localdomain
not in access list

Details on this can be found from:

http://www.festvox.org/docs/manual-2.4.0/festival_28.html.

You can disable access restrictions from localhost and localhost.localdomain by adding the following to a .festivalrc file in $HOME:

(set! server_access_list '("localhost"))
(set! server_access_list '("localhost.localdomain"))

Or, you can just disable the access list altogether:

(set! server_access_list nil)

This will allow connections from anywhere, but should be OK if your machine is behind a firewall.

6.7.4 Installing more voices

I’m afraid this is a bit tedious. You can skip it if you are happy with the default voice. First find the Festival data directory. All Festival data goes to a common file tree, like in FlightGear. This can be /usr/local/share/festival/ on Unices. We’ll call that directory $FESTIVAL for now.

  1. Check which voices are available. You can test them by prepending voice_:

    $ festival
    festival> (print (mapcar (lambda (pair) (car pair)) \
                                        voice-locations))
    (kal_diphone rab_diphone don_diphone us1_mbrola \
                       us2_mbrola us3_mbrola en1_mbrola)
    nil
    festival> (voice_us3_mbrola)
    festival> (SayText "I've got a nice voice.")
    festival> (quit)
    

  2. Festival voices and MBROLA wrappers can be downloaded here:

    http://festvox.org/packed/festival/1.95/

    The don_diphone voice is not the best, but it is comparatively small and well suited for ai-planes. If you install it, it should end up as directory

    $FESTIVAL/voices/english/don_diphone/. You also need to install festlex_OALD.tar.gz for it as $FESTIVAL/dicts/oald/ and run the Makefile in this directory.
    (You may have to add --heap 10000000 to the festival command arguments in the Makefile.)

  3. Quite good voices are “us2_mbrola”, “us3_mbrola”, and “en1_mbrola”. For these you need to install MBROLA (see above) as well as these wrappers:

    festvox_us2.tar.gz
    festvox_us3.tar.gz
    festvox_en1.tar.gz
    

    They create directories $FESTIVAL/voices/english/us2_mbrola/ etc. The voice data, however, has to be downloaded separately from another site (see point 4).

  4. MBROLA voices can be downloaded from the MBROLA download page (see above). You want the voices labeled “us2” and “us3”. Unpack them in the directories that the wrappers have created: $FESTIVAL/voices/english/us2_mbrola/ and likewise for “us3” and “en1”.

6.8 Air-Air Refuelling

As the name suggests, Air-Air Refueling (AAR) involves refueling an aircraft (typically a short-range jet fighter) from a tanker aircraft by flying in close formation. FlightGear supports several tankers, each of them supporting one of two systems. The first one comprises a boom that connects to a receiver on the refueling aircraft. The second deploys a hose into which the refueling aircraft inserts a probe.

A number of aircraft support AAR, including the T-38, Lightning, A-4F, Vulcan, Victor (which can also act as a tanker) and A-6E. You can tell if a particular aircraft supports AAR by looking at the AI menu. If the Tanker Controls item is enabled, the aircraft supports AAR.

6.8.1 Setup

To set up AAR, simply start FlightGear with an AAR-enabled aircraft, take-off and climb to about 15 000 ft. Once cruising at this altitude, open menu AI Tanker Controls, select a tanker from the drop-down list and click on Request. This will spawn a new tanker in clear air.

FlightGear will report the altitude, heading, speed, and TACAN identifier of the tanker. Program your TACAN with the TACAN identifier reported by the tanker (through the Equipment Radio Settings dialog, or your cockpit controls). Depending on your aircraft, the tanker may also appear on your radar. If you require more help to find the tanker, you can click on Get Position to be told the tanker location relative to yourself.

Turn to an appropriate heading, guided by the TACAN bearing (you should try a “leading” approach to close in on the tanker) and look for the tanker on the radar or nav. screen. Around 5 nm away, you should reduce your speed to around 20 kts faster than the tanker – a “slow overtake”. Bigger tankers will be visible from about 10 nm, but smaller ones may be visible just over 1 nm. If you find yourself overshooting, deploy your airbrakes.

Close to within 50 ft of the tanker (don’t get too close, or you may collide with the tanker itself). You should see indication in the cockpit that you are receiving fuel (e.g. the A4 fuel gauge has a green light), and you should see the indicated tank load increase. If you still have issues telling whether you are connecting to the tanker, you can turn on option Report refueling in the Tanker controls window. If you still can’t engage with the tanker, increase the Contact radius to make the maneuver more resilient to “disconnects”.

Once your tanks are full, or you have taken as much fuel as you wish, close the throttle a little, back away from the tanker and continue your intended flight.

Successfully refueling is not easy and can take a lot of practise, as in real life. Here are some helpful hints for making contact.

  1. Approach the tanker slowly. It is very easy to overshoot and be unable to spot where the tanker has gone.
  2. If you are having difficulty matching the speed of the tanker due to the throttle being too sensitive, try deploying your airbrakes. This will require more power to achieve the same speed and will reduce the throttle sensitivity.
  3. To reduce your workload, you may be able to use the autpilot to stay at the correct altitude and/or speed. This is technically cheating, though NASA recently demonstrated that an advanced autopilot can perform AAR without pilot intervention.
  4. Bear in mind that as you receive fuel your aircraft will become heavier and the center of gravity will move, affecting the trim of the aircraft.
  5. The tanker aircraft flies a clock-wise “race-track” pattern in the sky. While it is possible to stay connected during these turns, you may find it easier to wait until the tanker has settled on its new course before refueling. The tanker aircraft provides warnings when they are intending to turn.

6.8.2 Multiplayer Refueling

Refuelling is possible within a Multiplayer session using the KC135 or Victor. The pilot of this aircraft should use the callsign “MOBIL1”, “MOBIL2” or “MOBIL3”. Other numbers are acceptable, but only these three have A-A TACAN channels assigned. These are 060X, 061X and 062X respectively.

If the receiving aircraft uses a YASim FDM, there are no further complications. Should the receiving aircraft be JSBSim-based, the user must make sure that there are no AI tankers in their configuration. This means disabling (commenting out) all refuelling scenarios in the relevant aircraft-set.xml and in defaults.xml.

MP refuelling works in exactly the same way as AI refuelling and is a fun challenge. It is best to ensure that your network connection is as free from interruptions as possible; the MP code does a degree of prediction if there is a “blip” in the stream of packets and this can make close formation flight very difficult or even impossible.