Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
197 stars 9 forks source link

Global Visibility Override for Nametags/Badges #1396

Open TehTurk opened 3 years ago

TehTurk commented 3 years ago

Discord_7gcIUIta8S From the discord, this would be actually really handy as some worlds require this for immersion, and it replaces the buttons that do this currently in a more streamlined way. Take your time with this, no need to do it right away :P

ProbablePrime commented 3 years ago

What are you asking for?

Are you asking for a world level global override for nametags?

TehTurk commented 3 years ago

Ideally yes, sorry if it wasn't spelt out to the T. Figured the screenshot of the discord was enough as Froox himself put the question out there.

shiftyscales commented 3 years ago

After the driver was updated, I've been trying to figure out a use-case for it being global. Previously, it was either used for those seeking immersion, or for other cases like the host/photo taker hiding namebadges for a photo.

With it being local though, anyone that already wants it off can have it off, and if you want to have nameplates off globally for an entire world, that can also already be accomplished on a per-world basis by unchecking SetupNameBadges and SetupIconBadges on CommonAvatarBuilder if it's for the sake of a particular experience that shouldn't have the badges (e.g. The MetaMovie Project).

My concern would be that having a global toggle would interfere with the preferences of those who want it enabled/disabled for themselves.

ProbablePrime commented 3 years ago

This was my thought too, as a reminder check the world I published "Purgatory" where everything is turned off. The CommonAvatarBuilding setting is turned off there and works well.

In puzzle maps or immersion maps people can turn them off and map authors can recommend that they be turned off using introductory text etc. Or they can toggle those settings off.

TehTurk commented 3 years ago

Hmmm didn't consider these, my original thought was more so for a way to replace alot of of the enable/disable Namtags/Badges But I can see having Facet Control is probably more paramount.

BlueCyro commented 3 years ago

I personally like being able to set everyone's nametags off in my worlds - e.g. for instance if there's a movie going on or I'm making an experience of some sort, being able to toggle nametags globally for everyone without having to remind them for input would be nice to have. I see no reason why not to have this, options are good.

ProbablePrime commented 3 years ago

I dislike being forced to turn them off, I need to know who users are at all times or I sometimes get confused or uncomfortable.

Why do other users need to turn them off? What change would it make to your experience of the film or experience?

This new change allows users who want to turn them off for a film to do so and those who want to leave them on to do so.

TL;DR don't force my visibility of other name badges on or off plz.

TehTurk commented 3 years ago

I agree with you Cyro for convience, but I get where Prime and Shifty are coming from for personal experience shaping, I never thought this would be such a tricky request o.o

BlueCyro commented 3 years ago

I dislike being forced to turn them off, I need to know who users are at all times or I sometimes get confused or uncomfortable.

Why do other users need to turn them off? What change would it make to your experience of the film or experience?

This new change allows users who want to turn them off for a film to do so and those who want to leave them on to do so.

TL;DR don't force my visibility of other name badges on or off plz.

Then simply turn it back on with the facet if you prefer it on, it's pretty simple. But being able to control all aspects of my world for a set experience is paramount. An official way to toggle it off automatically is all that's being requested, not a hard-driven override. If there's not an override officially, then people are gonna find more hacky/invasive ways to do it if they have a need for it.

ProbablePrime commented 3 years ago

"Then simply turn it back on with the facet if you prefer it on"

So the global setting would just be a... suggestion? If so it basically has the same effect as just asking :)

An official way to toggle it off automatically is all that's being requested

We have an official way as mentioned above.

Im not sure what an added setting does that is for the benefit of all other players in the session. If your experience needs it you can use the global setting in the avatar builder.

If you need it, you can use the facet.

I also installed protections that prevent mine from being turned off the other day by the older buttons and toggles found before this setting was created. I'll have to adapt it today so that it honors the new settings.

BlueCyro commented 3 years ago

@ProbablePrime The global setting would function as the name toggle buttons currently do, being able to automatically toggle the tags off for users for a set experience is much more convenient and immersive than asking each and every player for their input. If you don't like what the world has it set to, you can simply revert it by pressing the facet. But ultimately worlds should have suggestive control over this. There's no detriment to having the option to do so. I personally would like this for my own worlds so that I can retain global nametag functionality, and would prefer an official option to do so instead of having to home-cook a solution.

ProbablePrime commented 3 years ago

They/you can use the CommonAvatarBuilder option, for an individual map or experience.

If I spawn into a map that has that setting changed, I understand what im getting myself into.

BlueCyro commented 3 years ago

I mentioned 'toggling' the nametags, not having a static on/off state. This doesn't suit that need.

ProbablePrime commented 3 years ago

What scenario requires this?

