Volver a las novedades para desarrolladores

Crear tu experiencia de VR multijugador

24 de mayo de 2022DeNavyata Bawa

Las experiencias multijugador se han convertido en una parte cada vez más importante del ecosistema de la VR. Las funciones multijugador permiten a los usuarios buscar e invitar a otras personas, y jugar juntos a diversos juegos y apps. En esta serie de blogs y videos “Crear tu experiencia de VR multijugador” , dividida en cuatro partes, abordaremos las funciones multijugador de Quest del SDK de la plataforma. Para esto, exploraremos nuestro ejemplo de SharedSpaces de código abierto creado en Unity y te mostraremos cómo usarlo para crear tu propia app multijugador. Si te interesa aprender con recursos multimedia, mira este video en el canal de código abierto de Meta de YouTube.

En el blog de hoy, veremos las funciones multijugador del SDK de la plataforma y lo que puedes crear con él. También abordaremos el ejemplo SharedSpaces de Unity de App Lab y veremos estas funciones multijugador en acción.

Funciones multijugador

Las funciones multijugador de Quest (destinos, presencia de grupo, invitaciones, enlace de invitación y listas, entre otras) permiten a los jugadores hallar e invitar personas y jugar juntos en apps de VR. Estas funciones mejoran las interacciones sociales dentro de tu app y permiten que tus mayores fans inviten a otras personas a unírseles. Esto genera una experiencia multijugador única en la que los jugadores se sienten físicamente presentes con sus amigos en la app.

Destinos

Los destinos son ubicaciones a las que la gente se traslada dentro de tu app y resultan esenciales para las funciones multijugador en el desarrollo de Quest. En la siguiente figura se muestran tres de los destinos de la app de ejemplo de SharedSpaces. En nuestro próximo blog, veremos los pasos de configuración de los destinos de tu app.

Presencia de grupo

La presencia de grupo te brinda información sobre la app en la que se encuentra una persona: si hay una partida, si la persona se halla en un destino específico, si es posible unirse a ella y muchas otras posibilidades. Para obtener más información sobre destinos y presencia de grupo, visita nuestra documentación sobre varios escenarios de casos de uso y sobre cómo se pueden aplicar mejor en tus apps.

Enlaces profundos

Los enlaces profundos permiten a los desarrolladores dirigir a los usuarios hacia una experiencia específica. Cuando alguien lanza tu app para unirse a un amigo o navega hasta un destino, el enlace profundo incluye información sobre el destino deseado y cualquier lobby o partida.

El primer paso para hacer posible una experiencia multijugador es integrar destinos, presencia de grupo y enlaces profundos. En nuestro próximo blog, veremos cómo crear tu propia versión del ejemplo SharedSpaces de Unity y cómo configurar las características anteriores en tu app.

Invitar a la app

Invitar a la app permite a los jugadores usar el menú de Quest en los juegos compatibles para invitar sin problemas a amigos de Quest y a usuarios con los que jugaron recientemente en lobbies existentes.

Cuando envías una invitación, la persona invitada ve aparecer una notificación en VR y en la app de Oculus para celulares, en la que se le ofrece unirse a la experiencia.

Para obtener más información sobre las API de invitación a la app y sobre cómo puedes usarlas en tu experiencia, visita la página de documentación .

Enlace de invitación

Usando la app de Oculus para celulares, también puedes usar un enlace de invitación para hacer el lanzamiento en un destino con un grupo de amigos.

El enlace de invitación usa la API de presencia de grupo para controlar que todos lleguen a la misma sesión. Para obtener más información sobre el enlace de invitación, visita la página de documentación.

Lista

La lista permite que los usuarios vean qué amigos participan en el juego junto con ellos. Los usuarios computados por el juego tienen el mismo identificador de sesión de lobby que el juego asigna al establecer la presencia del usuario actual. En el ejemplo de SharedSpaces, la lista se encuentra disponible al pasar al panel de lista. En la imagen siguiente, se muestra un ejemplo de la forma en que la lista presenta a los usuarios que juegan contigo y a los que recibieron una invitación para unirse a ti.

Ejemplo SharedSpaces de Unity

Ahora que vimos algunas funciones multijugador del SDK de la plataforma, echemos un vistazo a un proyecto de ejemplo denominado ShareSpaces que muestra estas funciones multijugador en acción. Veremos la versión de Unity de este ejemplo; sin embargo, si te interesa la versión de Unreal, puedes hallarla en App Lab.

Primero, veamos cómo funciona el ejemplo SharedSpaces de Unity. Este ejemplo usa tres niveles de red:

  • El SDK de la plataforma, que nos permite establecer los destinos, la presencia, el lobby y la partida.
  • La capa de transporte, el SDK de Photon, que se encarga de la comunicación entre los usuarios que comparten un espacio.
  • Capacidades de red proporcionadas por el SDK de Netcode para GameObjects de Unity.

En la figura siguiente, se resumen los tres niveles abordados.

Instalación del ejemplo

