Post FlightGear 2020.2 LTS changes

From FlightGear wiki
Jump to navigation Jump to search

Changes that are already on next

Merge-arrow.gif
It has been suggested that this article or section be merged into Changelog 2020.1#Replay_.2F_Flight_Recorder.

Record/replay

  • Include multiplayer aircraft in recordings.
  • Continuous recording to file without any loss of detail.
  • Periodic generation of a recovery snapshot, allowing resumption after a flightgear crash.
  • Record/replay extra information in Continuous recordings (pushed to next on 2021-2-13):
    • Main window size
    • Main window position
    • Main window view
  • Continuous replay aircraft override:
    • When loading a Continuous recording at startup, we now override the aircraft and starting airport to match what is in the recording.
  • Replay of Continuous recordings from URL:
    • Extends the --load-tape command-line option, for example: --load-tape=http://foo.com/bar.fgtape


See new File - Flight Recorder Control dialogue.

Details

  • Continuous recording to file is uncompressed to simplify replay; e.g. 100MB for an hour's recording near EDDF.
  • A recovery snapshot is actually a single-frame continuous recording, and will be called <aircraft-type>-recovery.fgtape. Load in the usual way using the Flight Recorder Control dialogue or on the command line with --load-tape=<aircraft-type>-recovery. Then do Ctrl-R to see replay dialogue and click on My Controls. Some aircraft may have no or limited support for My Controls though.
  • "Continuous replay aircraft override" and "Replay from URL" were pushed to next on 2021-2-19.
  • Replay of Continuous recordings from URL:
    • Downloads to local file in the background while replaying.
    • Reuses local file if present, appending to it in the background if it was a partial download.

Code clean-ups and changes

Merge-arrow.gif
It has been suggested that this article or section be merged into 2022.X Release Plan.

Collecting what's going to change : this will also be used to work out what manual or automatic migrations are required to keep aircraft working. It's expected that for the first few months of 'next', there will be higher than usual breakage, i.e regular might not be possible.

As a general guideline, the minimum system to develop / build the code on will be Ubuntu 18.04 LTS (Bionic) : the versions below correspond to what is available in a stock Bionic install.

  1. Make C++14 (possibly C++17 to facilitate VSG migration? [1] [2]) the minimum required version (will make it easier to continue replacing Boost items with std:: ones) [3] [4]
  2. Make CMake 3.6 the minimum required version: this will allow simplifying a bunch of compatibility logic in the build files [5] 70}% completed [6]
    1. Blocked by: OSGText Issues [7]
  3.  Use CMake OBJECT_LIBRARY to improve how we collect sources together when building each sub-dir 10}% completed [8]
  4. Make Qt 5.9 the minimum for the launcher Done Done [9]
  5. Drop 32-bit windows support [10]
  6. Drop the pre-2017.x MultiPlayer message format - this will fix warnings from some aircraft about MP packet overflows [11]
  7. Drop the KLN-89 code, since it's unused and not maintained for a long time: Canvas and the regular GPS code can easily implement a working KLN-89 or similar equipment now [12]
  8. Switch to Compositor mode as the only rendering option 90}% completed [13][14][15][16]
  9. Drop Rembrandt support from C++ (really part of the above) [17]
  10. Drop the C++ NavDisplay: the Canvas version replaces it [18]

Carriers and AI

Ricbhard has been working on carriers since April 2020; originally the intention was to release as part of the 2020.2 LTS however the changes have grown into a set of new features rather than bugfixes and are therefore more suited to a longer development and review process.[19]

  • Done Done Improved view support - so that the nearest tower will include carriers
  • Done Done Changes to core code to support moving towers.
  • 80}% completed Multiple (tower) views - permit selection of LSO, PLAT and Tower as part of the "Tower view"; selection mechanism TDB. Consider revisions to the existing view system to better support this.
  • Done Done Extend XML to include definitions for FLOLS touchdown position, LSO view position, Tower View position, deck angle.
  • 80}% completed Improve 3d models for IFLOLS to ensure that a ball call can be made.
  • 80}% completed Improve logic for IFLOLS lights; not quite an LSO simulation more of an approximation of the definitive cases (e.g. waveoff)
  • Pending Pending Animate the lineup lights on the stern (of Nimitz class).
  • 100}% completed Improved support for Precision Approach Landing System (PALS) (AN/SPN-46); to support lineup deviation as well as glideslope (ball) deviation.
  • 70}% completed Change approach deviations to use new aircraft reference point rather than eyepoint; it is probably more correct to use the eyepoint when in the cockpit view - but for external views this can be slightly inaccurate when outside the aircraft to completely wrong when in tower/LSO view. The reference point is taken as the aircraft position with an optional model defined x,y,z offset. This allows ball tuning on a per aircraft basis.
  • Pending Pending Improved support for AI logic to permit XML definition of e.g. LSO logic. Possibly a version of the autopilot / state machine that can be included as "logic blocks"
  • Pending Pending Review 3d model usage for all Nimitz class and either add LOD selection (low, medium, high)
  • Pending Pending Review and include Marsdolphin contributions for MP Carrier (i.e. MP trumman)
  • 20}% completed Possible extra visual aids for Case 1 and Case 2 recovery training (e.g. a set of markers to fly through)
  • Pending Pending Better integration of carriers with JSBSim to permit catapult hookup
  • Pending Pending Simulate carrier operations Flight Deck Personnel, e.g. yellow shirts.
  • Pending Pending Animation of arrestor wires
  • Pending Pending Add some sort of trap grading (approach/touchdown plot)