BlueCyro commented 3 years ago

I want to be able to automatically toggle nametags off for everyone for say, if we're about to watch a movie without prompting everyone to turn it off, and then for instance, automatically toggle all nametags on at the end of the video. Or for visual experiences with a lobby where you can see everyone's names, then when the event starts it turns them all off for you. I've seen worlds that do this in VRC.

ProbablePrime commented 3 years ago

I dont think the Movie scenario is valid, I regularly watch movies in VRC with friends and leave name tags on at all times. This should be up to the user's preference. You shouldn't actually need to remind them or prompt them too in these cases. If its a movie they can turn them off if they want and leave them on if they want.

For the visual experience and events, sure I can see this being beneficial for Lobbies or waiting areas. I'd suggest focusing on that. The difference between these two scenarios is what was confusing me. Thank you.

BlueCyro commented 3 years ago

Whether or not something is valid is up to the experience creator to decide I think, I personally would love to create a video player that toggles nametags for my world. After all - it is up to you still whether you definitely want nametags on or off even if the world decision suggests them off.

Aerizeon commented 3 years ago

Perhaps the facet should have a separate (default) 'Auto' mode of sorts that respects the current world setting/global override, and can be changed to always show all/none/contacts regardless of the settings.

shiftyscales commented 3 years ago

@Aerizeon That would be inherently incompatible with the concept Prime proposed where there could be particular zones in a world that forces them on/off. E.g. say you are a game creator and want to force them off in the game itself, but keep them active in the lobby.

They could get around this though by globally disabling the nameplates, on the CommonAvatarBuilder and implementing their own nametag system for that world- but that's why/where this issue becomes even more tricky.

Aerizeon commented 3 years ago

I don't really get why it's so important to force my client to not render nametags, even when I've selected an option specifying otherwise :s

Personally I find it really annoying to be in worlds that use the nametag/badge hiding tools, since I'm not really given any choice.

BlueCyro commented 3 years ago

I don't really get why it's so important to force my client to not render nametags, even when I've selected an option specifying otherwise :s

Personally I find it really annoying to be in worlds that use the nametag/badge hiding tools, since I'm not really given any choice.

But you will be given a choice, by flicking the switch in your facet to turn them on again if you don't like the world setting.

ProbablePrime commented 3 years ago

It seems we've got three separate ideas at play here:

  1. A global Override that affects all users and ignores their preference and disallows them from changing it - Seems like this is the original idea from Turk
  2. A global that sets it to off for all users and allows them to turn it back on - A suggestion
  3. No global override, recommend users turn them off.

Along with that we have the regular state that's available today:

For 1: We don't gain much over the, avatar builder option. There doesn't seem much point. For 2: I'll always just turn it back on again, so why not just ask me to turn them off For 3: Cool, I don't have to turn it off unless I don't want to.

I guess the key issue I have is with the lack of choice.

I want a choice if I see these items or not. I can't really explain the comfort that is given when I can see a name badge but it is very important to me.

If we focus on choice, the best option still sounds like 3, It gives users the choice and the lack of annoyance where they are constantly turning it back on should they want them on.

3 Also has precedence as its how VRChat works, now we don't have to copy VRChat that's not what I'm saying. What I am saying is that it is what that player base will expect.

If we focus on map creators, I can understand them not wanting them on display for certain events or immersion but if the user can just overwrite this setting using their own setting then I don't see the reasoning for 2.

I honestly, understand what you're saying.

I just want the control here to see who is near/around me and talking to me. Without the name badges in the majority of sessions, I'm not comfortable.

For games and immersive experiences I usually enter with a group and then that's fine we don't need name badges.

But if this setting is added, it'll be used in a large amount of worlds and sessions that have varying amounts of users in it. In these sessions I need them.

Frooxius commented 3 years ago

I think it might help to mention that there's actually more things that I have planned with this and why everyone should setup their name-badges with the new component - it'll allow Neos to disable the in-world badges (custom or not) and render default ones locally.

That way if someone has trouble with custom name badges (e.g. not able to read them or just not comfortable) they'll be able to hide those and show the default one. Similarly it can be useful for moderation and other actions to locally render user's actual name / info, as the user can put any text they want to the name badge, including a name that doesn't actually match their account.

There's a question if you'd be uncomfortable with the badges being off at any time (meaning you prefer them always visible with no user action), even if you can invoke a local one to be displayed at any time or if that would be ok. It would allow the creators to have control on their visibility in their worlds, because you'd always have a way to check who the user actually is locally by invoking their profile/name badge locally.

ProbablePrime commented 3 years ago

Great idea on the Custom Namebadges, I'm not usually a fan of them especially ones that I cannot read due to colouring or font choices.

