Hubs-Foundation / hubs

Duck-themed multi-user virtual spaces in WebVR. Built with A-Frame.
https://hubsfoundation.org
Mozilla Public License 2.0
2.13k stars 1.41k forks source link

Allow links to be represented as custom in-room objects [E.g. Doors, portals, 3D objects, images] #2358

Open V0L4T1LE opened 4 years ago

V0L4T1LE commented 4 years ago

Problem: Having to "leave" the immersive environment in order to change the room.

Solution: I would like for a Portal or Doorway that can be placed when designing a room in spoke that automatically loads you into a room with the same avatar settings (added by room owner via URL) when walking through it.

Alternatives considered: Interactive links or compartmentalised rooms

image_28971

┆Issue is synchronized with this Jira Task

misslivirose commented 4 years ago

Thanks for this feedback @V0L4T1LE - we'll keep it in mind as we consider improvements that we want to make for room flows. There are a few challenges that we would need to address before implementing this, but we recognize this as a desired flow to support and will be thinking about it as we plan future work!

Automatically navigating someone away from the URL that they are currently on without their explicit consent is a design pattern that we probably would probably not do, so we'd have to find a design that signals to them they are being redirected. In VR specifically, we're also limited in moving people from one 3D space to another - we'd have to pop them out into 2D mode to display the new page they were navigating to for security purposes. At some point during this flow, we would need to indicate that they had left the original room they were in.

We've so far chosen to wait to implement something like this until browsers have a standard way of navigating between immersive sites in VR. That said, there are probably intermediate steps we could consider to make room links more aligned to the context of the room they're in.

Charlesc22 commented 4 years ago

I would also like to see this feature to seamlessly move from one room to another within the same domain.

Regarding the permissions, could you add a setting or cookie, that for any room within the same domain, you ask them ounce for permission on all rooms for this domain and remember the setting? Thanks

catherineomega commented 4 years ago

Could this be handled with a permission checkbox upon entering the initial room? This seems like a really practical feature for events like conferences.

gfodor commented 4 years ago

In addition to the points @misslivirose made above, another design consideration we feel strongly about is that users should never be thrust into a room with other people without having some ability to gauge the room/content/discussion and decide to opt-out of joining. It's super common in Social VR apps to do the opposite, where you click a button and then suddenly, with no obvious warning, you are "live" in the room and other people are around you talking to you.

So basically, if I had to guess, the end state for hubs with regards to room transitions will probably be something like:

The mental model people have where you'll seamlessly walk from one room to the next through portals will always be off the table, due to both security and privacy constraints and things we feel strongly about in good social VR social system design. The end state is much better than what we have now though!

Charlesc22 commented 4 years ago

gfodor, I understand all the points you make here. I would just add this: For Public VR and even semi-Private VR, I think the rules you stare are accurate. But for Private VR, where you are being invited into a group of rooms owned by the same person that invited you, maybe there is more flexibility in that situation?

Charlesc22 commented 4 years ago

Just a thought. If there was a way to tag a group of rooms that are all owned by the same user, on the same hub, and linked together, maybe that would be a way to get permissions when you enter one of the rooms in the grouping and they are remembered as long as you navigate within that group. When you leave to a room that is not part of the group, or owned by someone else or on another hub, then you are asked the regular permissions again. Maybe a simple example of why this would be interesting is let's say someone built a virtual house with multiple rooms that each had lots of elements in them, so would not be able to put the entire house as one "Hub Room". So they break it up into multiple Hub rooms and link them together.

gfodor commented 4 years ago

Yep, having the rooms on the same server may be a useful thing to lean on. However, the social system question I mentioned wrt not dropping people into a group of others seems agnostic to that.

In general, one can look at any of the Social VR apps that have public rooms, which in this case would also be analogous to rooms on the same server. In general, we consider it completely toxic to have users be spawned into a Social VR environment in any context without an opportunity to review who is in that room, what they are discussing, and what content is going to be around them.

gfodor commented 4 years ago

Also, this surfaces one thing that we're still trying to navigate: what social system elements like this are ones that we will defer to let server operators control, and which ones do we feel ethically bound to 'enforce' through fixed social systems. For this one, we're definitely leaning it to one of the more extreme "you have to completely fork the code to do this" - it runs up deeply against our values of what Social VR needs to do for people, and having experienced a wide variety of negative outcomes that stem from this affordance such as harassment, verbal assault, and physical assault using an avatar embodiment we're very unlikely to even provide the knob. Fortunately the code is all open source, so if someone wants to do it, they're free to go off the main happy path to do so.

HeadClot commented 4 years ago

I know that JanusXR has this working right now with portals and Immersiveweb/navigation is looking at making it a standard for webxr.

Charlesc22 commented 4 years ago

Thanks for that link HeadClot. c

Voiceweaver commented 4 years ago

I would also enjoy having this feature implemented. I am looking at creating full conference replacement using hubs with a number of participants greater than any single room could handle.

To recapture the real-life conference exploration feel, being able to link rooms inside the environment would be key.

A temporary solution is a site map on an event landing page that has URL to new rooms would do but an in environment solution would keep the experience immersive.

It was suggested I comment on the tread to show that interest in this function is still present.

Edit - Our event will be using primarily the on-screen hub interaction rather than headset based immersion to allow a wider audience to explore the event. The majority of participants will be developers.

MarcusMorba commented 3 years ago

@misslivirose - any updates for this feature? The need to handle a re-enter screen for conferences with several rooms where the visitors want to change rooms quickly is really a experience blocker.