by Hooray » Sun Feb 14, 2021 8:22 pm
saving/loading and resuming flights used to be supported back in the early 2000s - but it got hugely crippled by the presets work at the time, which triggered quite a heated discussion on the devel list. Basically, David Megginson designed the SGSubsystem* interface so that loading/saving and resuming flights was to be supported - however, the interface was never fully adopted/implemented by most other core devs - and some major additions complicated supporting this even more, in particular the addition of Nasal was hugely problematic - because once you have Nasal you can do all sorts of things without the core being away of it (which is a problem once you think about a use-case like this one).
On the other hand, this is a common feature not just in flight simulators in general, but especially in professional setups, i.e. professional settings where you simply need this kind of feature. It's a long standing architectural restriction in FlightGear and over the years many core devs have repeatedly pointed out that this should be considered a priority (especially contributors with a corresponding professional background in aviation/software development)
Then again, features like Nasal don't just complicate matters enormously, they also make it possible to work around such restrictions, especially if the corresponding coders are also intimately familiar with the FDM side of things. And as a matter of fact, Jon S. Berndt (JSBSim) has also been raising this issue over and over again over the last two decades, without getting any concrete responses (certainly not in public) from fellow FG devs.
All of which is to say, you're right - but this project is mainly a hobbyist project, and while professional contributors tend to agree with such requirements, there really is no core developer consensus to orchestrate working on this - instead, it's rather that dedicated aircraft developers tend to work around these limitations by using the exact tools that complicate the development of a generic reset/re-init interface.
If in doubt, look up the original comments between David Megginson and Curtis Olson from around the early ~2000s.
But like I said already, it isn't just the presets work - for stuff like reset/re-init (and saving/loading/resuming flights), Nasal should have never adopted the notion of timers and listeners to implement full featured subsystems inside the main loop, without that being aware of what's going on - instead, it would have been appropriate to expose the SGSubsystem interfaces to Nasal space so that fgdata/aircraft developers can continue to use the common init/bind/unbind and pause/resume interface that David coded up 20+ years ago (which even today still is mostly empty boilerplate ...)
At some point (after returning from FSWeekend), James Turner and Thorsten Brehm used to work on fixing reset/re-init (but that also got stalled), however that could be considered the absolute baseline to start working on serialization support (saving/loading flights).
Also, there's ThorstenB's flight recorder subsystem (originally Curt's instant replay, recently revamped by Jules) which is much more up to speed than the reset of FlightGear when it comes to replaying/resuming flights.