Wynntils / Artemis

Artemis is a rewrite of Wynntils in 1.20.2 using Architectury, to support Fabric and Forge.
https://wynntils.com
GNU Lesser General Public License v3.0
154 stars 79 forks source link

Quest, cave, discoveries, and other things in content book take way too long to load #2541

Open Symmettry opened 1 month ago

Symmettry commented 1 month ago

Clicking with left click on content book loads the normal wynncraft one and not wynntils (also a bug) and it loads immediately with all the quests, but wynntils quests take like 30 seconds to load in.

There's no reason it should take this long to load quests when wynncraft does it instantly.

kristofbolyai commented 1 month ago

There's no reason it should take this long to load quests when wynncraft does it instantly.

There is. We load all quests, to be able to filter and sort them.

magicus commented 1 month ago

What if we try to persist the cache, and use it to display the UI immediately, then refresh the UI once we have updated data?

kristofbolyai commented 1 month ago

What if we try to persist the cache, and use it to display the UI immediately, then refresh the UI once we have updated data?

As of recent patches, we do this already.

magicus commented 1 month ago

Even persisting the cache? I thought it was just cached while we were running.

kristofbolyai commented 1 month ago

Oh, yeah, it's runtime cache only. But overall, it needs to load once per class to cache.

magicus commented 1 month ago

That means that the first time it opens the quest book, it will be much slower.

I think we can try to persist the cache of the quest book. (This reminds me that I wanted to introduce functionality in Storage for storing per-class data...) This will work okay, I think, as long as:

1) We initiate a background scan according to the same rules as when we populate the cache today, i.e. if we have not yet done it for this class during the runtime, do it.

2) We refresh the UI once the cache has been updated. (Not sure if we have functionality for that in place)

3) And possibly also indicating in the UI that the data is possibly stale. E.g. making it slightly gray or partially transparent, or put a spinner icon somewhere (in the corner, or a large, semi-transparent spinner on top over everything).

I think that would be a huge benefit for the usability and snappiness of Wynntils.

Essentuan commented 1 month ago

If you're going for snappiness I don't see the problem with refreshing quest entries every time you find one. My largest complaint with the quest book now is that it HAS to load the entire content book before it'll fresh the ui or before you can even click anything which takes way too long to be useful. (I suppose this complaint isn't exclusive to quests)

Symmettry commented 1 month ago

That means that the first time it opens the quest book, it will be much slower.

I think we can try to persist the cache of the quest book. (This reminds me that I wanted to introduce functionality in Storage for storing per-class data...) This will work okay, I think, as long as:

  1. We initiate a background scan according to the same rules as when we populate the cache today, i.e. if we have not yet done it for this class during the runtime, do it.
  2. We refresh the UI once the cache has been updated. (Not sure if we have functionality for that in place)
  3. And possibly also indicating in the UI that the data is possibly stale. E.g. making it slightly gray or partially transparent, or put a spinner icon somewhere (in the corner, or a large, semi-transparent spinner on top over everything).

I think that would be a huge benefit for the usability and snappiness of Wynntils.

That's still a problem. The wynncraft quest book loads immediately, and wynntils does not (on a version where it refreshes every time it opens). This is a wynntils problem i'd say.

kristofbolyai commented 1 month ago

If you think that is a problem, disable the feature. Also, it seems like you don't even use the latest version, at least your comment suggests that.

Things can't be instant, but also filtered, sortable, etc. I agree with magicus and Essentuan here, we have more to offer for the speed.

I am all for improving the speed. Whether issues should be used for complaining about it in an open source project, is to be decided by everyone personally.

Symmettry commented 1 month ago

If you think that is a problem, disable the feature. Also, it seems like you don't even use the latest version, at least your comment suggests that.

Things can't be instant, but also filtered, sortable, etc. I agree with magicus and Essentuan here, we have more to offer for the speed.

I am all for improving the speed. Whether issues should be used for complaining about it in an open source project, is to be decided by everyone personally.

I seem to get the same issue after updating to latest anyway. Opting to disable the feature instead of fixing the lag is.. dumb.