# FlightGear

FlightGear Flight Simulator, meglio noto come FlightGear, è un progetto collaborativo che ha lo scopo di creare un sofisticato framework di simulatore di volo libero. È sotto licenza GNU GPL disponibile per svariati sistemi operativi, fra cui Microsoft Windows (Win9x/ME/2000/XP), Linux e macOS.
Il motore di simulazione in FlightGear viene chiamato SimGear. È utilizzato sia come applicazione per l'utente finale sia come ricerca in ambito accademico, per lo sviluppo e il raggiungimento di soluzioni in ambito di simulazione di volo.
La personalizzazione del gioco si può notare nei vari tipi di aerei disponibili in FlightGear, dall'aliante all'elicottero, dall'aereo di linea agli aerei militari. Tutti questi modelli sono stati implementati da svariate persone.

## Storia
### Inizi: 1996, 1997

Lo sviluppo è iniziato nel 1996, con una proposta online su iniziativa dello statunitense David Murr. Lo sviluppo del codice iniziò utilizzando una versione personalizzata del codice per la grafica 3D. Lo sviluppo di una versione che fosse basata sull'OpenGL prese inizio da Curtis Olson agli inizi del 1997. Una grande risposta dalla comunità ha portato a forti contributi al progetto dal suo inizio negli anni 90 al presente.
Piuttosto che partire da zero, gli sviluppatori di FlightGear fecero uso del modello di volo LaRCsim della NASA, con l'OpenGL per il codice grafico 3D e dei dati liberamente usufruibili per le quote del terreno. Le prime versioni compilate uscirono nel 1997 con un aggiornamento molto intenso di nuove versioni per parecchi anni, che portarono progressivamente ad un programma più stabile e avanzato.
Per il 2001, il team di sviluppo distribuiva regolarmente versioni beta (0.7.x, 0.8.x tra il 2001 ed il 2003). Più tardi nello stesso decennio, il ritmo di distribuzione delle varie versioni si è rallentato, a favore di un maggior numero di miglioramenti e aggiunte (0.9.8, 0.9.19, ecc.). La maturità raggiunta del software nell'anno 2005 ha portato ad un maggiore interesse da parte della stampa e ad un forte incremento di popolarità. L'utilizzo di numeri di versione si è drammaticamente rallentato dopo il tardo 2002, alla corrente versione 0.9.0. Le versioni 0.9.9 (2005) e 0.9.10 (2006) hanno avuto circa 8 aerei tutti nuovi (o completamente rifatti), portando il numero totale di aerei dai 70 ai 90. La versione 0.9.11 ne ha circa 33 nuovi (o completamente rifatti).

### Versioni 0.9.0-0.9.11 (2002-2007)

Gli oggetti grafici di FlightGear sono molto dotati se comparati con quelli di altri simulatori tipo Microsoft Flight Simulator anche dello stesso periodo. Inoltre l'intero mondo è ben rappresentato utilizzando i dati delle quote presi liberamente da SRTM, vi sono anche un numero di caratteristiche speciali come per esempio le piste in pendenza. Oltre 20000 piste, nuvole 3D, supporto multi piattaforma, scelte di FDM multiple, quasi 100 aeromobili da poter scegliere garantiscono un buon numero di caratteristiche apprezzabili.
L'Hardware necessario per far girare FlightGear è quello in cui vi sia un supporto alle OpenGL con una scheda accelerata per il 3D; sembra che un miglior supporto lo si ottenga con le schede NVIDIA. Le recenti versioni garantiscono un supporto anche per il 3dfx, sebbene questo sia venuto a mancare in quanto le richieste hardware sono aumentate.
FlightGear viene utilizzato in vari progetti industriali e accademici.

## Software