I'd want to locally override the world author in 90% of cases to see the name badges regardless of the world setting. If I can do this, its fine. It essentially maps to the VRChat methodology which is my overall preference with the setting entirely in control of the User.

While I understand the desire for a map or world author to turn them off and empathize. I just want them on whenever I can.

As such a visibility setting that the world author controls doesn't seem that impactful. I also feel it has the potential to be over-used.

Woops, i re-read things. I'd want them on even if the map author wants them off, in some cases.

It feels like modelling this using the word "Suggestion" might be helpful(words are hard).

So the states could be:

Earthmark commented 3 years ago

I can see additional reasons for world makers wanting the ability to prevent users from seeing the nameplates of other users in terms of world systems themselves. Neos isn't just a social platform, and more complex environments, games, and such can be created. I would strongly prefer the ability for a world to disable name tags and the user not have a way to turn them back on.

I can understand wanting to be able to see nametags in social world scenarios, but from my perspective the world author is the one who decides what the players in the world see, not the players themselves. If that wasn't the case a world wouldn't be able to force all users who spawn into specific avatars.

Personally, if I need to build a world where anonymity is required and users check a box to get around that, I'll end up setting badges to inactive or deleting them outright to prevent getting around that, and we're left in the same situation we're in right now.

ProbablePrime commented 3 years ago

We already have this in the avatar builder, I can't overwrite that. As I've said before I'm ok with that setting.

I guess its more the sudden or varied surprise of them suddenly turning on or off that is the issue im having with this idea.

If they're off on the avatar builder then i know about it the moment I land in the session. If they're turned off suddenly in the middle of me being there then what happened and who's there etc.

Psychpsyo commented 3 years ago

I'd like this to be an option for games or experiences that require anonymity (everyone would get the same avatar and no nameplate for example) though I see it getting overused immediately on things like movie players. Cause if a movie player turned them off at the beginning and on at the end, I'd always be turning them back on right after they turn off and people who like them off would need to turn them back off right after the movie ends.

So I feel like there should be a way for worlds to soft toggle this, which respects user preference (if set) and a hard toggle which informs users that their preferences are incompatible with the world. Now the user can choose to copy the world settings for the current session or get kicked as the world absolutely requires nameplates off. (for whatever reason)

TL;DR: World should have the options: -Force nameplate on/off (user must accept or leave) -Suggest nameplate on/off (respects user preference, if set) -Revert to user preference

I also think users should always be informed (with a popup notification or so) if the world overrides their settings.

Enverex commented 3 years ago

Closely, but Psy added a critical one that would be needed for some games - Force Off. Given that Neos is sold as an "engine" at this point, letting users control key aspects like that with no way for a world to override them would just lead to rampant cheating or general abuse (because rule 1 of doing anything that involves other people - "never trust the user").

Accept or leave seems like overcomplicating things, it should just be presented as a passively presented notice, the user can then just leave if they want, otherwise people tend to think things are far more severe than they are and may leave as they're afraid something bad is happening / is going to happen given a message like that.

ProbablePrime commented 3 years ago

I think I missed that one bullet point(words are hard), I'm sorry.

Gaming Applications

I've always maintained that I understand the gaming applications but the part that I think we're missing here is that games can always create their own name plates using non-standard systems. Turning off the stock nameplates in the CommonAvatarBuilder allows you to do this all yourself using your own systems.

I believe this allows them the freedom that they need. For example if you made a Destiny like game you'd use non-standard nameplates that featured destiny styling and give them to users when they joined, these would show their level/light level and other gameplay specific information such as red/blue teaming.

This is my understanding of why a lot of the avatar systems are named "Common x" such as "Common Avatar System", It suggests and further advancements might allow for custom systems that completely augment or override the "Common" system. I also seem to remember talking to Froox about this in the early days.

In these cases its fine, in games its fine.

The Multiple Products of Neos

The problem here is that Neos is slowly diverging between multiple products and these products have different issues that need to be considered:

Malicious Users

I've had to recently ban a user from my sessions because they used something to make themselves entirely invisible in the game.

I've also had to question users who used deliberately misleading nameplates or avatars such that they are disguised as other users, other people or in some cases video game characters. Other users use voice changers(some to great and cool effect, I might add.. Hi Lewis!) but they can be used to disguise users, so that I have no idea who they are.

Should these users be handled by moderation matters/controls? Yes, But should these issues also be made harder to occur or carry out? Yes! Should these issues be made easier to occur, by worlds being released which remove control from the user? No

Social Sessions / Situations

For social situations, I want to know who someone is at all times and nameplates do this. If I don't want to see Nameplates that's my business and as of the last update I can turn them off at my discretion.

