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.[1][2]
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.[3]
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:
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.
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).[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 protocollomultiplayer 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
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.[6] PC Magazine fece notare come esso sia progettato per poterci aggiungere facilmente nuovi aerei e scenari.[7]
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).[8]
Date delle release
Release definitivi del codice sorgente per anno.[9]
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.[11]"
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.
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).
^Aircraft Dynamics Models for Use with FlightGear, su ae.uiuc.edu, UIUC Applied Aerodynamics Group at University of Illinois at Urbana-Champaign. URL consultato il 26 giugno 2007 (archiviato dall'url originale il 4 luglio 2007).
^FlightGear v0.95 Released, su lockergnome.com, LockerGnome. URL consultato il 24 giugno 2007 (archiviato dall'url originale il 28 settembre 2011).
^Flying high with FlightGear, su freesoftwaremagazine.com, n. 14, Free Software Magazine, 2006. URL consultato il 15 dicembre 2007 (archiviato dall'url originale il 27 settembre 2012).
^ Tim Smith, FlightGear 0.9.10, su pcmag.co.uk, PC Magazine (UK), 1º settembre 2006. URL consultato il 29 giugno 2007 (archiviato dall'url originale il 27 settembre 2007).
^FlightGear, Marc Stoering, Issue June 2002 FlightXPress magazine.
^Copia archiviata, su flightgear.org. URL consultato il 15 dicembre 2007 (archiviato dall'url originale il 18 dicembre 2007). (controllo il 24 giugno, 2007)
^Copia archiviata, su pcmech.com. URL consultato il 15 dicembre 2007 (archiviato dall'url originale il 29 agosto 2008). (checked giugno 24 , 2007)