La historia puede ser un tema aburrido. Sin embargo, de vez en cuando hay personas que preguntan por la historia de FlightGear. Como resultado, daremos un breve resumen.
El proyecto FlightGear se remonta a una discusión entre un grupo de ciudadanos de la red en 1996 que resultó en una propuesta escrita por David Murr quien, desafortunadamente, abandonó el proyecto (así como la red) más tarde. La propuesta original todavía está disponible y se puede encontrar en:
https://groups.google.com/g/rec.aviation.simulators/c/ny8HFBE5_T8/m/OdtIiGNGJc8J
Aunque los nombres de las personas y muchos de los detalles han cambiado con el tiempo, el espíritu de esa propuesta claramente se ha mantenido hasta la actualidad.
La codificación en sí comenzó en el verano de 1996 y, a fines de ese año, se completaron las rutinas gráficas esenciales. En ese momento, la programación fue realizada y coordinada principalmente por Eric Korpela de la Universidad de Berkeley. El código inicial se ejecutaba tanto en Linux como en DOS, OS/2, Windows 95/NT y Sun-OS. Se descubrió que este era un proyecto bastante ambicioso ya que implicaba, entre otras cosas, escribir todas las rutinas gráficas de una manera independiente del sistema, completamente desde cero.
El desarrollo se ralentizó y finalmente se detuvo a principios de 1997 cuando Eric estaba completando su tesis. En este punto, el proyecto parecía estar muerto y el tráfico en la lista de correo se redujo a casi nada.
Fue Curt Olson de la Universidad de Minnesota quien relanzó el proyecto a mediados de 1997. Su idea era tan simple como poderosa: ¿Por qué inventar la rueda por segunda vez? Ha habido varios simuladores de vuelo libres disponibles que se ejecutan en estaciones de trabajo con diferentes versiones de UNIX. Uno de estos, LaRCsim (desarrollado por Bruce Jackson de la NASA), parecía adaptarse bien al enfoque. Curt lo desarmó y reescribió varias de las rutinas para que se compilaran y se ejecutaran en las plataformas de destino previstas. La idea clave para hacerlo fue explotar una plataforma de gráficos independiente del sistema: OpenGL.
Además, en la primera versión se tomó una decisión inteligente sobre la selección de los datos básicos del escenario. El escenario de FlightGear se crea a partir de datos satelitales publicados por el Servicio Geológico de EE.UU.. Estos datos del terreno están disponibles en:
https://www.usgs.gov/core-science-systems/ngp/tnm-delivery/gis-data-download
para los Estados Unidos y
para otros países. Esos datos de escenarios de acceso libre, junto con las herramientas de creación de escenarios incluidas con FlightGear, son una característica importante que permite a cualquiera crear su propio escenario.
Este nuevo código de FlightGear, que todavía se basa en gran medida en el código de LaRCsim original, se publicó en julio de 1997. Desde ese momento, el proyecto volvió a cobrar impulso. A continuación, se muestran algunos hitos en la historia de desarrollo más reciente.
En septiembre de 1998, Curt Olson logró crear un modelo completo de terreno para los EE.UU. El escenario está disponible ahora para todo el mundo, a través de un mapa seleccionable en:
En junio de 1998, las bases para un sistema de menú se estableció sobre la base de la librería PLIB (Portable Library PLIB, Librería Portátil) . Después de haber estado inactivo durante un tiempo, las primeras entradas de menú cobraron vida en primavera de 1999.
PLIB experimentó un rápido desarrollo más tarde. Steve Baker lo ha distribuido como un paquete separado con una gama mucho más amplia de aplicaciones en mente, desde la primavera de 1999. Ha proporcionado el motor de renderizado de gráficos básico para FlightGear desde el otoño de 1999.
Durante el desarrollo ha habido múltiples esfuerzos de reorganización del código. Varios subsistemas de código se integraron en paquetes. Como resultado, el código está organizado a día de hoy de esta manera:
La base del motor de gráficos es OpenGL, una librería de gráficos independiente de la plataforma. Basado en OpenGL, la librería portátil PLIB proporciona funciones para renderizado básico, audio, joystick, etc. SimGear se basa en PLIB, que incluye todas las rutinas básicas necesarias para el simulador de vuelo, así como para la construcción de escenarios. Encima de SimGear está (i) FlightGear (el simulador en sí), y (ii) TerraGear, que comprende las herramientas de construcción de escenarios.
Esta no es de ninguna manera una historia exhaustiva y lo más probable es que algunas personas que han hecho contribuciones importantes se hayan quedado fuera. Además de las contribuciones antes mencionadas, mucho trabajo respecto a la estructura interna se ha realizado por: Jon S. Berndt, Oliver Delise, Christian Mayer, Curt Olson, Tony Peden, Gary R. Van Sickle , Norman Vine, y otros. Puedes encontrar una lista más completa de contribuyentes en el Capítulo A.4, así como en el archivo Thanks que se proporciona con el código. Además, la Wiki de FlightGear contiene un historial detallado de todos los hitos de desarrollo notables que vale la pena leer:
https://wiki.flightgear.org/Category:FlightGear_changelogs
¿Has disfrutado del vuelo? En caso de que lo hayas hecho, no olvides a los que dedicaron cientos de horas a ese proyecto. Todo este trabajo se realiza de forma voluntaria en el tiempo libre, por lo tanto, ten paciencia con los programadores en caso de que algo no funcione como quieras. En su lugar, siéntate y escríbeles un correo agradable (!) proponiendo qué cambiar. Alternativamente, te puedes suscribir a las listas de correo de FlightGear y aportar tus opiniones allí. Las instrucciones para hacerlo se pueden encontrar en
https://wiki.flightgear.org/Mailing_lists
Básicamente, hay dos listas: una de las cuales es principalmente para los desarrolladores y la otra para los usuarios finales. Además, hay una lista de muy poco tráfico para anuncios.
A continuación se nombran a las personas que realizaron el trabajo (esta información ha sido esencialmente extraída del archivo de Gracias que acompaña al código fuente).
Otorgó permiso para que el proyecto FlightGear pueda utilizar algunos de los efectos de sonido de su sitio.
Agregó recorte para instrumentos 2D, control de volumen ATC y creó una amplia variedad de aviones.
El Sr. Alonzo es el autor de Ssystem y dió su permiso para la utilización de la textura de la luna. Partes de su código se utilizó como una plantilla a la hora de añadir la textura. La página web de Ssystem se puede encontrar en:
http://openuniverse.sourceforge.net
Autor de Instalación y Empezando. Página del Simulador de Vuelo en:
Trabajando en una reescritura/reimplementación completa en C++ del núcleo de FDM. Inicialmente está usando datos X15 para probar su código, pero una vez que todo esté en su lugar, deberíamos poder simular cualquier avión. Jon mantiene una página que trata sobre Dinámica de Vuelo en:
Se presta especial atención al X15 en páginas separadas de este sitio. Además, Jon contribuyó a través de muchas sugerencias/correcciones a esta Guía.
Rehizo el sistema de depuración, para hacerlo mucho más flexible y pudiera ser fácilmente deshabilitado para el sistema de producción, y así los mensajes para ciertos subsistemas pudieran ser habilitados selectivamente. También contribuyó en un primer intento en el sistema de análisis de la línea de comand/archivo de configuración.
¡Proporcionó una gran cantidad de espacio en línea para almacenar escenarios de EE.UU. para FlightGear!
Muchos estilos C++, utilización y mejoras de implementación, portabilidad STL y mucho, mucho mas. Añadió soporte de hilos y un paginador de teselas con hilos.
Actualizadas varias partes del manual, escribió el subsistema de tutoriales inicial, desarrolló vegetación y edificios aleatorios.
Contribuyó en el fichero README.Linux. Contribuyó en múltiples secciones de las primeras versiones de Instalación y Empezando.
Mucho trabajo haciendo que FlightGear funcionara con el compilador MSVC++. Numerosos consejos para mejoras de detalles.
Soporte al proyecto. La página web PDAS (Public Domain Aeronautical Software - Software Aeronáutico de Dominio Público):
tiene CD-ROM del PDAS a la venta que contienen grandes programas para ingenieros astrónomos.
Proporcionó algún código inicial para el análisis de archivos DEM de 30 arcsec que se encuentran en:
John mantiene el repositorio CVS de paquetes base. Él ha contribuido a las texturas de nubes, ha escrito un excelente Howto del Joystick, así como del panel. Además, ha contribuido con nuevas configuraciones del panel de instrumentos.
Dave creó nuevas texturas chulas de pistas, así como algunas de nuestras texturas de nubes.
Empezó unas FAQ (Frequently Asked Questions - Preguntas Frecuentes), Documentación, relaciones Públicas. Está trabajando añadiendo algún código de red/multi-usuario. Fundador del Multipiloto de FlightGear.
Clases de C++ implementadas para vectores 2D, 3D, 4D y Matrices 3D y 4D (basado en Graphics Gems IV, Ed. Paul S. Heckbert)
https://www.animats.com/simpleppp/ftp/public_html/topics/developers.html
Contribuyó con un código de interpolación de esferas utilizado por el sistema de base de datos meteorológicos de Christian Mayer.
Ha escrito bajo la licencia GPL una herramienta para convertir polígonos en franjas triangulares, que usamos:
https://www3.cs.stonybrook.edu/~stripe/
Creó los sonidos del motor de un solo pistón como parte de un paquete F4U para FS98. Son bastante chulos y Oscar estaba feliz de haber contribuido con ellos a nuestro pequeño proyecto.
Contribuyó con parches para la compatibilidad de MSVC5.
Mejoró el sistema de compilación para Windows y proporcionó las dependencias pre-compiladas.
Contribuyó al soporte de joystick, una fuente LED, mejoras en la interfaz telnet y HTTP. Esfuerzos notables en la caza de fugas de memoria en FlightGear, SimGear y JSBSim.
Autores de las librerías zlib, utilizadas para las funciones de compresión y descompresión sobre la marcha:
Contribuyó al manual.
Cambios y actualizaciones para compilar en FreeBSD.
Contribuyó con cambios para el HUD configurable por XML.
Contribuyó con nuestro primer piloto automático (Heading Hold - Mantenimiento del Rumbo). Mejor comprobación de autoconf para las variables externas de zona horaria y hora del día.
Contestó pacientemente a preguntas sobre OpenGL.
Hizo los cambios de construcción de los paquetes de RedHat para SimGear.
Por darnos permiso para poder utilizar sus maravillosos aviones en FlightGear.
Gran revisión y parametrización del módulo de sonido para permitir una configuración de sonido específica de la aeronave en tiempo de ejecución. Contribuyó con el soporte SGI IRIX (incluyendo binarios) y algunas texturas realmente geniales.
Trabajó en la mejora del código del HUD. Aportó muchos consejos de estilo y retoques del código.
Desarrollo del código LaRCsim con fondos de la NASA que usamos como modelos de dinámica de vuelo. Bruce ha contestado pacientemente a muchas, muchas preguntas.
Agregó soporte para helicópteros, interacción tren de aterrizaje/tierra y soporte aerodinámico/cabrestante al YASim FDM.
Contribuyó a los binarios Debian.
Contribuyó con el búfer de pantalla a la rutina de captura de pantalla de ppm. También ayudó en el desarrollo inicial del “módulo de mantenimiento de altitud del piloto automático” al enseñarle a Curt Olson los conceptos básicos de la Teoría de Control y ayudándole a codificar y depurar versiones anteriores. Bob Hain, el “Jefe” de Curt, también contribuyó a esto. Más detalles disponibles en “Flight Gear Autopilot: Altitude Hold Module” on archive.org.1
La página web de Rich está en:
Portó la librería de audio primero a OpenBSD e IRIX, y después a Win32.
Ayudó con el ajuste de los efectos de niebla.
Rehizo el sistema de Makefile, para que fuera más simple y robusto.
Contribuyó con correcciones al manual.
Aportó correcciones y la traducción al polaco de este manual, actualizó todas las capturas de pantalla utilizando la versión actual de FlightGear (en 2021), mejoró y rehizo otras ilustraciones (p.e., utilizando formatos vectoriales) y ayudó a hacer el marcado LaTeX de este manual más limpio.
Contribuyó en gran medida al modelo del motor de pistones IO360.
Contribuyó al manual traduciendo los tutoriales HTML a LaTeX.
Trabajando en las herramientas de conversión multi-lenguaje para fgfs como una demostración de tecnología. Contribuyó al código para leer de texturas de escenarios de Flight Simulator de Microsoft. Christian está trabajando en un subsistema de clima completamente nuevo. Donó un globo aeroestático al proyecto.
Contribuyó con parches para el control de los mandos de dirección con el ratón. Contribuyó financieramente para espacio de disco duro para su uso por el proyecto FlightGear. Actualizaciones a README.running. Trabajando en hacer que fgfs y ssg funcionen sin texturas. También añadió los nuevos paneles 2D y el soporte para guardar/cargar. Además, ha desarrollado el núevo código del panel, jugando mejor con OpenGL, con nuevas prestaciones. Desarrolló el gestor de propiedades y contribuyó al soporte del joystick. Objetos de tierra aleatorios.
Mantenedor de las FAQ (Frequently Asked Questions - Preguntas Frecuentes). Administrador principal de las listas. Proporcionó las páginas man.
Contribuyó con texturas de escenarios de primera categoría, siendo todas creaciones originales suyas.
Anterior mantenedor de las páginas web Europeas.
Creó la librería Genérica de Recorte de Polígonos:
https://en.wikipedia.org/wiki/General_Polygon_Clipper
Autor del GNU dbm, un conjunto de rutinas de bases de datos que utilizan hash extensibles y trabajan de manera similar a las rutinas estándar UNIX dbm.
Creó Escenario Europeos. Contribuyó con un script para convertir escenarios fgfs a mapas renderizados 2D. Escribió un primer borrador de Howto para la Creación de Escenarios.
Organización principal del proyecto.
Primera implementación y modificaciones basadas en LaRCsim.
Además de juntar todas la piezas proporcionadas por otros, principalmente en todo lo
concerniente al subsistema de escenarios así como en temas gráficos.
Hicimos uso de su librería TR y, por supuesto, de Mesa:
https://www.ssec.wisc.edu/~billh/bp/TR.html,
https://www.mesa3d.org
Contribuciones al desarrollo del modelo de vuelo, incluyendo una Cessna 172 basado en LaRCsim. Contribuyó a las condiciones iniciales del código de JSBSim, un modelo atmosférico estándar más completo y otras correcciones de errores/adiciones.
Mantiene la base de datos mundial de aeropuertos y pistas para FlightGear y para X-Plane.
Contribuyó al código para modelar con mayor precisión VSI, DG, Altitud. Sugerencias para mejoras del diseño del simulador en la lista de correo y ayuda en la documentación.
Desarrollo de un panel de instrumentos texturizado inicial.
Incorporó el sistema GNU automake/autoconf (con libtool). Esto debería simplificar y estandarizar el proceso de construcción para todas las plataformas tipo UNIX. Debería tener poco efecto en los entornos de tipo IDE, ya que no utilizan el sistema make de UNIX.
Contribuyó con el código para agregar “frenos”. También escribió un parche para soportar un primer joystick con más de 2 ejes. Hizo el trabajo para crear escenarios basados en datos de VMap0.
Contribuyó con un nuevo FDM configurable llamado YASim (Yet Another Flight Dynamics Simulator - Otro Simulador de Dinámica de Vuelo Más), basado en información de geometría en lugar de coeficientes aerodinámicos.
Le proporcionó a Durk Talsma toda la información que necesitaba para escribir el código astro. El Sr. Schlyter también está dispuesto a responder a preguntas relacionadas con los astros cuando sea necesario.
https://stjarnhimlen.se/english.php
Contribuyó con ideas en el soporte de audio.
Contribuyó con varias texturas y al modelado de motores.
Autor del programa Triangle. Triangle se utiliza para calcular la triangulación Delaunay de nuestro terreno irregular.
Contribuyó con un modelo de vuelo Cherokee para LaRCsim. Actualmente no funciona y
necesita ser depurado. Usa las opciones --fdm
=larcsim --aero
=cherokee para lanzar el
Cherokee en lugar del Cessna.
Contribuyó a los gráficos de cabina, modelos 3D, logotipos y otras imágenes. Proyecto Bonanza.
Co-Autor de El Manual.
Mantiene una base de datos de objetos y su ubicación para poblar el escenario mundial.
Sol, Luna y Planetas precisos. El sol cambia de color según su posición en el cielo. La luna tiene la fase correcta y se mezcla bien con el cielo. Los planetas están posicionados correctamente y tienen la magnitud adecuada. Ayuda con funciones de tiempo, GUI y otras cosas. Contribuyó con la capa de nubes 2D. Sitio web en
Contribuyó con modificaciones a LaRCsim para permitir la carga de los parámetros de aeronaves desde un archivo. Estas modificaciones se realizaron como parte de un proyecto de investigación de formación de hielo.
Aquellos que hicieron la codificación y todo el trabajo:
Jeff Scott
Bipin Sehgal
Michael Selig
Además, aquellos que ayudaron en el esfuerzo:
Jay Thomas
Eunice Lee
Elizabeth Rendon
Sudhi Uppuluri
Proporcionó datos geográficos utilizados por este proyecto.
https://www.usgs.gov/core-science-systems/ngp/tnm-delivery/gis-data-download
Contribuyó con algo de código de análisis METAR y algunas rutinas de impresión de pantalla de Win32.
Contribuyó con algún soporte inicial de GameGLUT y otras correcciones. Ha realizado un trabajo preliminar en un formato de archivo binario.
Proporcionó numerosas URLs a la comunidad FlightGear. Muchas optimizaciones de rendimiento por todo el código. Muchas contribuciones y muchos consejos para la sección de generación de escenarios. Muchas contribuciones relacionadas con Windows. Contribuyó con las rutinas de distancia y rumbo wgs84. Contribuyó con un modo de piloto automático de ruta de gran círculo basado en las rutinas wgs84. Muchas otras contribuciones de GUI, HUD y piloto automático. Parches para permitir el control la dirección de la vista con el ratón. Capturas de pantalla en mosaico en ultra alta definición. Contribuyó con las funciones ir al aeropuerto y reset iniciales y el código del servidor de imágenes HTTP inicial.
Contribuyó con geniales texturas fotorealistas. Fundador del Proyecto de Escenarios Europeos para X-Plane.
Portabilidad de FlightGear al entorno de desarrollo Metro Works (PC/Mac).
Contribuyó con una gran cantidad de cambios para portar FlightGear al entorno de desarrollo de Metro Works (PC/Mac). Finalmente produjo la primera portabilidad a Macintosh. También contribuyó a la parte de Mac de Empezando.
Contribuyó al código de variación magnética (implementa Nima WMM 2000). También se ha tomado prestado en varias ocasiones del maravilloso formulario de aviación de Ed. Sitio web en:
Escribió una revisión importante del código del visor para hacerlo más flexible y modular. Contribuyó con muchas pequeñas correcciones e informes de errores. Contribuyó al navegador de propiedades PUI y al piloto automático.
Autor de MetaKit – una base de datos portátil e incrustable con un formato de archivo de datos portátil utilizado anteriormente en FlightGear. Consulta por favor la siguiente URL para obtener más información:
https://www.equi4.com/metakit/
Si bien FlightGear ya no usa los servicios de Woodsoup, agradecemos el apoyo proporcionado a nuestro proyecto durante el tiempo que nos hospedaron. Hubo una vez que proporcionaron recursos y servicios informáticos para que el proyecto FlightGear pudiera tener un hogar real.
Ayudó enormemente a descubrir el compilador Cygnus Win32 y cómo vincularlo con .dll’s. Sin él, la primera versión Win32 ejecutable de FlightGear no habría sido posible.
Contribuyeron a la traducción al español del manual y de la interfaz de usuario de FlightGear.
Los siguientes individuos han contribuido a la base de datos de objetos de escenarios: Jon Stockill, Martin Spott, Dave Martin, Thomas Foerster, Chris Metzler, Frédéric Bouvier, Melchior Franz, Roberto Inzerillo, Erik Hofman, Mike Round, Innis Cunningham, David Megginson, Stuart Buchanan, Josh Babcock, Esa Hyytia, Mircea Lutic, Jens Thoms Toerring, Mark Akermann, Torsten Dreyer, Martin C. Doege, Alexis Bory, Sebastian Bechtold, Julien Pierru, Bertrand Augras, Gerard Robin, Jakub Skibinski, Morten Oesterlund Joergensen, Carsten Vogel, Dominique Lemesre, Daniel Leygnat, Bertrand Gilot, Morten Skyt Eriksen, Alex Bamesreiter, Oliver Predelli, Georg Vollnhals y Paul Richter.
Si has leído (y, tal vez, has seguido) esta guía hasta este punto, probablemente estás de acuerdo: FlightGear, incluso en su estado actual, no es en absoluto algo insignificante. Ya es un simulador de vuelo que admite incluso varios modelos de vuelo, muchos aviones con cabinas 3D, HUD, escenarios de terreno con edificios realistas, carreteras, ríos, saltos de agua, todos los controles básicos con soporte para muchos joysticks y clima real.
No obstante, FlightGear necesita, y obtiene, más desarrollo. Excepto retoques internos, hay varios campos en los que FlightGear necesita mejoras y desarrollo básicos. Una primera dirección es agregar aeropuertos, edificios y más de esas cosas que aportan escenografía a la vida real y perteneciente a aeropuertos y ciudades realistas. Otra tarea es una mayor implementación del sistema de menú, que no debería ser demasiado difícil con lo básico que está funcionando ahora. Muchas opciones configuradas actualmente a través de la línea de comandos o incluso durante el tiempo de compilación deberían finalmente convertirse en entradas del menú. Finalmente, FlightGear no tiene un buen ATC hasta la fecha.
Ya hay gente trabajando en todas estas direcciones. Si eres programador y crees que puedes contribuir, estás invitado a hacerlo.
Obviamente, este documento no podría haberse escrito sin todos los colaboradores mencionados anteriormente para hacer realidad FlightGear.
Primero, me alegró mucho ver a Martin Spott participando en el esfuerzo de documentación. Martin proporcionó no solo varias actualizaciones y contribuciones (especialmente en la sección OpenGL) en el lado de Linux del proyecto, sino también varias ideas generales sobre la documentación en general.
Me gustaría expresar un agradecimiento especial a Curt Olson, cuyos numerosos archivos README, agradecimientos, páginas web y correos electrónicos personales fueron de especial ayuda para mí y fueron explotados libremente en la elaboración de este folleto.
Por otro lado, Bernhard Buckel escribió varias secciones de las primeras versiones de esa Guía y contribuyó con muchas ideas. Jon S. Berndt me apoyó mediante la revisión crítica de varias versiones del documento, señalando inconsistencias y sugiriendo mejoras.
Además, obtuve mucha ayuda y apoyo de Norman Vine. Quizás, sin las respuestas de Norman, nunca hubiera podido domesticar diferentes versiones de la pareja Cygwin - FlightGear.
Nos alegramos de que nuestro experto en Mac, Darrell Walisser contribuyó con la sección sobre compilación en macOS. Además, envió varias sugerencias y correcciones relacionadas con Mac.
Más contribuciones y donaciones en varios temas vinieron de John Checka (disposición general), Oliver Delise (múltiples sugerencias, incluyendo notas en ese capítulo), Mohit Garg (OpenGL), Kyler B. Laird (correcciones), Alex Perry (OpenGL), Kai Troester (problemas de compilación), Dave Perry (soporte del joystick) y Michael Selig (modelos UIUC).
Además de aquellos cuyos nombres se perdieron durante el problema de última hora, nos gustaría expresar nuestro agradecimiento a las siguientes personas por contribuir con valiosas “correcciones de errores” a esta versión del Manual de FlightGear (en orden aleatorio): Cameron Moore, Melchior Franz, David Megginson, Jon Berndt, Alex Perry, Dave Perry, Andy Ross, Erik Hofman y Julian Foad.