see https://www.cnatra.navy.mil/local/docs/pat-pubs/P-816.pdf for T-45 carrier operations

Possible additional items

1rightarrow.png See 2022.X Release Plan for the main article about this subject.

2D Panels

The idea is to remove all 'raw' OpenGL or OpenSceneGraph code from the panel code, it should be 100% done with Canvas elements. Eg use the Canvas Transform to compute the matrices[20]

Canvas

Caution  we are indeed still adding Canvas cameras to the scene graph, but we should be adding them as slaves to the viewer. We might be using as much as 5 times the amount of VRAM that Canvas actually needs.[24]

fgdata clean-ups

/Nasal

2do: list outdated / deprecated functions for removal (I remember one comment saying: remove after FG 3.0 or something)

  • Clean up the GPS code with respect to FG_210_COMPAT :

Property tree clean-up

remove /yasim/* "new" path is /fdm/yasim (since version 201x.?)

References

References
  1. https://sourceforge.net/p/flightgear/mailman/message/37041706/
  2. https://sourceforge.net/p/flightgear/mailman/message/37042499/
  3. https://sourceforge.net/p/flightgear/mailman/message/36988831/
  4. https://sourceforge.net/p/flightgear/mailman/message/36984349/
  5. https://sourceforge.net/p/flightgear/mailman/message/37020794/
  6. https://sourceforge.net/p/flightgear/mailman/message/37091728/
  7. https://sourceforge.net/p/flightgear/mailman/message/37284981/
  8. https://sourceforge.net/p/flightgear/mailman/message/37042800/
  9. https://sourceforge.net/p/flightgear/mailman/message/37041064/
  10. https://sourceforge.net/p/flightgear/mailman/message/34899704/
  11. https://sourceforge.net/p/flightgear/mailman/message/36300829/
  12. https://sourceforge.net/p/flightgear/mailman/message/36327950/
  13. https://sourceforge.net/p/flightgear/mailman/message/36606242/
  14. https://sourceforge.net/p/flightgear/mailman/message/37039397/
  15. https://sourceforge.net/p/flightgear/mailman/message/37040359/
  16. https://sourceforge.net/p/flightgear/mailman/message/37148477/
  17. https://sourceforge.net/p/flightgear/mailman/message/36340736/
  18. https://sourceforge.net/p/flightgear/mailman/message/36975265/
  19. https://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/aaa9a3ee-ca18-e3af-1538-0cd59ae7a752%40zaretto.com/#msg37038519
  20. https://sourceforge.net/p/flightgear/flightgear/merge-requests/217/#a8d5
  21. https://sourceforge.net/p/flightgear/mailman/message/36973988/
  22. https://sourceforge.net/p/flightgear/mailman/message/37042351/
  23. https://sourceforge.net/u/gallaert/flightgear/ci/789f5bdbce10637222ffa25206938947fec4bc64/
  24. https://sourceforge.net/p/flightgear/mailman/message/37289641/
  25. https://sourceforge.net/p/flightgear/mailman/message/29608899/
  26. https://sourceforge.net/p/flightgear/mailman/message/36973988/
  27. https://sourceforge.net/p/flightgear/mailman/message/36659646/
  28. https://sourceforge.net/p/flightgear/mailman/message/36352621/
  29. https://sourceforge.net/p/flightgear/mailman/message/37042457/
  30. https://sourceforge.net/p/flightgear/mailman/message/36355833/
  31. https://sourceforge.net/p/flightgear/mailman/message/29563353/
  32. https://sourceforge.net/p/flightgear/mailman/message/19718354/
  33. https://sourceforge.net/p/flightgear/mailman/message/37058207/