Skip to content
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

Open
Cervator opened this issue Nov 27, 2014 · 3 comments
Open

Improve visibility of missing resource / asset scenarios #1402

Cervator opened this issue Nov 27, 2014 · 3 comments
Labels
Category: Build/CI Requests, Issues and Changes targeting gradle, groovy, Jenkins, etc. Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc.

Comments

@Cervator
Copy link
Member

Cervator commented Nov 27, 2014

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)

@Cervator Cervator added Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. Category: Build/CI Requests, Issues and Changes targeting gradle, groovy, Jenkins, etc. GSOC labels Nov 27, 2014
@GooeyHub GooeyHub added the ready label Nov 29, 2014
@Cervator Cervator changed the title Improve visibility of missing resource scenarios Improve visibility of missing resource / asset scenarios Mar 2, 2016
@Cervator
Copy link
Member Author

Cervator commented Mar 3, 2016

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.

@Cervator
Copy link
Member Author

Cervator commented Mar 6, 2016

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.

@Cervator
Copy link
Member Author

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Build/CI Requests, Issues and Changes targeting gradle, groovy, Jenkins, etc. Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc.
Projects
None yet
Development

No branches or pull requests

4 participants