Il motore della simulazione in FlightGear è chiamato SimGear. Viene utilizzato sia per le applicazioni per gli utenti generici, sia per ambienti di ricerca per lo sviluppo e raggiungimento di idee per la simulazione del volo.
Questa personalizzazione di FlightGear è illustrata dal grande numero di modelli di aerei disponibili in FlightGear, dall'aliante, all'elicottero e dagli aerei di linea ai caccia da combattimento. Questi modelli di aerei sono il contributo di svariate persone.
Il modello di aereo in FlightGear usa uno dei tre modelli principali:
* JSBSim
* YAsim
* UIUC (Dalla versione 0.9.10)
Tuttora solo un motore viene utilizzato per la generazione del terreno: TerraGear. Gli effetti meteorologici includono nuvole 3D, fulmini e differenti orari del giorno.

### Modelli Dinamici di volo

Un modello dinamico del volo (o FDM, dall'inglese Flight Dynamic Model) rappresenta come il volo di un aereo viene simulato nel programma. FlightGear usa una varietà di progetti di modelli interni e importati. Ogni aereo deve essere istruito ad usare uno di questi modelli. Per ora FlightGear è l'unico simulatore di volo grafico in cui gli FDM vengono utilizzati; UUIC e YASim furono sviluppato specificamente per FlightGear. Versioni iniziali utilizzavano FDM basati su LaRCsim della NASA, il quale venne però sostituito dal più flessibile FDM.
* JSBSim - il modello di volo dinamico di default dal 2000.
* YASim - un altro FDM che utilizza un diverso metodo di calcoli. Introdotto a partire dalla versione 0.7.9 nel 2002.
* UIUC -un altro FDM incluso, sviluppato dalla 'UIUC Applied Aerodynamics Group' nell'Università dell'Illinois all'Urbana-Champaign, fa anche uso di LaRCsim.
* Flight Gear può essere impostato per renderizzare utilizzando i dati da una fonte FDM esterna come per esempio MATLAB.
* Sono stati scritti anche altri FDM personalizzati per specifici aerei, come per esempio quelli più leggeri dell'aria.

### Dipendenze di FlightGear

A differenza di titoli commerciali di software, lo scopo principale del progetto è la distribuzione di una collezione di codici. Per farli diventare un pacchetto usabile questi codici devono essere compilati per una specifica piattaforma. Le librerie software utilizzate per creare FlightGear sono variate durante il tempo. La principale è SimGear, che è il principale motore di simulazione che sta alla base di FlightGear. TerraGear non è una dipendenza, ma semplicemente un nome per il programma di default per la generazione del terreno in FlightGear. OpenAL viene usato per il suono e l'audio con l'aggiunta di un supporto per SDL (dalla versione 0.9.5). PLIB per le procedure per il supporto hardware, solitamente usate per il suono che venne comunque rimpiazzato da OpenAL. OpenGL serve per le procedure integrate per la grafica 3D, altre varie accelerazioni hardware (come DirectX) non sono supportate. OpenSceneGraph è anch'esso integrato in FlightGear; molte routine grafiche sono necessarie per la compilazione. Infine, Simple DirectMedia Layer è la libreria software che è utilizzata per compilare. Alcune altre dipendenze variano a seconda del tipo di piattaforma per cui si desidera ottenere il binario. Gli utenti di FlightGear possono sia compilarsi il programma loro stessi, o trovare qualcuno che fornisca i binari già compilati, che non è uno degli scopi del progetto.

### Multi-display e Networking

Parecchie opzioni di networking permettono a FlightGear di comunicare con altre istanze di FlightGear. È disponibile un protocollo multiplayer per utilizzare FlightGear in una rete locale in un ambiente a multi-aereo. Questo può essere usato per voli in formazione o simulazioni di torri di controllo.
Parecchie istanze di FlightGear possono essere sincronizzate per permettere un ambiente multi monitor. Se tutte le istanze girano con lo stesso frame rate, è possibile ottenere buone sincronizzazioni tra i display.

### Software aggiuntivo

Vi sono programmi che sono sia integrati in FlightGear (Dipendenze) o che collaborano con esso per una determinata funzione. Alcuni di questi sono inclusi nelle release di FlightGear per specifiche piattaforme e sviluppati dal progetto stesso, altri invece vengono distribuiti indipendentemente ma comunque ospitati all'interno del progetto di FlightGear.
Un importante software aggiuntivo riguarda l'interfaccia per lanciare l'eseguibile FlightGear. Infatti per la maggior parte del suo sviluppo iniziale FlightGear poteva essere lanciato solo attraverso la riga di comando. Comunque, il FlightGear Launch Control è stato incluso con il front-end FG lancher sin dalla versione 0.9.3 nel 2003. KFreeFlight è un front-end/lanucher per KDE. FGTools è un launcher alternativo per windows. FGKicker è un front-end sviluppato con le GTK+.
Altri programmi di rilievo sono editor e progetti per i dati del terreno. Atlas è un supporto per le cartine e le mappe per FlightGear; Kelpie Flight Planner è un programma per creare i piani di volo sviluppato in Java. FlightGear Scenery Designer è un editor di scenari per poter lavorare con i dati del terreno. Il progetto World Custom Scenery Project ha lo scopo di coordinare gli sforzi e gli sviluppi sugli scenari personalizzati. Infine, Taxidraw è un editor per le piste di rullaggio e le piste di atterraggio/decollo degli aeroporti.

## Il codice di FlightGear rispetto ai binari

Diversamente dalla maggior parte del software commerciale, le date di distribuzione del progetto si applicano solo per la distribuzione dei codici sorgenti, non dei binari. Per ottenere un programma funzionante il codice sorgente deve essere compilato, il che richiede librerie specifiche (Vedi la sezione #Dipendenze di FlightGear) tra quelle generali e quelle specifiche per il tipo di piattaforma di compilazione. Comunque, siccome questo è troppo complicato per la maggior parte degli utenti, altri lavorano per rendere i binari disponibili per le specifiche piattaforme e sistemi operativi. I pacchetti ottenuti variano quindi nella loro stabilità, prestazioni, dipendenze, e di quanto sono aggiornati rispetto al codice di base. Per esempio, alcuni vecchi binari funzionano ancora con Mac OS 9 ma le nuove versioni di FlightGear richiedono la versione di macOS.
Per esempio, nel tardo 2007, l'ultimo codice distribuito era la versione 0.9.11-pre1 (pre-release) e la 0.9.10 (finale). Comunque, i binari disponibili variavano significativamente; alcuni binari disponibili un anno dopo la distribuzione della versione 0.9.10 erano:
* Win-32 ha un pacchetto di circa 138 Mb (v0.9.10) (Per Windows 98, 2000, ME, 32-bit XP)
* Linux Pacchetti compilati per le specifiche distribuzioni
** Slackware pacchetto (v0.9.10), Fedora (v0.9.10), Pardus (v0.9.10), Debian (v0.9.9)
* Solaris pacchetti che girano sia su SPARC sia sui processori x86.
** SPARC (v0.9.8), x86 (v0.9.9)
* Silicon Graphics IRIX
** SGI binari per (v0.9.9)
* macOS
** Mac OS 10.4 (v0.9.10)
** Mac OS 10.3 (v0.9.9)
* FreeBSD ha un pacchetto (v0.9.10)

## Reazioni della critica

Sebbene non sviluppato per essere un gioco nel senso stretto, FlightGear ha in ogni caso ricevuto articoli in un certo numero di pubblicazioni sia online che offline. FlightGear 0.9.10 ha ricevuto molti articoli, evidenziato come una simulazione accurata che però richiedeva pazienza ed un certo lavoro prima di poter giocare. PC Magazine fece notare come esso sia progettato per poterci aggiungere facilmente nuovi aerei e scenari.
Al contrario, un più vecchio articolo alcuni anni precedenti, un articolo di giugno 2002 di FlightXPress, fu piuttosto critico, facendo notare una mancanza di funzionalità e scenari (Si trattava della versione 0.7.10 di FlightGear).

## Date delle release

Release definitivi del codice sorgente per anno.
| Data | Versione |
| 17 luglio, 1997 | Prima release del codice sorgente |
| 23 settembre, 1997 | 0.12 |
| 9 dicembre, 1997 | 0.15 |
| 17 dicembre, 1997 | 0.18 |
| 30 dicembre, 1997 | 0.19 |
| 6 gennaio, 1998 | 0.22 |
| 11 marzo, 1998 | 0.37 |
| 8 aprile, 1998 | 0.41 |
| 14 aprile, 1998 | 0.42 |
| 23 aprile, 1998 | 0.43 |
| 28 aprile, 1998 | 0.44 |
| 7 maggio, 1998 | 0.45 |
| 11 maggio, 1998 | 0.46 |
| 18 maggio, 1998 | 0.47 |
| 9 giugno, 1998 | 0.48 |
| 27 giugno, 1998 | 0.49 |
| 13 luglio, 1998 | 0.50 |
| 21 luglio, 1998 | 0.51 |
| 15 agosto, 1998 | 0.52 |
| 2 settembre, 1998 | 0.53 |
| 25 settembre, 1998 | 0.54 |
| 23 ottobre, 1998 | 0.55 |
| 23 novembre, 1998 | 0.56 |
| 21 gennaio, 1999 | 0.57 |
| 10 febbraio, 1999 | 0.58 |
| 31 marzo, 1999 | 0.59 |
| 26 maggio, 1999 | 0.6.0 |
| 21 giugno, 1999 | 0.6.1 (Stable) |
| Settembre 11, 1999 | 0.7.0 (Sviluppo) |
| Settembre 11, 1999 | 0.6.2 (Stable) |
| 22 ottobre, 1999 | 0.7.1 (Sviluppo) |
| 17 febbraio, 2000 | 0.7.2 (Sviluppo) |
| 18 maggio, 2000 | 0.7.3 (Sviluppo) |
| 20 luglio, 2000 | 0.7.4 |
| 18 settembre, 2000 | 0.7.5 |
| 19 dicembre, 2000 | 0.7.6 |
| 20 giugno, 2001 | 0.7.7 |
| 13 luglio, 2001 | 0.7.8 |
| 16 febbraio, 2002 | 0.7.9 |
| 20 aprile, 2002 | 0.7.10 |
| 7 settembre, 2002 | 0.8.0 |
| 3 dicembre, 2002 | 0.9.0 |
| 5 dicembre, 2002 | 0.9.1 |
| 4 giugno, 2003 | 0.9.2 |
| 24 ottobre, 2003 | 0.9.3 |
| 26 marzo, 2004 | 0.9.4 |
| 29 luglio, 2004 | 0.9.5 |
| 12 ottobre, 2004 | 0.9.6 |
| 18 gennaio, 2005 | 0.9.8 |
| 17 novembre, 2005 | 0.9.9 |
| 5 aprile, 2006 | 0.9.10 (Ultimi binari) |
| Maggio 2007 | 0.9.11-pre1 (Ultimi binari di pre-release) |
| 17 dicembre 2007 | 1.0.0 |
| 21 dicembre 2008 | 1.9.0 |
| 25 gennaio 2009 | 1.9.1 |
| 25 febbraio 2010 | 2.0.0 |
| 17 agosto 2011 | 2.4.0 |
| 17 febbraio 2012 | 2.6.0 |
| 17 agosto 2012 | 2.8.0 |
| 17 febbraio 2013 | 2.10.0 |
| 21 settembre 2013 | 2.12.0 |
| 25 novembre 2013 | 2.12.1 |
| 17 febbraio 2014 | 3.0.0 |
| 15 ottobre 2014 | 3.2.0 |
| 17 febbraio 2015 | 3.4.0 |
| 3 giugno 2018 | 2018.2.2 |
| 6 dicembre 2018 | 2018.3.1 |
| 29 gennaio 2019 | 2018.3.2 |
| 14 marzo 2019 | 2019.1.1 |
| 9 agosto 2019 | 2018.3.4 |
| 2 aprile 2020 | 2018.3.5 |
| 11 maggio 2020 | 2020.1.1 |
| 25 maggio 2020 | 2020.1.2 |
| 26 giugno 2020 | 2020.1.3 |
| 9 agosto 2020 | 2018.3.6 |

## Aerei

FlightGear iniziò con un aereo incluso in LaRCsim, della NASA, un Ryan Navion, che venne sostituito con un Cessna 172 nel 2000. JSBsim portò con sé parecchi nuovi aerei, così fece pure lo sviluppo di YASim."

### Aerei della versione 0.9.10

L'installer di base è limitato a soli 15 aerei, ma parecchie dozzine di altri aerei ufficiali sono ad un differente stato di sviluppo e sono disponibili per essere scaricati. La versione su CD/DVD include tutti questi aerei ed alcuni dati sul terreno, sebbene tutto questo materiale sia scaricabile liberamente. Esistono anche aerei non ufficiali di terze parti, ma non sono inclusi nella seguente lista. Sono inclusi anche alcuni edifici personalizzati, specialmente attorno all'area di San Francisco; ed è inclusa anche una portaerei di classe Nimitz.
Aerei del pacchetto 0.9.10:
* 1903 Wright Flyer, Boeing 737-300, Fairchild A-10 Thunderbolt II, Northrop T-38 Talon, Messerschmitt Bf 109 G14, Eurocopter Bölkow Bo 105, Cessna 172P Skyhawk, Cessna 310, Cessna Citation Bravo, General Dynamics F-16 Fighting Falcon, Hawker Hunter GA11, Piper J-3, P-51D Mustang, Piper Cherokee Warrior II, Rascal 110 (R/C model aircraft), UFO (flying saucer), così come numerosi aerei UIUC in via di sviluppo.
Tutti gli aerei ufficiali per la versione 0.9.10, con i loro dati del modello di volo e della strumentazione, sono elencati così come si trovano sul cd della versione 0.9.10 di FlightGear. Alcuni aerei sono solo FDM, mentre altri aerei di terze parti sono esclusi dalla lista (Così come lo sono i componenti aggiuntivi).
Aerei ad ala fissa:
* Boeing 707, Boeing 737-300, Boeing 747-100 (JSBSim), Boeing 777-200 (YASim), Fairchild A-10 Thunderbolt II (YASim), Airbus A300, Airbus A320-200, Douglas A4F Skyhawk (YASim), Aerostar Super 700 strumentazione 3D (YASim), AN-225, Beechcraft B1900D (YASim) cruscotto 3D, B-29, B-52F Stratofortress (bombardiere a jet), BAC TSR-2 Prototipo (YASim FDM), Beechcraft Model 99 (YASim), Messerschmitt BF-109 G14 (caccia a motore a pistoni), Boeing 314 Clipper (Idrovolante di linea), Cessna 150x prototipo (solo FDM), Cessna C172-LE (solo FDM), Cessna 172P Skyhawk (modello del 1981), Cessna 172R, Cessna 182, Cessna 310 (civilian) con strumentazione 3D, Cessna U-3, English Electric Canberra B(I) 8 (YASim FDM), Cessna 550 Citation II strumentazione 3D (YASim), Cessna Citation Bravo - strumentazione 3D (YASim), Comper Swift, Concorde (aereo di linea), Douglas DC-3 (aereo di linea), de Havilland Beaver (YASim) strumentazione 3D (Idrovolante), Lockheed F-104 Starfighter (caccia a jet), McDonnell Douglas F-15 Eagle (solo FDM), General Dynamics F-16 Fighting Falcon (jet), Lockheed F-80C Shooting Star (caccia jet), Fokker Dr.1 (WW1 caccia), Fokker 100 (JSBSim) (aereo di linea), Fokker 70 (JSBSim) (aereo di linea), Fokker F50 (aereo di linea turbo compresso), Harrier (jet), Hawker Hunter GA11 (YASim) (caccia jet), Hawker Hurricane IIb, Soko J-22 Orao / IAR-93, Piper J-3 (J3C-65, modello 1946), Boeing KC-135E (solo FDM) (Aereo di rifornimento jet), Let L 410 (JSBSim, strumentazione 3D, solo FDM) (Aereo di linea turbo compresso), English Electric Lightning F.1A (caccia jet britannico), Lockheed 1049 (aereo di linea), SIAI-Marchetti S-211 (UIUC) (solo FDM) (jet), McDonnell Douglas MD11 (aereo di linea jet), MiG-15bis (YASim) (caccia jet sovietico), North American OV-10A Bronco (turbocompresso), P-51D Mustang (caccia a motore a pistoni), Piper Comanche 250 (modello del 1962), Piper Cherokee Warrior II (modello del 1979), Pilatus PC-7, Seahawk (caccia jet), Piper PA34-200T Seneca II (jsbsim)(yasim), Space Shuttle (solo FDM), Sopwith Camel (motore a pistoni), Supermarine Seafire MkIIIc, Supermarine Spitfire IIa, Cirrus SR-20 (solo FDM), Cessna T-37 Tweet (jet), Northrop T-38 Talon (jet da addestramento), Tupolev Tu-114, Tupolev Tu-154 (aereo di linea jet), Wright Flyer 1903, X-15 (aereo razzo), X-24, Northrop YF-23 (jet)
Alianti e veleggiatori:
* ASW-20 veleggiatore (UIUC), Schweizer 2-33, Aliante di fuga Colditz, Airwave Xtreme 150 aliante appeso (UIUC)
Elicotteri:
* Eurocopter Bölkow Bo 105, Sikorsky CH-53E Super Stallion (solo FDM), CH-47 Chinook (solo FDM), Bell 206 JetRanger (solo FDM), Aérospatiale AS 350 Écureuil (solo FDM)
Vari (Generici, R/C, Fantasia, etc.):
* Rascal 110 (R/C)(YASim) JSBSim), Parapendio, UFO, 'Ogel', Ornitottero (UIUC FDM), Santa Claus Slitta, 'Manta' (solo FDM), Bluebird Explorer (specie di veicolo VTOL fantascientifico)

### Aerei della 0.9.11

Aerei tutti nuovi, o pesantemente ricostruiti nella versione 0.9.11 di FlightGear: Boeing 787-8, Northrop Grumman A-6E (Intruder), Airbus A320, Nakajima A6M2, Antonov An-2, Northrop B-2 Spirit, Bristol Beaufighter, Bielsko SZD-9 Bocian, Lockheed C-130 Hercules, Cessna 182RG, Sikorsky CH-53E, Cessna Citation X, Dornier Do 335, Boeing E-3B Sentry, Eurocopter EC 135, McDonnell Douglas F-15C Eagle, McDonnell Douglas F-18 Hornet, Chance Vought F4U Corsair, Mainair Flash 2 Alpha, Hughes H-4 Hercules, Kyūshū J7W, Junkers Ju 52, Nakajima Ki-84 (Hayate), Messerschmitt Me 262, Dassault Mirage 2000, de Havilland Mosquito, NTPS, de Havilland DH.110 Sea Vixen, Sikorsky S-76C, Flanker-F, Avro Vulcan B.2, Sikorsky S-70 (UH-60)

### 1.0.0 aircraft

Nuovi aerei: Cessna Citation-II (wip), Beechcraft 1900D, de Havilland Canada DHC-2 Beaver