I want to see a debug screenshot function so that MSFS can identify problems more easily. (Posted this in feedback but realised this should be in wishlist but couldn’t find a way to move the topic across).
Stage 1 - Debug screenshot
Display on the screen the various parameters of what is going on. Activated in Dev Mode - Define a Hotkey/control to take a screenshot to a debug location.
Time of day
Graphics card - driver details, card setting details
So when a user comes across a condition that needs fixing - scenery, plane, lighting, weather, etc. They can take a screenshot super easily and there in the screenshot is the information that you can send to msfsim so they can have a look at and try to duplicate the bug. In theory, anyone else can type in the location and set up a plane/location/time/weather to see the same thing.
Stage 2 - Debug package
Once you start adding graphics settings, autopilot settings, plane routing, plane control settings (yoke, rudder, throttle, mixture etc), detailed weather conditions, add-ons used, it becomes too much to display on the screen and to easily type in. So now when you hit the hotkey, the program will save a file (debug package) of all the relevant details that you can (under developer mode) ‘load’ into MSFS 2020 to duplicate the conditions (provided the debugging pc has the same addons available. etc.).
That can be sent as a debugging package to msfsim for them to track down items that version 1 cannot solve.
Stage 3 - Debug flight
At the end of the day you want to duplicate the flight … Asobo are working on a replay function … perfect for testing this. It only works with a second PC/laptop but that is fine. We are not asking for a polished final product, just something that works for the community who have a second computer/laptop for debugging purposes.
We just need start/stop record with 10 second/30 second replay buffer and store the flight in a debug location. The buffer will continuously overwrite itself so the user can just set it and fly. If a bug happens then they just press stop record to capture the last 10-30 seconds of flight. This will record all the flight information (all the above settings and more) for msfsim. A CTD will give information as to what was going on between the values of the input controls and the resulting output on the screen/flight path. The debug flight in the first iteration can record the flight as values which msfsim can ‘replay’ in-house to duplicate the same conditions. Later iterations of the debug flight can expand to include a video of the flight, just thinking about the size of 4k clips :-D.
Taking inspiration from https://www.msfsaddons.org/freeware/pilot-path-recorder , msfsim could develop a ‘black box’ function that doesn’t need a second computer but would provide useful information for debugging.
Stage 4 - Allow different versions of MSFS2020
Msfsim has to allow different versions of MSFS 2020 to exist on the same machine to help with debugging. With such a complex piece of software, even when you think you haven’t changed something, it might have been changed by something elsewhere. Once you have the Debug flight function, you have to allow people to submit flights from different versions of MSFS 2020 to enable bug tracking. The LOD issues from different versions of MSFS 2020 would easily be tracked down by this.
Stage 5 - Debug tracking
Have an easy system for users to submit the debug flights into a database where msfsim can identify trending issues, so developers can prioritise work on issues affecting the most people. But also to eventually have a tester/user replay through every single debug flight on an updated MSFS 2020 to make sure the issue is resolved/signed off by the tester/submitter e.g. the same inputs (that produced a bug before) now give a different result on the screen. This assumes that the replay function is available! This debug tracking can be turned into a crude metric - debug flights submitted, looked at, decided, worked on, resolved, outstanding, duplicate, etc.
But seriously, stage 1 Debug screenshot would give maximum reward for minimum effort.