抖音开放平台Logo
开发者文档
控制台

1. 云同步能力概览

收藏
我的收藏

什么是“云同步”能力

“云同步”能力系指凭借字节跳动云游戏及小玩法直播技术,在同一云游戏 Unity 进程中响应多路输入、多相机以及多 UI 分屏输出,以达成 2 至 4 个主播能够同时在一个进程中进行游戏并直播的能力。
其特点包括:
    云游戏开播,不受主播 PC 设备性能的制约。
    多人同玩,同一 Unity 进程可实现多画面分屏输出(最多 4 路画面输出),由开发者为每个主播制定不同的游戏画面。
    大幅降低多人互动类直播小玩法的开发门槛。
注意:接入【玩法云同步能力】后,直播伴侣将仅支持云启动,并禁用本地启动方式!

效果预览

介绍 Demo 演示:

解决什么问题?

直播玩法若要实现多主播、嘉宾同屏互动设计,常采用联网玩法实现,如建中心服务器或由主播充当 Host,但开发难度大增。一是涉及技术多,涵盖服务器端开发、Socket 编程等;二是同步方案复杂,要处理不同步等情况;三是物理模拟同步难,3D 物理模拟难一致,部分玩法难实现;四是表现方面需额外处理,要连续表现及考虑预测、回滚等。
等等诸多技术和成本问题,相较于开发单机玩法,开发难度大幅提升……。
而基于“云同步”技术能力,上述问题均可无需考虑,能够以开发单机游戏的方式来实现上述玩法。“云同步”的本质是一个单机游戏。

接入流程

步骤
描述
示意
接入【玩法云启动】能力
    1.【玩法云同步能力】依赖云启动,请开发者先接入【玩法云启动能力】
    2.能力位置:直播玩法后台 - 能力 - 基础能力
开启【玩法云同步】能力
    1.能力位置:直播玩法后台 - 能力 - 基础能力
    2.申请【玩法云同步能力】,参考云同步 SDK 使用手册进行接入
    3.注意:未接入能力前请保持能力开关关闭,否则会导致云启动失败!
发布玩法
    1.完成能力接入后,请先开启【玩法云同步能力】开关,再上传审核包体或调试包体!否则无法触发云同步效果
    2.注意:接入云同步能力的玩法,仅支持云启动,伴侣将禁用本地启动方式!

术语约定

为了方便说明,我们约定以下术语概念:
    1.云游戏:游戏的存储、计算、渲染等操作均在云端服务器完成,而非玩家的本地设备。云端服务器会对游戏画面予以渲染,并以适宜的压缩比例将数据压缩至适配网络传输的大小,而后传送至客户端,玩家在客户端接收数据包后自行解压,便可获取实时的图形画面。
    2.云游戏终端/客户端:指展示云游戏画面,并可实时操作的本地窗口,这里指主播小玩法云开播窗口。
    3.多路输入:指“云同步”技术方案在同一个 Unity 游戏进程接收来自多个玩家终端的输入,涵盖鼠标、键盘事件。
    4.多路输出:指“云同步”技术方案在同一个 Unity 游戏进程向多个玩家终端分屏输出定制的画面、声音。
    5.同玩:多个主播在“云同步”技术方案下,在同一个 Unity 游戏进程进行游戏。
    6.单播:指主播在云游戏中单机画面状态,即未进入同玩前的状态。
    7.切流:指云游戏终端从一个云游戏进程画面切换至另一个云游戏进程画面的过程。
    8.匹配:多个主播通过匹配服务连接并切流到同玩状态。

技术方案

简单来说,在同玩状态时,基本技术方案原理为:多个主播的本地云游戏窗口连接至同一个云游戏环境中,云游戏传输指定的游戏画面。
可以想象为 Switch 马里奥系列多人同屏游戏方案,多个主播各拿一个 “手柄” 连在同一个设备上玩游戏。

多路设备输入 & 输出效果示意

关键概念及流程

    VirtualScreen:即远程虚拟屏幕,这个画面的计算是在云端的,云游戏终端只是展示视频流画面。
    VirtualDeviceInput:即远程虚拟设备输入,用户在云游戏终端的输入数据传输至远程设备进行处理。
    VirtualDevice:用户看到的图像及操作的空间想象一个虚拟设备,这个虚拟设备对应一个 VirtualScreen 和一个 VirtualDeviceInput
    CloudClient:即远程客户端,包含了 VirtualDevice 虚拟设备的管理以及连接至此虚拟设备的远程用户信息(即主播信息)。
关系图如下:

匹配、切流、同玩

两个状态之间的切换:单播状态,联机同玩状态。
    【单播】-- 通过匹配、切流 --> 【联机同玩】
    【联机同玩】-- 结束游戏、回流 --> 【单播】