User:Hooray
Jump to navigation
Jump to search
Note If you are also interested in any of these, please get in touch via the forum - even if I am not around, you'll typically find many pointers here (or on the forum). See also User:Hooray/Useful Patches |
Primarily interested in helping/working towards these things in the long-term:
- Towards better troubleshooting
- better support for run-time re-initialization, as per Reset & re-init and FlightGear Headless, but ideally also including:
- Howto:Disable Nasal entirely - for troubleshooting purposes, so that we can exclude Nasal (its GC) as the culprit, but also to facilitate related developments like FGPythonSys
- Initializing Nasal early, to help re-implement certain fg_init/options.cxx stuff in scripting space (all the procedural legacy code there which isn't performance critical and which hasn't been touched in a decade)
- introducing "run-levels" for booting FlightGear, i.e. for better troubleshooting
- but also benchmarking, and scripted regression tests / test flights
- and to get rid of the plethora of unmaintained external GUI launchers, and instead provide a native/integrated Canvas-based launcher, which may include adding a few custom Canvas Elements, especially a camera mode to render 3D models/views to a canvas texture (based on Zan's work)
- Adding run-time diagnostics to better understand why FG in general, and certain features in particular, are such resource hogs, as per Subsystem-level Memory Tracking for FlightGear
- exposing more Nasal internals for better debugging/instrumenting
- Getting rid of legacy 2D rendering code (GUI, 2D panels, HUD) as per Unifying the 2D rendering backend via canvas
- splitting up the FlightGear boot process such that certain subsystems/features (e.g. canvas, scripting, AI) may become available in a lightweight/standalone mode FGCanvas, i.e. having Nasal/Canvas based "FlightGear Applications" (think Instructor Station) that can directly access all important subsystems (terrain, scenery, FDM, AP, GUI, scripting etc) because, after all, it's just FlightGear minus a few optional features.
- supporting distributed multi-instance setups that properly synchronize state (including glass cockpit and GUI stuff), not just across MP, but also in master/slave setups, quite certainly using High-Level Architecture and Developing with HLA
- time being our most precious resource to contribute, I am constantly trying to identify "time eaters", as in common debates/discussions or features requests and flame wars, and summarize things using the wiki, to hopefully waste a little less time when dealing with them in the future, just posting a link instead.
- consistency not exactly being our greatest forte, trying to structure and streamline things, also using primarily the wiki
Realistically, none of these will be finished anytime soon - but we can certainly pave the way, i.e. by writing tutorials and documenting issues.
Overall, this includes coming up with various Canvas/Nasal based frameworks that actually support these use-cases right from the beginning, in particular:
- Canvas EFIS Framework (2020/02): jsb
- Canvas MapStructure (2013/2014: Philosopher & Hooray)
- NavDisplay (2013/2014: Gijs, Hyde)
- Canvas GUI (2013-2015: TheTom)
- Canvas MCDU Framework (2012: TheTom)
Wiki Stuff
Note These are articles I am hoping to revisit sooner or later |
- Encapsulating rendering code using Canvas (RFC)
- Introducing a dedicated CanvasNasalElement base class which can be sub-classed in Nasal space to address Canvas_Development#Lessons_learnt and allow content to developers to create easily reusable elements regardless of the aircraft/instrument they are developing
- Canvas, Effects & Shaders
- Canvas Core Snippets
- OSG Snippets
- Canvas Sandbox
- Canvas Snippets
- Howto:Creating a Canvas GUI dialog file
- Aircraft Center
- Subsystem-level Memory Tracking for FlightGear
- Canvas Development
- Unifying the 2D rendering backend via canvas
- CompositeViewer Support
- Canvas Troubleshooting
- Howto:Extending Canvas to support rendering 3D models
- Howto:Getting started with Glass Cockpit Avionics Development
- Instructor Station
- Howto:Using Ada in FlightGear
- Feature Scaling
- The FlightGear Rendering Pipeline
- Understanding Rembrandt
- Using OSM Vector Data in FlightGear
- TerraGear scenery build server