Social Platform Series: Avatars and Sharing for Mobile Apps
Oculus Developer Blog
Posted by Mike Howard
April 3, 2017

In the first post of new Social Platform series, we talk about the framework for building social and multiplayer games and highlight some of our newest social features for Gear VR following last week's big announcements: Mobile VR Is Better than Ever. Over the next few months we’ll showcase the features of our Social Platform and discuss upcoming and existing tools that help developers easily bring people together in VR.

Social experiences and multiplayer games are powerful and compelling in VR. In addition to providing a sense of individual presence, being able to see, hear, and interact with other people provides an unlimited source of enjoyment and memorable experiences. Oculus is passionate about bringing people together in VR, where high-quality movement tracking, combined with volumetric 3D representation and spatial audio, results in co-presence, the sensation that the person you are with in VR is really there with you. Co-presence lets you not only experience anything, anywhere, at any time, but also do all that with friends, family, and other like-minded people. We want VR to be the most social platform ever, so we’re enabling social presence at a platform level.

Oculus Social Platform

While building platform features for developers, we’re focused not just on the mechanics of the experience itself, but how people will discover it, find ways to connect with other people in their apps, and how we can best reengage people to return in the future.

We think of this journey as having five core components:

  1. Discover–Helping people find your app and easily access it within the Oculus platform
  2. Connect–Providing ways for people to meet in VR, coordinate, and play together
  3. Experience—Getting the most social value out of the experience itself
  4. Invest—Reengaging players with rewards and other hooks to bring them back to the experience
  5. Share—Providing ways for fans of your app to share it with friends, even beyond VR

Our team is focused on building for every step of this journey, so that you have all the tools at your disposal to get people playing together in your app and engaging socially on the Oculus platform.

Today, we’ll talk about Avatars (Experience) and Livestreaming (Share).

Experience: Avatars—Now Available for Mobile VR

Our Experience products help developers easily support social interactions in their apps, from allowing people to comfortably represent themselves in VR to maximizing the sense of co-presence.

We launched Oculus Avatars for PC alongside the launch of Touch controllers to let people represent themselves in VR in a way that felt comfortable and consistent across the Oculus PC platform. Yesterday, we announced Oculus Avatars for Gear VR, letting people bring their personalized Avatars with them wherever they go on the Oculus platform.

We've updated the Avatars SDK to support mobile, as well as optimizing our Avatar assets and materials for mobile performance. We’re also launching Oculus Avatar Editor for mobile VR, letting people jump into their VR dressing room, customize their Avatar, and even take selfies to share on social media.

Easily create an avatar on Gear VR
that expresses your own unique visual style.

Oculus Avatars launches for Gear VR with support in Oculus Rooms and a number of titles arriving over the coming months. Oculus Rooms let friends gather in the same virtual space to hang out, watch videos, play mini-games, and launch apps together with the Group App Launcher.

You’ll be able to begin integrating Oculus Avatars starting with SDK version 1.13, which is available today.

Share: Livestreaming

Livestreaming allows people to capture and broadcast their experiences, even to people outside of VR.

We recently began rolling out Livestreaming, which lets people share their VR experiences with their friends on Facebook. When a person livestreams from your app to Facebook, friends can see and hear what they’re doing in VR and can leave comments and react in real-time. We also tag the app that is currently in use, so people know what you're playing.

Users can Livestream from VR to Facebook,
including app name attribution

From our early observations, we’re seeing people walking through their favorite games and experiences and narrating them for their friends. This is made possible because we’ve implemented Livestreaming to Facebook at the system level, meaning that someone can start streaming from Home and showcase their entire experience in VR, jumping from app to app without missing a beat.

We capture footage directly from the eye buffers, meaning there’s no extra work for you as developers. All you have to do to enable Livestreaming is to opt into Sharing, which you can do from the Platform section of the Dashboard. For new apps, you’ll be prompted to enable or disable sharing at app submission. In order to let you test the performance of Livestreaming with your app, Livestreaming is defaulted to ON for any member of your organization.

Simply click the Sharing box and hit "Save"
to enable Livestreaming

If you do need to pause and resume streaming within your experience, we’ve also added a few simple API hooks, which you can find here. This is particularly useful to prevent someone from giving away their passcode, or for other scenarios in which Livestreaming should be temporarily disabled or paused, like if you’re building an experience that can access licensed or other content that you don't want to Livestream.

It's also possible to monitor the ongoing status of the Livestream. Seeing as there is a small amount of performance overhead when capturing and streaming video to Facebook, you might want to adapt the settings of your experience to ensure smooth performance if someone turns on Livestreaming.

You can call ovr_Livestreaming_GetStatus() to retrieve the current livestreaming status, or alternatively you can register for the ovrMessage_Notification_Livestreaming_StatusChange notification to be alerted when the user starts or stops an active livestream.

There's also a Unity callback:
Livestreaming.SetStatusUpdateNotificationCallback(<method to process update>)

Where Can I Find Out More?

In future posts, we’ll cover new features and deep-dive into some of our more technical tools. You can see everything we’re working on in our Social Platform documentation.