Monday 25 January 2021

Developers: How To Properly Support Oculus Quest’s Party Voice Chat

https://ift.tt/eA8V8J

Playing Oculus Quest games with friends over the past few months revealed a major system-wide flaw: most developers don’t properly support Oculus Party voice chat.

That’s not to put blame on developers – Facebook’s system architecture is non-standard and somewhat confusing. The result for players is a Party voice chat system that feels like it barely ever works.

The cause isn’t a bug – the system is technically working as intended.

At this point you may be wondering; what does it even mean to “support” Party voice chat, and why does doing so matter?

The Problem

Just like Xbox Live or PlayStation Network, the Oculus platform lets players invite friends to a ‘Party’ – a background group voice call. Since Quest is architected like a console, you can’t use 3rd party alternatives like Discord (at least not backgrounded).

Some games even let you launch directly into a session with your Party – but that’s rarely used & unrelated to the issue I’m discussing today.

Quest only lets one app, or the system, use the microphone at once. Oculus Platform SDK lets developers disable Party Chat so the microphone is available for their own multiplayer voice chat system:

Oculus.Platform.VoIP.SetSystemVoipSuppressed(true);

This method is supposed to be used temporarily, followed by setting it to false when the microphone stops being needed.

But here’s the problem: most multiplayer Quest games set it to true throughout the entire app lifecycle to ensure the microphone is always available. This has serious consequences for players trying to team up & coordinate for your game.

The Consequences

A group of Quest-owning friends decides to play some VR games together. The first hops on and invites the others to a Party. They join and together decide on a game.

Since the game calls SetSystemVoipSuppressed(true) on launch and never un-suppresses it, each friend will stop transmitting to & hearing from the others in the Party immediately upon the game loading.

In the best case scenario – games with intuitive friend-based invite systems (eg. Population ONE) – the group of friends will be able to hear each other again relatively soon by creating an in-game party.

In the worst case scenarios – games using invite codes or passwords (eg. Onward) – there is now no way for the friends to group up & hear each other without taking off their headsets & exchanging the code via their phones (or using the clunky Oculus text chat messaging system).

In both cases, the games mute the Party audio long before they’ve finished loading, meaning the player is initially left in a silent black void.

Players experiencing these issues often assume either the game or Oculus Party system is broken. A quick “Oculus Party chat not working” Google search confirms this, with leagues of frustrated users.

The Solution

The solution is to only enable SetSystemVoipSuppressed for the times your app needs the microphone, not throughout the full app lifecycle.

When the player exits an active multiplayer lobby or session, re-enable their Party voice chat by calling:

Oculus.Platform.VoIP.SetSystemVoipSuppressed(false);

They’ll be able to coordinate with their friends again to get back into a session. You should leave Party chat un-suppressed throughout menus, offline tutorials, and single player content – anywhere except an active multiplayer lobby.

Given the issues around coordinating into lobbies, it could even be argued the Party Chat shouldn’t be disabled until there’s more than 1 occupant of the lobby.

Making these changes will make it easier & less frustrating for groups of friends to play your game on Oculus Quest.



from UploadVR https://ift.tt/3ocX9TD
via IFTTT

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...