Ahora que comprendes lo básico del funcionamiento de la app SharedSpaces, puedes descargar el ejemplo SharedSpaces de Unity de App Lab y probarlo en tu visor Quest.

Ejecución del ejemplo

Después de lanzar la app en tu visor Quest, observarás que el primer paso será en una sala llamada “Lobby”. El jugador se representa mediante un personaje vistoso que puedes manejar usando tus controladores. El controlador de la izquierda mueve el personaje y el de la derecha mueve la cámara para que puedas ver cómodamente el mundo a tu alrededor y elegir a dónde ir. El botón “Y” del controlador permite al jugador dar saltos.

Un panel de depuración a la derecha permite conocer el estado de los destinos y la capa de red, y obtener información sobre quiénes se unen a la sala. A tu izquierda, verás tres destinos privados a los que puedes ingresar y a la derecha puedes ver un destino público al que puedes ingresar.

En la parte superior izquierda, verás la opción para invitar amigos a unirse a ti en esta experiencia. Esta es la opción “Invitar a la app” que mencionamos antes.

En la parte superior derecha, verás una lista con información sobre la presencia de grupo. Esta es la función de Lista del SDK de la plataforma en acción.

Detrás de ti, hay un espacio de pintura en el que podrás cambiar el color de tu jugador. Como alternativa, puedes presionar el botón “X” del controlador para cambiar el color de tu jugador.

En la parte inferior izquierda y derecha, verás una opción para hacer consultas a ti mismo y a tus amigos, y obtener así más información sobre los jugadores.

Escenario del ejemplo de prueba

Ahora que estás familiarizado con el espacio, intenta ingresar en uno de los destinos. La sala púrpura es un destino público en el que cualquiera puede ingresar y el acceso a ella es posible desde cualquier lobby. Ahora, regresemos al lobby.

Una vez que regreses al lobby, intenta ingresar en otra sala. Las salas roja, azul y verde son privadas y se requiere invitación para entrar en ellas.

Antes de ingresar en una de las salas privadas, puedes invitar a alguien a unirse a ti. Dirígete al panel “Invitar a amigos” para ver la lista de amigos disponibles e invitar a uno de ellos. Debido a que iniciaste la experiencia en el lobby, eres el cliente principal y el anfitrión de tu lobby.

Aparecerá una notificación que indicará a tu amigo que lo invitaste a acompañarte. Si acepta la invitación, lo verás en tu Lobby. A partir de ahora, ambos comparten el mismo Identificador de lobby para esta sesión.

Ahora podrás iniciar una partida privada en la sala azul. Cuando ingreses en la sala azul, podrás ver que tu amigo entró en ella antes que tú. Debido a que ingresó primero, será el anfitrión de la sala y estarás conectado a él. También tienes el mismo identificador de sesión de partida que corresponde a la sala azul. Ahora, si abandonas la sala azul, ambos regresarán a tu lobby porque comparten el mismo identificador de lobby.

Si hubieras invitado a tu amigo mientras estabas en la sala azul, y este hubiera estado en su propio lobby y aceptado tu invitación, su identificador de partida habría cambiado al mismo identificador de sesión de partida que corresponde a la sala azul, pero su identificador de lobby hubiera seguido siendo el mismo de antes. En este caso, si ambos hubieran abandonado la sala azul, habrían regresado a sus propios lobbies, que serían diferentes.

Esto fue un recorrido rápido de la app de ejemplo SharedSpaces de Unity. Vimos algunas de las funciones multijugador que ofrece el SDK de la plataforma y cómo funcionan en la app SharedSpaces de Unity en Quest. En nuestro próximo blog, veremos cómo crear tu propia copia de este ejemplo, que incluye cómo descargarlo de Github, cómo compilarlo y cómo ejecutarlo en tu visor de Quest.


Acerca de esta serie

En esta serie, abordamos las funciones multijugador del SDK de la plataforma en Quest mediante la exploración de un ejemplo SharedSpaces de código abierto creado en Unity. Este blog es el primero de una serie de cuatro entregas para la serie de video “Crear tu experiencia multijugador de VR”.

Para obtener más información sobre las funciones multijugador del SDK de la plataforma y sobre cómo funciona el ejemplo SharedSpaces, consulta esta sesión de Connect, en la que se aborda la compilación y el desarrollo de apps multijugador para Quest. Para probar el ejemplo SharedSpaces de Unity, visita App Lab y ejecútalo en tu propio visor. Para obtener más información sobre cómo usar funciones multijugador del SDK de la plataforma en tus propias apps, consulta nuestra documentación de funciones multijugador.

Para obtener más información sobre Meta Quest, visita nuestro sitio web, suscríbete a nuestro canal de YouTube o síguenos en Twitter y Facebook. Si tienes preguntas, sugerencias o comentarios, compártelos con nosotros en los foros para desarrolladores.

Para obtener más información sobre código abierto de Meta, visita nuestro sitio de código abierto, suscríbete a nuestro canal de YouTube o síguenos en Twitter y Facebook.