雨果·巴拉:行业北极星Vision Pro过度设计不适合产品市场

SharedSpaces演示通过Oculus Social API支持多人联机

查看引用/信息源请点击:映维网

多人游戏展示平台

映维网 2021年11月16日)SharedSpaces是一个多人游戏展示平台,主要是用于演示如何通过Oculus的Social APIs来支持多人共在,从而联结大家。

1. SharedSpaces的组成拼图

团队主要是通过以下技术来实现所述目标:

1.1 Social APIs

为了帮助沟通人们在Quest生态系统中的位置,Oculus创建了Destinations和Group Presence的概念。Destinations是你为应用定义的兴趣点,而你可以在其中一个Destination设置用户的Group Presence,以及大厅和匹配标识符。

然后,用户可以使用系统用户界面邀请朋友加入。收件人的头显会弹出一条通知,如果接受邀请,应用则启动,并显示发件人的Group Presence详细信息。

在SharedSpaces中,我们只需要大厅和匹配会话ID就可以在传输层建立通信路径。

1.2 Photon Realtime SDK

Photon Realtime SDK是众多应用采用的一种流行传输层,特别是Unity游戏引擎。团队发现,社区需要更多的Unreal相关示例,所以创建了一个UE4网络驱动程序,以及一个用于Photon Realtim SDK的UE4插件,从而帮助你轻松地在自己的项目中重用。

进行通信的玩家需要参加同一个会话(称为Photon room)。在SharedSpaces的情况下,我们只需使用玩家的大厅或匹配会话标识符作为房间名称。如果你接受了邀请,你最终会和发送者存在于同一个房间里。

1.3 Unreal+Unity

SharedSpaces是使用Unreal引擎构建,然后移植到Unity。

两个引擎都使用client-server架构。大多数应用需要在数据中心托管一台专用服务器。在这个示例中,Oculus选择将服务器托管在其中一个头显,因为这样可以减少对基础设施的需求。它同时允许你轻松地根据需要快速启动和停止服务器。

选择托管游戏服务器的玩家是Photon room中最初的成员,称为主客户端,其他玩家则作为游戏客户端接入。所以,数据包路由如下所示:

  • 在传输层,所有玩家都连接到Photon主服务器,这是一个通用服务器(而不是游戏服务器)。

  • 在game level,UE4/Unity服务器(由Photon room中最初的玩家托管)接收来自所有玩家的数据包,并根据需要将其复制到其他客户端。

当主客户端离开时所需的主机迁移同时有在SharedSpace中演示。若当前托管房间的玩家离开,责任将转移到新的主客户端,然后所有其他玩家重新接入这个新的主客户端。

请参阅下面视频的简要概述:

2. SharedSpaces的设计

团队将设计的重点放在Group Presence和Networking。

你从一个大厅开始(除非你是在接受邀请),从那里你可以使用前往不同的房间。你可以从每个房间打开花名册和邀请面板以发送邀请。

3. SharedSpaces的代码结构(UE4)

因为使用了Photon作为传输层,所以Oculus决定不使用Oculus UE4 OSS(Online SubSystem),因为新的Destinations和Group Presence功能在这个API中没有等效功能。相反,团队构建了一个新的Oculus Platform Subsystem(UE4游戏实例子系统),并构建了第二个UE4游戏实例子系统,以与使用的Photon SDK功能接口。你可以在自己的项目中随意重用。

这两者都是在project level实现,特别是在SharedSpace游戏实例蓝图中。

如有兴趣,你可以下载并安装SharedSpace项目。

4. 代码和文档

SharedSpace已经作为一个完整的开源项目提供,包含源代码和文档。

5. 演示

如果你只是单纯希望尝试体验,你可以在App Lab找到SharedSpaces。

如果你有任何问题,请随时访问开发者论坛

本文链接https://news.nweon.com/91584
转载须知:转载摘编需注明来源映维网并保留本文链接
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供
QQ交流群苹果Vision  |  Meta Quest  |  微软HoloLens  |  AR/VR开发者  |  映维粉丝读者

您可能还喜欢...

资讯