99
edits
(NavDisplay Improvements: traducido) |
(Wizard-based Aircraft Creation: traducido) |
||
Line 22: | Line 22: | ||
</gallery> | </gallery> | ||
== | == Creación de Aeronaves Basado en Asistentes == | ||
[[File:Aircraft-template-wizard-intro.png|thumb|270px]] | [[File:Aircraft-template-wizard-intro.png|thumb|270px]] | ||
Cuando se llega al desarrollo de una aeronave, una de las áreas que la gente considera frustrante es que las características usadas por los desarrolladores de aeronaves serán documentadas en la Wiki, pero los detalles son tan mínimos que puede ser difícil o casi imposible conseguir que algo funcione porque a los ejemplos publicados les faltan detalles o no muestran importantes variaciones sobre cómo programar cierta característica. | |||
Hemos llegado a la conclusión de que, el mejor paso hacia la solución de estos problemas, es tener un conjunto de plantillas para configuraciones comunes de aeronaves (mono propulsor, multi propursor, mono reactor, multi reactor con copiloto, etc). Estas plantillas tendrían todos los componentes mínimos para armar una aeronave para "producción" (de acuerdo a la guía de calificación). | |||
Hemos estado considerando esa idea por un tiempo, por ejemplo, mantener un proyecto de "plantillas" para cosas como aeronaves, para así asegurar que la gente tenga alguna forma de guiarse sin apoyarse excesivamente en el copiar/pegar - en realidad sólo necesitamos alguien que comience con una aeronave "de prueba", con muchos comentarios y opciones (Nasal, sonidos, [http://wiki.flightgear.org/Canvas canvas], ayudas, checklists, tutoriales). De hecho, sería incluso posible proporcionar asistentes (wizards) para ayudar a personalizar esas plantillas, por ejemplo, para cambiar nombre/autor/status, modelos 3D, nombres de archivo (sonidos, texturas). | |||
La idea es que podríamos tener un conjunto de plantillas estándar para aeronaves, o algún medio más sofisticado para generar skeletons de aeronaves basadas en datos ingresados por el usuario. Estas plantillas tendrían todos los archivos necesarios y el código para implementar una simple pero completa aeronave de una configuración determinada (mono motor, multi reactor, etc), y posiblemente los [http://es.wikipedia.org/wiki/Stub stubs] para mejoras comunes. | |||
Mejoras estándar (checklists, pilotos automáticos, etc) podrían ser incluidas como comentarios, indicando dónde el código necesita ser añadido. Esto haría que las aeronaves de FG fueran más consistentes, pero también ayuda a los desarrolladores de aeronaves primerizos a superar el obstáculo inicial de entender cómo unir todo. Pienso que esto nos ayudaría a salvar el problema de tener tantos aviones en varios estados de pre-producción. | |||
Durante la discusión en el foro, llegamos a la idea de poder tener una plantilla de aeronave y parametrizarla dinámicamente al interior de FlightGear - después de todo, el 95% está programado como un XML PropertyList, por ejemplo, puede ser leído/manipulado y escrito por medios estándar de FlightGear/Nasal - en otras palabras, podrías tomar una ventana PUI existente y convertirla en un "asistente para aeronaves", donde el usuario podría especificar cosas como 1) nombre del archivo, 2) descripción, 3) tipo de FDM, 4) status, 5) miniatura (thumbnail) y así sucesivamente - todo esto es sencillo de hacer, simplemente implica usar setprop() después de haber volcado el template en el property tree mediante io.read_properties(), en cuyo punto podría mostrarse una simple interfaz de usuario para agilizar el proceso de desarrollo de aeronaves en un estilo "paso a paso" (como un wizard). La mayoría del código ya existe, incluyendo una ventana para seleccionar el archivo - lo que falte puede ser implementado mediante extensiones de [http://wiki.flightgear.org/Canvas Canvas]. | |||
Idealmente, este asistente no debería ser implementado como un diálogo XML "hardcodeado", sino más bien como un sub módulo de Nasal que dinámicamente crea "páginas" para cada paso en el asistente. Nada de esto es difícil, en realidad sólo involucra 1) el árbol de propiedades, 2) leer/escribir las propiedades mediante io.nas y 3) Nasal básico (setprop/props.nas) para modificar el template de la aeronave. | |||
Además, el asistente podría fácilmente programarse para reconocer las versiones de FG, y los usuarios ingresarían este dato en el asistente para, por ejemplo, omitir ciertas características como soporte para Canvas, o efectos, etc. | |||
Un primer prototipo, muy básico, está disponible y esperando a ser adoptado por algún colaborador de la comunidad para ayudar a hacer crecer este "asistente", por ejemplo, añadiendo funciones, pero también agregando nuevos templates, para diferentes características de las aeronaves, tales como [[Aircraft Checklists | checklists]], [[Tutorials | tutoriales]], [[Walk View | vistas]], etc. | |||
Dado que la mayoría de nosotros ya parecemos malabaristas con tantos proyectos, estamos buscando gente a los que les gustaría unirse a este de alguna forma. | |||
Referente al código, actualmente son sólo cerca de 150 líneas de código [[Nasal]] muy simple, copiado de varios otros diálogos y tutoriales de la wiki. Por lo tanto, saber Nasal sería un plus, pero si tienes cualquier otra experiencia en programación/scripting, eso también servirá. Entonces, si estás interesado en programar para Flightgear y simplificar el desarrollo de aeronaves para los principiantes, por favor contáctanos mediante el foro o la wiki. | |||
Continúa leyendo en [[Aircraft Generation Wizard]]... | |||
=== Implementing VNAV -a Brainstorming === | === Implementing VNAV -a Brainstorming === |
edits