-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve visibility of missing resource / asset scenarios #1402
Comments
Slight addendum / clarification: this is meant to be a sort of code analytic like style checking or even unit testing. At build time we'd want to run a validation that all JSON is cleanly formatted, for instance, and if possible scan the config and actually confirm that assets exist. I'm not sure if that's always possible but it would probably require the same kind of minimal environment established as unit testing does, quite possibly even reported as one or more unit tests (so it'll set builds unstable in Jenkins) During runtime maybe when a critical missing asset like this is encountered it should be logged better and any crash from badly formatted JSON probably could be caught. If you try to create a new world and it crashes during initial loading the player could be dumped back at the "Create World" menu with an error about poorly configured assets in the chosen module set. Possibly a similar process could later help handle conflicts between modules. With the added emphasis of unit testing and other analytics (see for instance the TWOVANA thread in the forum) I'm also linking this to #135 (ancient request for better doc / tutorial to prepare unit tests and such) This topic is pretty wide open for interpretation of how a proposal to address it for GSOC could be written, but also possibly a bit difficult to nail down unless you're already well-versed in unit testing, code analytics, JSON validation, and error handling. |
Another big possibility: Checking for UI fields and translation strings. For instance see #2207 for a recent issue where at some point the translation strings and fields being used in the UI diverged somehow. It should be possible to automatically detect that somehow. Over time our translation files also tend to get messy where new keys are added in new language files but not always or inconsistently in existing language files. |
Update for GSOC 2017 idea entry: Goal here vs #2765 is improving the quality/detail of issues encountered, proactively if possible (better scanning of misconfigured stuff before actually encountering it) The change to the launcher in MovingBlocks/TerasologyLauncher#392 to also apply in the engine as an improvement would be done via #2765 but be hugely helpful for this issue (better visibility at runtime) |
When the game launches it may be missing some references, like misconfigured icons . Usually this gets logged, but that's easy to miss. In-game missing icons in inventories get rendered with a ? so you know something's wrong. With #1400 we no longer crash on rendering a held object with a missing icon, but it is less visible.
I wonder what we can do to highlight both that situation (render an actual held
?
just like in the inventory?) and missing resources in general. Over time we've often had startup log entries reporting issues for weeks or months at a time, but they're so easy to ignore.Maybe we can gather up such reports during runtime and offer the user a clear indication something isn't perfect. How about keeping a registry of unique errors and show a little red
!
somewhere in the main menu that the user can click to review and either report or dismiss the errors? IntelliJ does something similar itself (little event log button in the lower right corner).This sounds like it could be a perfect new feature for the CrashReporter. Could even hold some GSOC potential - getting close to that time of the year again :-)
Related: #2577
Edit: This could perhaps also relate to the general concept of receiving automated or semi-automated reports and metrics from clients (opt-in to send specs etc to help the project)
The text was updated successfully, but these errors were encountered: