返回开发者新闻

打造多人游戏 VR 体验

2022年5月24日发布者:Navyata Bawa

在 VR 生态系统中,多人游戏体验越来越重要。多人游戏功能可支持用户在各种游戏和应用中轻松查找、邀请其他用户以及组队畅玩。“打造多人游戏 VR 体验”博客和视频专题系列共四部分,在这个系列中,我们将探索使用 Unity 制作的开源 SharedSpaces 示例,讨论开放平台 SDK 中与 Quest 多人游戏功能相关的内容,并介绍如何使用此示例构建自己的多人游戏应用。如果您有兴趣观看或收听此专题内容,请前往 Meta 开源项目 YouTube 频道,查看本视频

今天的博客将介绍开放平台 SDK 中的多人游戏功能,以及使用此功能可以打造的体验。此外,我们还将介绍 App Lab 中的 Unity SharedSpaces 示例,并展示这些多人游戏功能的实际应用情况。

多人游戏功能

Quest 多人游戏功能(位置、组队状态、邀请、邀请链接、名单等)可帮助用户在 VR 应用中查找、邀请其他用户以及组队畅玩。这些功能可增强应用内的社交互动,并支持您的忠实粉丝邀请其他朋友加入其中,从而打造独特的多人游戏体验,为玩家与应用内好友带来身临其境之感。

位置

位置是用户在应用中前往的地点,对 Quest 开发中的多人游戏功能至关重要。下图显示了 SharedSpaces 示例应用中的三个位置。我们将在下一篇博客中介绍设置应用位置的步骤。

组队状态

组队状态提供用户所用应用的相关信息:是否存在对局,用户是否在特定位置,是否可加入其中等。如需进一步了解位置和组队状态,请参阅此文档,查看各种用例情况以及如何在应用中更好地使用这些功能。

深度链接

深度链接可帮助开发者将用户直接转到特定体验位置。当用户启动应用以与好友联机或导航到特定位置时,可使用包含位置和广场或对局相关信息的深度链接。

实现多人游戏体验的第一步是集成位置、组队状态和深度链接。我们将在下一篇博客中介绍如何构建自己的 Unity SharedSpaces 示例,以及如何设置应用的这些功能。

邀请使用应用

借助邀请使用应用功能,玩家可使用受支持游戏中的 Quest 菜单,顺畅邀请 Quest 好友和最近组队的玩家进入当前广场。

当您发出邀请时,VR 和 Oculus 移动应用会向受邀人弹出通知,邀请其加入体验。

如需进一步了解邀请使用应用 API 及如何在您的体验中使用这一 API,请访问文档页面

邀请链接

您还可以使用邀请链接转到使用 Oculus 移动应用的好友群组位置。

邀请链接通过组队状态 API 确保所有人进入同一场游戏。如需进一步了解邀请链接,请访问文档页面

名单

用户可通过名单查看与其一起在游戏中的好友。游戏设置当前用户的状态后,加入此游戏的用户具有相同的广场场次编号。在 SharedSpaces 示例中,可通过名单窗口查看名单。在下图的示例中,您可看到名单如何显示与您一起玩游戏的玩家以及您邀请加入的好友。

Unity SharedSpaces 示例

在介绍完一些开放平台 SDK 多人游戏功能后,我们来看看示例项目 SharedSpaces,了解这些多人游戏功能的实际应用情况。我们将体验此示例的 Unity 版本;但如果您对 Unreal 版本感兴趣,请访问 App Lab 获取该版本

首先,我们来了解一下 Unity SharedSpaces 示例的运行原理。此示例使用以下三个网络层:

  • 开放平台 SDK,用于设置位置、状态、广场和对局。
  • 传输层 Photon SDK,负责空间共享用户之间的通信。
  • 由 Unity 的 Netcode for GameObjects SDK 提供的网络功能。

下图概括了我们刚讨论的三个网络层。

安装示例

在基本了解 SharedSpaces 应用的运行原理后,可以下载 App Lab 中的 Unity SharedSpaces 示例,然后使用 Quest 头戴设备试用一下。

运行示例

在 Quest 头戴设备上启动应用后,您会看到起始位置是一个称为广场的虚拟间。玩家在其中化身为一位彩色角色,您可以使用控制器加以控制。左控制器用于移动玩家角色,右控制器用于移动视角,以便您轻松查看周围的环境,并选择想去的地方。按下控制器上的 Y 按钮,玩家角色可以跳跃。

右侧的调试窗口可用于了解位置状态、网络层以及哪位玩家加入了虚拟间。左侧显示三个可以进入的私人位置,右侧显示一个可以进入的公共位置。

左上方显示邀请好友加入此体验的选项。这就是我们之前讨论的邀请使用应用功能。

右上方显示名单,其中显示有关组队状态的信息。这就是开放平台 SDK 名单功能的实际应用情况。

您背后有一家涂料店,可在此使用选项更改玩家角色的颜色。或者,您可以按下控制器上的 X 按钮,更改玩家角色的颜色。

左下方和右下方显示的选项可用于查询您和您的好友,以便了解有关玩家的更多信息。

示例测试情况

在熟悉空间后,可尝试进入其中一个位置。紫色虚拟间是公共位置,任何人都可以进入,并且可从任何广场中进入。现在,我们回到广场。

在回到广场后,尝试进入不同的虚拟间。红色、蓝色和绿色虚拟间都是私人虚拟间,需要邀请才能进入。

在进入其中一个私人虚拟间之前,您可以邀请好友加入。前往“邀请好友”窗口,查看可邀请好友的名单,然后从名单中邀请一位好友。在此广场中开始体验后,您就是此广场的“房主”(Master Client),可以主持其中的游戏。

系统会向受邀好友发出弹出式通知,告知他们您已邀请其加入游戏。如果好友接受您发出的加入邀请,您会在您的广场中看到他们。从现在开始,你们在此场次中共享相同的广场编号。

现在可以在蓝色虚拟间中开始进行私密匹配。在进入蓝色虚拟间时,您可能会看到好友已在您之前进入蓝色虚拟间。由于好友先进入,所以现已成为虚拟间组织者,并且您已与他们相绑定。此外,你们使用的蓝色虚拟间的相应对局场次编号也相同。现在,如果您退出蓝色虚拟间,你们都会返回您的广场,因为你们的广场编号相同。

如果您是在蓝色虚拟间中邀请好友,而他们在自己的广场中接受邀请,则其对局编号会更改为蓝色虚拟间的相应对局场次编号,但其广场编号一直是其之前的广场编号。在此情况下,如果你们都退出蓝色虚拟间,则会返回各自不同的广场。

这就是有关 Unity SharedSpaces 示例应用的速览内容。我们介绍了开放平台 SDK 必须提供的一些多人游戏功能,以及这些功能在 Quest 设备上 Unity SharedSpaces 应用中的运行方式。我们将在下一篇博客中介绍如何构建自己的这类示例,包括如何从 Github 上下载示例,然后构建并在 Quest 头戴设备上运行。


本系列简介

本系列将探索使用 Unity 制作的开源 SharedSpaces 示例,讨论开放平台 SDK 中与 Quest 多人游戏功能相关的内容。为“打造多人游戏 VR 体验”系列视频提供支持的系列博客共四部分,本博客是第一部分。

如需了解有关开放平台 SDK 多人游戏功能以及 SharedSpaces 示例运行原理的更多信息,请参阅此关联会话,其中介绍了如何为 Quest 构建和开发多人游戏应用。访问 App Lab,以便试用 Unity SharedSpaces 示例,并在自己的头戴设备上运行此示例。如需了解有关如何在自己的应用中使用开放平台 SDK 多人游戏功能的更多信息,请参阅有关多人游戏功能的文档。

如需了解有关 Meta Quest 的更多信息,请访问我们的网站、订阅我们的 YouTube 频道,或在 TwitterFacebook 上关注我们。如果您有任何问题、建议或反馈,请在开发者论坛中告诉我们。

如需了解有关 Meta 开源的更多信息,请访问我们的开源网站、订阅我们的 YouTube 频道,或在 TwitterFacebook 上关注我们。