Editor's invalid state. #13418
Replies: 2 comments
-
|
We could certainly improve the categorization of some engine errors, which are probably better suited as warnings, like here: |
Beta Was this translation helpful? Give feedback.
-
|
Let me illustrate with a sample, keep in mind that these are from Xogot based on 4.4 and might have differences: There is a whole load of file-not-found and parse errors that are reported here as well, that probably should never end up here, but instead reported to the user in some fashion: Sample: There are thousands more that could be bucketized, but I think the first step is to have a discussion about what the Godot community feels should be done in the points I brought in the initial post. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Godot uses the
ERR_FAIL_*as a mechanism to make the engine more resilient - to ensure that code only operates on valid data, without crashing. Methods and function ensure that they are working with valid information, and if not, they print a diagnostic message and they return some value to gracefully degrade.While this is commendable and ensures longer running sessions of the editor, I believe that many, if not all of these warnings are indicative that the caller function is already dealing with bad data. The lower layers certainly prevented a problem, but the upper layers are operating with faulty information - and we might only see the incorrect behavior later on.
I believe that that these error messages indicate a bug in the engine that has not been addressed - that the upper layers should have caught this problem and warned the user about it, or taken an action to prevent it. What makes it challenging to fix these problems is that the developers that work on that code probably do not trigger the conditions that users in the wild are triggering - so these bugs remain dormant for a long time.
We have an edition of the Godot editor for iOS that has replaced the UI from the Godot UI with a SwiftUI, and we put this on the AppStore. As part of this effort, we added Google’s Crashlytics to catch errors in the wild, and when we get crashes back, sometimes we can correlate some of these logs to actual crashes, and sometimes we just read through them and try to find the needle in a haystack - but it is clear that Godot in the wild is producing a lot of these error messages (we often search for those errors in Google and we find upstream bug reports, or users complaining about across the internet).
Like every other funnel in life, only a handful of people report the bugs, and they only report them when it is getting in their way of getting the work done - which means that many of these unmet preconditions can go undetected for years.
I think that Godot should add some sort of telemetry to track these errors in the wild, and provide these error to contributors, so that these bugs can be caught proactively, rather than waiting for the frog to be boiled to address the frog’s grievances.
I suspect that like many other open source efforts there might be a pushback towards adding this kind of telemetry, but I want to make the case that users could opt into contributing this information to the project, so the project could be aware of those issues and proactively address those problems, before it affects more users.
Like I mentioned, we have access to some of this data via Crashlytics (the data does not live for long), and would be happy to share some of the findings - the only downside is that our data is both tied to the version of Godot we are currently shipping (4.4) and to our own modifications - so I understand that this might not be immediately useful to people.
Beta Was this translation helpful? Give feedback.
All reactions