Feature Requests / Proposals / Ideas

From FlightGear wiki
Revision as of 10:57, 8 April 2009 by MILSTD (talk | contribs) (moving nasal related proposals to another page)
Jump to navigation Jump to search
Cleanup.png This article may require cleanup to meet the quality standards of the wiki. Please improve this article if you can.

Occasionally, people join the FlightGear mailing lists offering to contribute to FlightGear and asking where they might start contributing, apparently often hoping for some sort of official "TODO" list or at least some sort of semi-official roadmap. Unfortunately, nothing like this exists so far for FlightGear and the closest thing to a "TODO" page, the "Goals page", has apparently not really been updated for several years.

So it is understandably hard for new community members to get a good grasp of the current development status and -progress, as well as to identify areas where FlightGear might use some improvement if they have not followed the recent mailing list discussions. In addition, many developers find it often hard to come up with suggestions for "mini projects", not because there are not any such opportunities, but rather because there does not exist any sort of general schedule or development plan. However, FlightGear itself does indeed offer a very broad range of often exciting contribution possibilities, this page is dedicated to providing a collection of such ideas that were discussed on the mailing lists. Not all of these ideas are necessarily "mini projects", rather some of these can be quite complex efforts that were simply not pursued because of the very complexity.

Also, as this is a static page and no searchable bug tracking system, we have decided to categorize these "mini projects" into groups ranging from "minor", "intermediate", "major" and "huge" to give new developers an impression of the estimated complexity of the various ideas.

Please note: while this list is only meant to provide an overview of desirable short- and long-term features for FlightGear itself, there are meanwhile various interesting FlightGear-related co-projects, that you might want to check out for other interesting possibilities to contribute to the FlightGear community as a whole, for example:

IMPORTANT: before you actually start working on any of these efforts, it is important to subscribe to the FlightGear Developer's mailing list to discuss your plans (additionally you may also want to check out the FlightGear IRC channel: irc.flightgear.org #flightgear ), this is extremely important in order to avoid duplicate code/efforts and a lack of coordination with regard to relevant implementation details. In addition, it's worth pointing out that this wiki page may not necessarily be "up2date" with the latest developments in FlightGear.

So please make sure to talk about your plans with other contributors and especially with the maintainer !! of the respective FlightGear component or affiliated project before starting your work, because ideas listed on this page don't necessarily match the intended/planned direction of development.

User Perceived Improvements

This is meant to provide an overview of things that users perceive as insufficient or simply inconvenient in FG, so that the developers can get an impression of issues that users would like to see eventually addressed in FlightGear. Among others, inspired by- and based on references to discussions posted by Melchior Franz to the developer's mailing list, on 02-11-2006:

Evaluating the merits of such discussions should eventually enable us to determine which areas in FlightGear need to be specifically addressed in order to make FlightGear appeal to more users. Please feel free to add new entries.

The FlightGear forums are another place where users frequently come up with "wishlists" of features that they'd like to see in FlightGear:

Comments related to fgfs usage for IFR flying:

(None of these threads have so far been evaluated or incorporated here)


General

  • no version information available within GUI
  • no licensing information available within GUI
  • no detailed build information available within GUI (compiler, date, cflags/ldflags etc)
  • no information about versions of linked dependencies within GUI

