Yellow-Dog-Man / Resonite-Issues

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

Setting To Not Be Forced Into Worlds Unwillingly #2808

Open AmasterAmaster opened 3 weeks ago

AmasterAmaster commented 3 weeks ago

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

Currently, it is far too easy to accidentally enter a world/session orb without the consent of the user or without knowing that you touched the orb. Prime example of this is when a world/session orb is moving (usually very fast) and any unsuspecting user comes into contact of that orb will begin to initiate a world join from that world/session orb.

This can be seen here: Someone About to Touch the Many World Orbs

Not to mention that also the above image can make it WAY WORSE because it can open 10+ worlds that you did not want open... Which then can exacerbate the problem of not wanting to join each one.

Describe the solution you'd like

A simple setting that allows the user to be prompted before actually joining a world. The current context menu does this, but only for clicking on the world/session orb.

Taking inspiration from VRChat's way of handling it (as well as allowing the familiarity for users coming from that platform to Resonite). Here is the setting they use (highlighted in a red box for your convenience): Portal Prompt Settings 01_Highlighted

And here is what they do to let you know that you are near a portal (or entryway to another world) on desktop: Press left mouse button to enter portal

(Apologies as the images I took are not the best, but I hope it gets the idea across of what I am trying to explain).

Describe alternatives you've considered

Making a system manually to detect if you are close to a world/session orb or about to join a world, but that may require a bit of ref hacking, and even then, once the join has started, there is no way to cancel the joining of that world.

Additional Context

This is mostly a quality of life feature, but something that would be welcome for new users coming from VRChat.

Requesters

AmasterAmaster

shiftyscales commented 3 weeks ago

There are usecases and examples already in Resonite of worlds which will purposefully load and focus a world without direct user input- a good example of this being the tutorial world for Resonite, and the MetaMovie Project.

How other platforms like VRChat operate is inconsequential to what we do here as we have differing needs and capabilities- so a solution to an issue on other platforms might not always be a good fit for Resonite's design.

This issue would be better resolved by the hard permission system #1103. In specific, type filtering.

Type filtering - will limit which datatypes can be introduced into the model for loaded/spawned objects. This will allow filtering out certain components/nodes from avatars, objects, so they can still be brought in, but with restricted functionality. It'll also allow users to spawn certain items, but not others.

Frooxius commented 3 weeks ago

I don't know if solving this by setting would necessarily be best, at least not to start with. There are cases where you'd need this to work without being prompted, because it's part of the experience - e.g. experience transitioning you to a new level.

The best way to approach that is have a mechanism which specifies which world links are part of the world and which ones are not. The ones that are part of the world will be just allowed to change you, anything spawned afterwards won't be able to do it without a prompt.

The hard permission system isn't really a solution for this kind of problem - it deals more with changes to the data model. Though there's some related concepts, but type filtering won't really help with this, because that will only let you block users connecting to other worlds completely.

AmasterAmaster commented 2 weeks ago

I can see that, like different levels of what you want to experience, almost like allow any World Orbs, Allow only world orbs already in the world, prompt otherwise, Always prompt first, and deny all World Orbs. That makes sense.