If the game wants me to selectively see them, they can build that into their game using the above methodology. Or some other tooling.

But if a video player in a world want's to dictate this, then I just simply using my opinion disagree that the video player should have that level of control over my safety or experience. I also disagree that in the majority of social worlds that this setting is needed. To hang out socially, I'd like to be in control.

The session Menu

I also don't agree that, looking at the session menu is an option. If a user floats over, is malicious and then floats away before I have a chance to figure out who they are and take action then I can't match the session menu up to them. I have to guess who it was and in some cases I have to guess quickly.

Closing Thoughts

As we're getting cyclical here which is partially my fault for being apparently terrible at reading today :(, I'll end this with some more thoughts:

Ultimately, this functionality is up to the Neos Team to add/update/change/implement however they'd like, and everyone is entitled to their opinions. I've shared my opinions and my concerns. The safety of a user's experience in most cases must be more important then visual or stylistic choices within a social platform.

I respect everyone's opinions and none of the above or my prior replies should be seen as me carrying any negative emotions towards anyone.

As Neos grows and becomes more complex these kind of feature requests that are controversial are likely to increase and I hope we can all stay as civil as possible while allowing for everyone's thoughts to be shared and considered. So far that's been true so thank you.

I'll respect(and tutorialize) whatever the Neos Team decides.

DovahDoVolom commented 3 years ago

I've only skimmed through much of this but read a few comments and ill put in my own opinion as well. I am on the side with ProbablePrime where I do not like that worlds can turn off nametags for me. I depend a lot on nametags to know who people are as I don't really memorize people avatars unless I interact with them a bunch. Not to mention you only see people's name in your contacts. Having overrides for game worlds I think should not edit name plates but just add above them or something. I don't see why worlds should need the ability to turn off nametags in the first place. Nametags are for users to identify other users and if they are annoying for the world its up to the user to turn them off locally for themselves. I don't see how turning them off by the world is beneficial.

TehTurk commented 3 years ago

Hmmm, this really expanded from my original issue but I think it comes to a point of where the problem we are all kinda facing is that where control should be coming from and how it's being dictated. Is it Host Rules? User Safety/Convience? World Creator Rules? That's the one thing that kind shoots out to me, but the thing is unless you know ths type of world, this control/power varies per situation.

Frooxius commented 3 years ago

If I understand it correctly, one of the main concerns is not being able to quickly figure out who user is. I think that's something that can be addressed directly with extra features, since it's going to be important for moderation and to solve lots of different scenarios (e.g. the user being invisible).

One thing that I'd like to add for that is ability to force the locally rendered overlays/badges, showing their actual name and position, even if the avatar itself is invisible (e.g. parented under part of hierarchy that's disabled) or if they have a custom badge. That way you can always know who the user is and take any action. When more of the UI is reworked clicking on them would also bring out their profile alongside with moderation actions if needed. That help with cases where the user tries to spoof/impersonate another as well, as this information would be based on authenticated user data.

What would help more is having an audit log of the users you encountered as well. That way even if they flee quickly, you'd have a way to trace who they were and take any moderation action in your world if needed after the fact (even if the world crashes for example).

There are of course problems with this as well which would require solutions - e.g. any kind of game which relies on users being invisible (at least for period of time) could be cheated using this mechanism. But such worlds/sessions could be clearly labeled (plus the host or anyone with high enough role would still be able to override this) and the user audit log could help cover those cases too.

Do you think that features like this would resolve the issues you're having with the ability to have the global world override? If so, how urgent do you think they are?

ProbablePrime commented 3 years ago

Force Local Plates

One thing that I'd like to add for that is ability to force the locally rendered overlays/badges, showing their actual name and position, even if the avatar itself is invisible (e.g. parented under part of hierarchy that's disabled) or if they have a custom badge.

If this can be turned on and will remain on when regardless of what the map thinks or what the owner of the session thinks then this would be fine.

However it does seem to remove the point of a global visibility system if I can just overwrite it with this setting. Perhaps the suggestion from above:

So the states could be:

  • Follow the map author's suggestion - Which listens to the global setting
  • On - Forced on by the user
  • Stock/Vanilla On - Forced on by the user, shows only stock/vanilla name badges.
  • Off - Forced off by the user, doesn't show anything

Is still worth discussing as a way of modelling the possible states of nameplates in a session.

Audit Logs

As for auditing, it depends how and when items are written to that log. Sometimes I'm flying though a map and observing users(and their name plates) to figure out who they are or I'm observing from a distance. Sometimes I'm not the world host either.

In other words I want to know who they are in a large variety of reasons and occurrences that make it unclear to me how the Audit Log would help without understanding more about your plans for that.