Platform Support/Misc

  • significant initial download (>200MB) - might be a good idea to try to reduce the base package size where possible (as of 11/2008 this is being addressed by replacing rgb textures with png textures)
  • insufficient mac support (as of 11/2008 mac support has significantly improved, see the macflightgear project at sourceforge)
  • lacking documentation (as of 11/2008 quality of up to date documentation has been significantly improved, especially due to the wiki but also due to the FlightGear forums.
  • webpage appearance (as of 11/2008 this is still being brought up regularly in various discussions, on both the mailing lists and the forums)
  • outdated FAQ

Setup/Hardware Support

  • non-intuitive joystick configuration (it has been repeatedly suggested to make joystick configuration more intuitive by providing a built-in GUI mode based on dialogs & script within FlightGear) [1] [2]
  • GUI does not yet expose many of FlightGear's features that are available via command line, i.e. FG isn't fully runtime configurable - many changes require a simulator restart.
  • no multi screen support (as of 11/2008, this is no longer true given the latest additions of multi view/camera support, see Howto: Configure Camera View Windows, however multi-screen support still needs to be configured at startup time, it cannot be set up dynamically or modified at runtime (as requested here).

Startup

  • non-integrated startup wizard (requires fgrun)
  • significant startup times - according to forum discussions in 03/2009, this really isn't the case anymore: FlightGear can generally be expected to start up in less than 30 seconds on current hardware, even in graphically complex areas

Usage

  • hardly localized UI: GUI, command line, error messages
  • no localized help dialogs (basic commands, keys...)

Running

  • lacking performance: as of 03/2009 FG OSG is generally still frequently reported as being significantly slower on systems that were previously able to run fgfs with much better framerates
  • does not work well on lower end hardware, this boils down to a lack of dynamic feature-scaling support as discussed on the forums on 03/2009
  • starting FG takes a while and FG may seems to have crashed, the window (splash screen) is not redrawn-unresponsive until finally started up
  • warnings and error messages are only rarely informative, i.e. "unknown exception in the mainloop"
  • excessive logging (console output) may severely affect simulator performance, up to an unusable state: this is due to logging being executed in the main loop [3] (also frequently discussed on the forums due to the recent issues with Qnan/triangleIntersect warning messages flooding the console)- this has been brought up several times already and the effect of logging on overall simulator performance was recently (03/2009) also discussed on the jsbsim mailing list [4] where it lead to a discussion about potential alternatives for implementing logging support [5]

Realism

  • no realistic helicopter support (no longer true: FlightGear features now pretty realistic support for helicopter flight)
  • hardly realistic scenery-missing/inappropriate textures, objects, landmarks. (this changed WRT textures already some time ago)
  • not very advanced AI ATC
  • no flight planning facility integrated/available (several 3rd party options)
  • no support for weight & balance (and fuel) for aircraft (not true of YASim)
  • currently not a suitable VFR simulator (basic vegetation modeling has been added in 2008)
  • few buildings have proper night textures (this situation is somewhat improving since 01/2008)

Visuals

  • not fully animated 3D models (this depends on the aircraft being used)
  • insufficient weather modeling and -effects (as of 11/2008, shader-based 3D clouds were added to CVS/HEAD)
  • non-standard GUI, not too appealing to many users
  • no realistic water modelling (improving in OSG branch as of 11/2007, in fact there's very promising work going on since 01/2008)
  • no moving map directly integrated in FlightGear (separate program available: atlas)
  • no water effects for ocean and rivers (waves/streams)
  • no nice passage of taxiways at airports (the textures aren't abound in each other)

Interactivity

  • no integrated tutorial/ground school or learning mode (No longer true: depends on aircraft being used, tutorials are available on an aircraft-specific basis)
  • no real interactive mission (scenario/adventure) support (lack of evaluation facilities to assess user's performance)
  • no combat support
  • no Voice ATC
  • no ATC facilities for real life controllers (VATSIM like)
  • no scripted demo flights that users could "play" to see a simple flight (pattern) including landing

Avionics

  • currently no glass cockpit support
  • no support for advanced avionics that would require drawing complex images (i.e. charts) to instrument screens

Modding

  • non-intuitive scenery modification and installation
  • non-intuitve aircraft modification and installation
  • non-intuitive aircraft panel creation (lack of GUI frontend)
  • airports/runways cannot easily be modified/re-created
  • non-configurable approach lighting for runways
  • no blade element FDM

Feature Requests

Minor Requests

  • The fgfs multiplayer system currently seems to resend positional properties even during replay mode [6], so that the full replay is transmitted to the multiplayer server where it may cause unnecessary confusion - this should be fairly easy to fix by making the current behaviour optional via a corresponding runtime-configurable property.
  • Create or modify existing DTDs/Schemas for the various PropertyList encoded XML file formats that FlightGear currently supports (FDM, Aircraft, GUI, Sounds etc.), so that such DTDs or Schemas can be used by XML editors and validators. Work in progress as of 03/2009 [7]
  • Add support for an optional framerate limiting mode (configurable, default i.e. 60-70fps), this can safe CPU cycles on many platforms (no useless idling/sleep() ) available: /sim/frame-rate-throttle-hz
  • Add new nimitz carrier view
  • the menubar should be reloadable
  • there should also be an option to reload the aircraft's instrumentation system file (currently usually $FG_ROOT/Aircraft/Generic/generic-instrumentation.xml), also errors in these files are not properly dealt with-there are not even warnings or error messages.
  • when the aircraft's position is changed/reset, instrumentation subsystems should be suspended-slower machines (where repositioning may take several seconds) show occasionally undefined behaviour due to running (and confused) instrumentation systems
  • add additional pitch mode to autopilot dialog for climb/descent gradients, so that users can specify a gradient that is automatically maintained (i.e. a glidepath)
  • add support for non-rectangular hotspots (2D panels)
  • currently, hotspots don't seem to work properly if you tilt the panel-we should try to fix this soon
  • Currently, aircraft featuring multiple different startup configurations (i.e. cold/idle) have to be implemented using separate *-set.xml files for each individual situation, however it would make sense to consider a more flexible approach, where all available startup-situations are simply enumerated in the aircraft *-set.xml (i.e. as referenced separate PropertyList-encoded XML files, saved within a corresponding "situation"), so that a "loadxml" command or Nasal script could eventually overwrite the default state with the state from the desired startup situation; later on possibly with an option, allowing users to view all available startup situations and switch at runtime.

Intermediate Requests

  • switch completely to SDL (or OpenProducer?) for I/O handling (many more possibilities and better support than plib/GLUT can offer) CVS/HEAD is now based on osgviewer
  • support additional transformation type to allow cropping and cutting off of textures, useful for example for things like a rose vs. arc mode HSI representation
  • it might be a good idea to add another routine to SimGear that can optionally check textures to match the 'power of two' requirement and emit a console warning if that's not the case. This will make it easier for developers to track down texture size related problems.
  • add new command to nasal interpreter to allow playing of sound files (see mailing list discussions)
  • there are still plenty of old "pseudo-subsystems" that do not yet make use of SGSubsystem, it would be good if subsystems such as the GUI subsystem could be ported to become native SGSubsystems
  • implement a "failure/crash" (limits?) subsystem that can be XML-configured with tailored values and limits for specific aircraft (i.e. max allowable speeds in various configurations, max allowable pitch up/down, roll angle, g load etc.). That way, it would be up to aircraft authors to provide such limits for their aircraft in some sort of easily modifiable XML file and FlightGear could optionally honor these values at runtime (currently, it is no problem to extend the gear or flaps at ridiculously high speeds, or crash-land an airliner and keep flying afterwards-this would certainly add a good portion of realism to FlightGear and could still be kept entirely optional). this has been basically implemented via the the limits Nasal module, see Howto: Define speed limits
  • provide a GUI dialog that automatically enumerates all available instrumentation systems, so that users can easily enable/disable individual systems
  • add a native flight planning facility to FlightGear, so that VFR/IFR flights can be planned (loaded and saved) and optionally be passed on (filed) to the AI/ATC subsystems, this will probably require the base package to be extended with terminal approach/departure data.
  • provide runtime configurable friction coefficients for runways to simulate contaminated runways (dirt, water, snow/ice) at runtime and export corresponding properties to property tree[8] [9].
  • extend weather modelling subsystem to simulate weather features such as thermals, gusts or windshear more extensively and realistically. This would also come in very handy for sailplane/gilder modelling which is currently not yet satisfactorily simulated.
  • add openGL wrapper commands to the Nasal interpreter, so that users can make use of basic OpenGL calls (the primitives at least) from their scripts, optionally allow to render to a texture rather than directly to the screen, i.e. useful for things like a scripted display (CDU/moving map) Don't try to bypass the SceneGraph, instead, use proper interfaces/modelling..
  • add support for registration labels to be drawn at runtime to an aircraft's tail-possibly using ImageMagick (or maybe just PLIB's FNT library) and rendering the text to a texture, so that airplanes can optionally show proper registrations (taken form the property tree) in multiplayer or AI traffic scenarios feature is available, see Immatriculation
  • Make HUDs completely XML-configurable, so that users can easily create their own customized HUDs using arbitrary values from the property tree and generic OpenGL primitives as well as animations
  • extend sgsubsystem class to optionally publish each subsystem's actual update interval (determined at runtime) to a specific property, this will allow simple nasal scripts to deal with any issues (i.e. show warnings) if a certain subsystem is not, or cannot be run at a certain update interval. As more and more complex subsystems are getting added to FlightGear this would add the possibility for automatic detection of subsystems that cannot be run at proper update intervals, i.e. due to old/slow hardware. Ultimately, this could also make it easier to add auto-scaling support to FlightGear. [10]
  • add support for vector images (SVG) to FlightGear, so that FlightGear can use vector images natively (should also reduce the base package size) SVG_RESOURCES
  • add support to enable users to disable 3D cockpit rendering for multiplayer/AI aircraft
  • extend nasal interpreter to provide functions for loading and saving XML files directly DONE, preferably also wrapping the functions from props_io.cxx for nasal
  • provide support for optional use of VoIP (voice over IP) clients within FlightGear, so that such clients can be used for ATC-specific purposes (there were various discussions with plenty of good ideas mentioned on the mailing list)
  • merge AI and ATC code so that both work properly with each other
  • add support for a TCAS implementation that honors multiplayer as well as AI traffic
  • add support for flight path visualization within FlightGear, possibly so that it can optionally be enabled for external or replay views ( http://www.flightgear.org/Projects/SynthVision/ http://www.cobbin.com/synthetic-vision.htm )
  • expose the nasal interpreter via network/telnet, so that scripts can be remotely inserted and executed. this can be basically done already by writing new code to properties and executing the code in the property
  • implement a flight director (using the current PID controller code) FDs are meanwhile available in several aircraft
  • provide support for force-feedback input hardware and/or motion platforms
  • for the development of more advanced avionics we will require a terminal procedures database (i.e. SIDs & STARs), this should be added to the base package, so that we can provide the corresponding data within FlightGear, its availability (memory consumption!) could be made optional using a corresponding property or new special instrument type.
  • allow nasal code to be specified in instrument files
  • allow nasal scripts in AI object XM files, so that nasal code can move AI objects along predefined routes
  • allow instrument update interval to be configurable (export to property tree)
  • add additional updates to the splash screen during startup, so that it is more responsive, possibly using some sort of progress bar
  • allow aircraft to be reloadable at runtime (could be a first big step towards making aircraft switchable at runtime!)
  • allow placing of objects/models directly from within FG, saving coordinates
  • add support to metar code, to run update on demand (i.e. when user requests an update)
  • the replay system is very nice, but it is not very convenient to use: improve usability
  • add texture paging support to simgear/flighgear
  • saving/loading flights is not very convenient, currently loading a flight requires the user to remember its path and filename, a better way would be some sort of file picker dialog, so that the user can actually browse his file system and view all files. Also, we will probably want to have some sort of standard location for saved flights, possibly in the ~/.fgfs home directory? Additionally, it may be desirable to save additional meta information with each flight (i.e. a description) so that we could show this information as some sort of preview for all flights that were saved.
  • there is a great number of aircraft in FlightGear that cannot yet be reliably reset due to problems relating to tied properties that cannot properly be untied, obviously there are various parts in FlightGear that still do not make proper use of the property tree, we should get rid of such problems eventually
  • Currently, TerraSync (the automatic scenery tile downloader) is a separate program, that users need to get separately, explicitly install and set up in order to be able to use it. Even more so, due to TerraSync's dependency to rsync, TerraSync users are mostly Unix/Linux users right now. However, FlightGear being a cross platform project should whenever possible try to target a maximally broad audience[11]. That's why it would probably make sense to port the TerraSync functionality over to FG, so that scenery paging can become a native part of FlightGear itself, preferably an SGSubsystem based service that's runtime configurable via property tree variables. At http://www.samba.org/rsync/ there is a small C library available that exposes most of the rsync features, we could make the library either an additional dependency or simply make it a part of FlightGear/SimGear, so that it's automatically available to all FG users.
    • Please note that this (similar to other proposals on this Wiki page) is likely just the opinion of an individual user, not much involved with the actual proceedings on this topic. Depreciated: TerraSync is now based on svn
  • After each FlightGear session there are often many OpenAL related warnings displayed in the console, we should try to get rid of these wherever possible
  • add support for texture based OpenGL cursors, so that we can specify arbitrary textures to be displayed as cursors. Currently, we support both, GLUT as well as SDL, so we should try to maintain compatibility with both libraries.
  • provide a property in order to allow users to enable/disable scenery rendering at runtime, in particular this could also be useful for debugging sessions
  • aircraft (FDM & 3D model) should be re-loadable at runtime
  • provide support for cockpit light sources, so that we can realistically illuminate the cockpit as a whole
  • add an IRS/INS emulation for airliner-type aircraft [12]
  • add a LORAN emulation for long range flight
  • it would be useful if we could add support for transformation to panel actions, so that certain actions could trigger a conditional transformation, affecting the displayed panel textures. This could for example be used in order to simulate "key presses", simply by reducing the texture's dimensions while the key is pressed.
  • the property tree could benefit from some restructuring, particular the properties related to /instrumentation should eventually provide input/output attributes, so that we can easily rewire them dynamically, without hardwiring any code (i.e. in order to drive a VOR/HSI from multiple sources, such as a NavCom or GPS), this is something that David Megginson proposed already 3 years ago.
  • allow to create/modify and save instruments hotspot regions directly from within FG, so that the process of creating 2D panels becomes less complicated
  • add a new instrumentation system to emulate a MLS (microwave landing system)
  • extend multiplayer code to add support for helicopters
  • multiplayer: maintain a serverside list of aircraft that may connect to the server, this could be useful to prevent certain types of aircraft (i.e. UFO, santa, ogel etc) from appearing in more serious settings, likewise we could disallow certain aircraft with unfinished fdm
  • maintain FDM "plausibility" values for all legitimate aircraft, so that the server can determine if a specific aircraft is able to achieve a certain performance (i.e. climb/descent,airspeed). This could be based on 10-20 figures for each aircraft, so that the server can interpolate between different situations and determine if the provided data is still accurate or not. Eventually this would also allow server admins to run certain 3D models only with certain FDMs.
  • it would be nice if we could port the current PID controller code over to Nasal, so that we can automatically equip AI traffic instances with nasal based autopilots
  • add support for pilot-controlled runway lighting
  • allow airports and navaids to be searched for based on country/region (state)-this would probably require some shapefile information to be added to FG, so that we can look up countries/states for lon/lat pairs.
  • add support for particle animations (i.e. smoke, sparks etc)
  • improve visual weather effects (fog, rain, snow etc)
  • currently, the replay system doesn't take animations, sub models and sounds into account
  • add support to allow multiple views to be rendered simulatenously, so that we display arbitrary views within other views
  • extend the multiplayer subsystem to support the DIS protocol
  • consider adding VBO support
  • allow replay flights to be resumed manually (this would be useful for instruction-like scenarios) [13]
  • use imposter objects for sky & distant scenery
  • add support for multitexturing/texture blending
  • allow custom views to be specified based on positions taken from scenery objects or the navaids db, i.e. to create scripted views that are situated at apron/taxiway/runway XX using configurable offset YY, at altitude ZZ
  • given the fact that an increasing number of more complex components in FlightGear is being implemented using the Nasal scripting subsystem (which happens also to be the first choice for non-programmers for obvious reasons), and due to the possible challenges (when implementing low-level systems) resulting from the way the interpreter is currently integrated/run in FlightGear (i.e. sequentially, framerate-limited: difficult to provide reliable low-latency timing/update rates), it might be worth to consider providing an additional, alternative/separate interpreter context for FlightGear-related efforts that do not necessarily have to be run directly within the native interpreter context (because they may not need to access internals beyond what the PropertyTree already provides), that way it should become possible to run more sophisticated "scripts" in a semi-standalone fashion while also providing decent and reliable update intervals. This could for example be achieved, by either running one interpreter in a different thread (that would only communicate with the main thread/FG core using the property tree as IPC mechanism (i.e. deemed to be only a provider/consumer of PropertTree nodes) or possibly even by using a separate process for such a different interpreter instance, where the communications could likewise be handled using the PropertyTree exclusively, in that case however making use of the networking facilities already provided by FlightGear, to enable getting/setting properties across process boundaries. Eventually, such a facility might support additional efforts, where users/non-programmers want to implement time-critical components in FG, using FG means but to whom implementing such projects in C/C++ may not be a viable option, or even a showstopper-because they may lack the required familiarity with the core source code, C/C++ programming experience or both. In such a scenario, even a "stripped down" interpreter, be it run separately as a thread or process, would still be a much more feasible option than going the C/C++ route for most users.

Major Requests

  • Replace current PLIB/PUI based GUI bindings with bindings for a more feature-rich and actively maintained GUI library (possibly SDL based) OpenGL_GUI_RESOURCES - note: there's the OSGWidget project which aims to provide GUI facilities on top of OSG [14] (see the OSG devel list for details)
  • http://chromium.sourceforge.net/
  • texture cropping support for 2D panels (see mailing list archives for discussions)
  • add support for enhanced water modeling, so that we can start implementing water aircraft with floats etc.-in progress as of 11/2007
  • when aircraft are very low, the terrain/scenery looks only rarely convincing due to the fact that flat textures are applied to surfaces in order to illustrate vegetation, however this works only properly for higher altitudes, so it would be desirable if we could add support for dynamic vegetation modeling, so that grass, trees and other plants are dynamically created within a certain proximity. (NOTE: this is currently (01/2008) being tackled)
  • basically all subsystems should be fully "suspend-able" and "reinit-able" at runtime, there are currently various subsystems that will consume CPU cycles even though they are not in fact necessarily required, affecting FlightGear's performance negatively. This is particularly the case for non-SGSubsystem based systems.
  • add support for inter-texture copying to allow users to copy parts of a texture to another texture (see mailing list dicussions for details)
  • The current Property Tree code is not thread safe, sooner or later it may come in handy if this feature was added (FWIW, threaded PropertyTree implementations are provided by these two open source libraries: poco boost)
  • Meanwhile, FlightGear has become a pretty monolothic piece of software, in the long run it would be desirable if the code could become somewhat more modularized and structured, eventually this should also make it easier for new contributors to get started.
  • add support for decoding ESRI shapefiles, so that we can later on render them to a texture to be displayed on certain instruments, Dave Luff recently mentioned that he would need similar functionality for his KLN89, too. This would probably also be useful for scenery creation in general and in order to modify scenery appearance according to region specific information http://freshmeat.net/projects/shapelib/ http://sourceforge.net/projects/shpread/
    • NOTE: The Scenery generation process is already several steps ahead of this proposal and uses a PostgreSQL/PostGIS database which, as an additional feature, offers Shapefiles to be exported on-the-fly. Visit: Landcover-DB Shapefile download
  • Extend VRML/X3D or XGL support, so that proprietary formats such as *.ac can be entirely replaced using open standards http://en.wikipedia.org/wiki/COLLADA https://collada.org/public_forum/welcome.php (search the archives for COLLADA)
  • Helicopter FDM: either extend current FDM engines (i.e. yasim) to provide better support for helicopter flight dynamics, or come up with an entirely new dedicated helicopter FDM engine altogether-Support for helicopter flight simulation has been significantly improved meanwhile, and is still being worked on
  • factor out weather subsystem, so that weather can be set up for specific locations (initially mainly airports and navaids (using radials, distances), later on possibly also landmarks and towns/areas), i.e. to provide weather for departure airport, enroute, destination and alternate. A good approach might be to simply convert the current weather subsystem into a METAR server, that way FlightGear could optionally provide its own local METAR server that can be easily set up using some sort of GUI (or the property tree) and still be easily polled for current weather using the METAR code that is already in place. This approach would also make it very feasible to interoperate with a multiplayer server.
  • add support for integration with TTS (text to speech) engines to FlightGear (i.e. Festival), so that voice ATC becomes possible. There were various discussions about this topic on the mailing list, so you may want to search the archives if you are interested in this feature. (Note - Festival support has already been added) Also, there is a free multi platform TTS engine called sphinx that is siginificantly more lightweight than festival, so that it may be worth considering this to make it an optional dependency for SimGear? Note 2: Sphinx is actually a speech recognizer, not a text-to-speech engine, AFAIK. --Josh 20:06, 9 May 2008 (EDT).
  • add moving map functionality to FlightGear (i.e. integrate atlas natively into FlightGear), so that a basic map can be directly shown within FlightGear
  • add support for adding, placing and modifying scenery objects within the scenery dynamically at runtime-possibly using the property tree to enumerate all active scenery objects, so that attributes can be changed at runtime
  • eventually, it may become desirable to add unit testing support to those FlightGear subsystems/components that can be considered stable and that are thus unlikely to change significantly anytime soon, that way it should become much easier to track development problems early.
  • implement support for dynamic LOD customization for aircraft at runtime, so that the detail level of aircraft models can be dynamically reduced/increases (the poly count, that is) on demand, currently multiplayer aircraft need to have their own separate (reduced) 3D model, so it would probably make sense to think about implementhing some sort of runtime configurable LOD algorithm that can return any 3D model with a customized detail level. This has been discussed various times on the mailing list (and is currently being discussed again).
  • the current (2D/3D) cockpit panel code is not yet particularly efficient, would be good if someone could optimize it some more
  • add support for tutorials/lessons (think, flight school) to FlightGear (see earlier mailing list discussions for details) (Note - tutorials have already been added; check the Help menu in the default C172 or Lightning)
  • More and more often, users of other flight simulators with lacking scenery support (such as Aerowinx Precision Sim) would like to use FlightGear in conjunction with their commercial simulator in order to create a FlightGear-based visual scenery representation. To some extent this works already quite well due to the possibility to provide an external/null FDM. However it is not uncommon to see more or less significant differences in the underlying databases (navaids, terrain, airports/runways),so that for example, navaids in other simulators do not match the positions in FlightGear and vice versa. Likewise, for airports and runways. Currently, the only workaround is to manually hardcode corresponding offsets in order to compensate for this. However, in the long run it would be nice if there was a standardized mechanism in FlightGear to automatically align databases for navaids, airports, runways, terran and possibly also important scenery objects (landmarks). This could probably be based on a mechanism to allow other simulators to request/send positional information for a navaid, airport/runway so that FlightGear could automatically compensate for differences by auto-aligning the corresponding coordinates at runtime. Preferably, something like this would be exposed via a network interface (i.e. telnet) so that it would become very straight forward to interface with FlightGear. In the long run, such a facility would also make it possible to use different sets of underlying data in FlightGear easily. [15]
  • Allow arbitrary custom views to be rendered to a texture, so that the created texture can be used to create instruments that feature some sort of "outside view", i.e. an advanced HUD or the external view of an A340 (camera mounted on the tail), this would enable us to show external views on an instrument in the cockpit panel. We only need something that allows us to define a custom instrument layer type that gets its contents from a specific user defined (or global) view.
  • Currently, roads and rivers do not yet have a realistic curvature when their direction changes, rather there are pretty visible corners, it would be nice if someone could look into this in order to come up with a method to smoothen the directional transistion, so that a realistic curve can be rendered
  • Extend the RenderTexture class to provide support for Frame Buffer Object based rendering to a texture, this is a relatively new way to support rendering to texture for platforms or OpenGL (driver) implementations that do not offer native RTT support, as it is the case for many older Linux cards: http://openvidia.sourceforge.net/fbo.shtml

Huge Requests

  • factor out current plib based scenegraph to allow integration with other scenegraphs, such as OSG (OpenSceneGraph). Adding support for OpenSceneGraph to FlightGear would also add support for mult-head displays, multiple rendering contexts as well as distributed rendering. If you are interested in this idea please make sure to search the mailing list archives at http://www.flightgear.org for "OpenSceneGraph", "OSG", "SSG" to get an impression of previous discussions about this topic. NOTE: FlightGear has been branched and the main branch is based on OSG
  • factor out scenery system to allow integration with other scenery systems (see mailing list discussions) Demeter discussion
  • factor out terrain system to allow integration with alternative terrain engines (see mailing list discussions)
  • revamp scenery/terrain system in order to favor a non-tile based approach (see mailing list discussions concerning the use of quadtrees,octrees,kd-trees: http://www.sdss.jhu.edu/htm/index.html
  • add support to optionally favor dynamic airport/runway creation at runtime over the pre-tesselated approach that is currently used, this would allow users to easily modify airports, possibly even at runtime-without having to re-create the corresponding scenery tile to make the changes take effect
  • implement algorithms to feature dynamically adjustable (C)LOD/resolution for terrain data, as plans are being discussed to increase the resolution depth for upcoming scenery builds (SRTM), this would probably come in handy to allow users to adjust the terrain detail level according to their needs and hardware specs, otherwise we would probably face significant performance hits on lower end hardware, that is why it would make sense to allow users to configure the terrain resolution they'd like to use at runtime (i.e. 70% rather than 100% terrain features)
  • Have FlightGear become its own IDE (integrated development environment) by allowing users to create and modify instruments directly within FlightGear, this would probably require a revamped (or more feature-rich) GUI toolkit than PLIB's PUI. Eventually, it would be desirable to allow users to pick instruments from the base package and place them at runtime on panels. For the majority of users this would be an essential steps towards improved usability.
  • add support for automatically created scenery objects to populate the scenery dynamically at runtime (autogen-like), this could add quite a portion of realism to FlightGear without having to model scenery manually using fgsd, yet one could still use fgsd for areas where people are willing to contribute. All other scenery should by default be populated using autogen buildings and objects (references: http://www.infinitylab.com.au/research/prototypes.htm and http://vterrain.org/Culture/BldCity/procedural.html and http://pcity.sourceforge.net/ )

Related content