Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
138 stars 2 forks source link

Add option for preloading world without joining #97

Open gentlecolts opened 1 year ago

gentlecolts commented 1 year ago

Is your feature request related to a problem? Please describe.

Joining a world is a somewhat heavy operation, and currently incurs large periods of time where one is simply waiting for loading, not yet able to interact the world they've joined into

Describe the solution you'd like

Mods already address this, however it would make for a good first-party feature. In the contacts and worlds tab, add an option to "preload", where assets will begin loading without the user focusing the session. Whether the user is "joined" but not focused, or simply loading the assets without even joining, should be decided, I do not prescribe a preference here, the main focus is not disrupting one's interaction with their current session until the user has fully ready to interact with the newly loaded one.

Describe alternatives you've considered

mods make this available, i love this feature in mods, it should be first-party

Additional Context

zangooseoo

FlameSoulis commented 1 year ago

Such an option may require an alternative thread priority setting.

Example: 4 Downloading Threads + 2 Pre-Loading Threads.

troyBORG commented 1 year ago

I think there was a mod that did this previously. It's kinda like joining the world then immediately unfocused it so people would see you join but would just see you as a headset like your loading, but you also afk in the world. So if you forget it can kick you.

gentlecolts commented 1 year ago

There is a mod that does (did?) this, I mentioned it in the original post, but the mod I was referring to is https://github.com/kazu0617/SessionTweaks

The-furf-of-July commented 1 year ago

Agreed, this mod was great. Getting the lag spikes in the safety of your homeworld rather than needing to tell everyone to wait to interact with you because you haven't loaded yet felt amazing.

JackTheFoxOtter commented 11 months ago

It's already possible when using ProtoFlux to load the session IIRC, and I know this also happens to me randomly when manually joining a session as well. So opening the session in the background without focussing is already implemented, there is just no user-facing UI for it I think. Such UI should probably include a proper loading indicator.

Frooxius commented 11 months ago

From what I understand, do you just want the system to wait switching over to the new world until it's sufficiently loaded?

It sounds a bit like you expect this to remove the hitches from loading, but this would not help with that in particular, you'd still hitch in the existing world as the assets load. But if you're fine with that, then it's relatively simple change/setting.

If we make this a setting, we'll have to do it after Settings UI rework to avoid more technical debt.

gentlecolts commented 11 months ago

The mod I based this request on, linked above, adds two extra buttons next to the "join" button in the contacts list: One named "open" which, as far as I can tell, behaves identically to join except for not automatically focusing the joined world, and another for getting the session orb (not part of this request but wouldn't be a bad request either). The point isn't necessarily removing hitches (although this would be nice) as much as it's "get the world I want to join ready without interrupting what I'm doing in the current world", so that when I've wrapped up what I'm doing in the current session (finishing conversation, cleaning up, saving work, etc) I can then simply hit join and it'll just instantly pop me over. From a technical perspective, this request doesn't necessarily require a reduction in lag, as much as it improves user experience by allowing them to experience that lag in a space that's already active, rather than in a barely-loaded void.

shiftyscales commented 9 months ago

Having this as a setting would be blocked until #584 is done.

JackTheFoxOtter commented 2 months ago

There is more than just performance implications here, some users explicitly don't want to join a world until the world is fully loaded, since the "checkerboard" phase throws them off - they don't like seeing half-loaded / "broken" looking worlds that slowly fill in.

Also since the new settings UI is done now this is probably not too difficult to implement, I'm just not sure what settings category this would fall under.

Frooxius commented 2 months ago

That one's fair, we could add a setting for that.

I'd like to stress though that this will not help performance. You will be jittering just the same in the world you're currently in.

The-furf-of-July commented 2 months ago

Lagging in a fully loaded world is often preferable to lagging in an unloaded world with people noticing your presence and trying to communicate with you while your senses are malfunctioning.

Perfomance increase or not, it'd be much more tolerable this way for people who have issues with this.

towneh commented 1 month ago

It'll be an easier pill to swallow when you lag in an empty home world than it is waiting for assets to finish downloading in a world with people attempting to engage with you for sure.