tencent cloud

文档反馈

如何实现多人互动

最后更新时间:2024-03-18 14:49:29

    客户场景与实践

    适用于多人互动、直播等云渲染相关业务场景,将单人/多人游戏上传至云端。主播可以在任意设备上一键开启对应的游戏,通过在直播间接入互动功能,观众可以通过打赏或被邀请的方式,获得多人游戏其中一个角色的控制权。游戏画面通过云端推流,可以实时在直播间观看。在此功能下,可以实现游戏云PK、云开黑、云助玩等场景。提升直播间人气和礼物收益。
    
    您可以在 全真技术体验馆-直播间多人互动游戏 中,体验直播间多人互动玩法。
    
    
    

    场景1:多人互动直播

    业务背景:某直播厂商,需实现主播直播时与粉丝游戏互动。
    实现逻辑
    主播开播时,通过连接云游戏创建房间,粉丝可以向主播发起加入房间申请或者通过主播提供的邀请连接,进入房间与主播进行多人游戏。
    其他粉丝可以通过直播观看主播与粉丝的游戏互动直播画面。

    场景2:多人擂台游戏

    业务背景:某云游戏厂商,需实现多人擂台云游戏。
    实现逻辑
    管理员创建云游戏房间。
    其他玩家可以排队依次进入进行擂台 PK 游戏,胜利者继续游戏,失败者切换角色或退出。

    快速接入

    首先,您需要拥有一个可在 Windows 环境下稳定运行的应用程序,在应用层面开发实现必要的功能,例如应用程序内实现了以下功能:
    包括基本的游戏场景,至少支持1~4个玩家加入,通过手柄控制控制游戏。
    
    在您具备应用软件的情况时,操作步骤如下:
    1.开通 应用云渲染产品 服务。
    2.参考 快速入门 的操作指引,完成应用的部署。
    3.参考 接入Demo,完成前后端的部署,通过云端环境成功启动应用。
    在完成以上步骤后,您需参照下方多人互动的详细指引进行接入。同时可以参考文档实现 推流画面到直播间

    多人互动玩法概念说明

    多人互动玩法可以抽象理解为一个云渲染房间+直播流(可选)的形式。房间由云渲染玩家(房主)创建后,其他玩家(互动观众)可通过房主的 UserId 加入同一房间,同一房间内的所有用户通过云渲染连接看到同一个云端画面。
    
    
    

    业务用户说明

    房主:创建房间的用户
    管理他人是否拥有控制权(点击、键鼠、手柄等操作,针对应用配置)。
    管理房间内所有人的麦克风状态。
    互动观众:加入其他人房间的玩家,有 Player 和 Viewer 两种角色状态
    需要向房主申请控制权。
    当被房主赋予控制权时,是 Player 角色,有游戏的控制权。
    当未被房主赋予控制权时,是 Viewer 角色,无游戏的控制权。
    可以控制自身麦克风的开关。
    普通观众:直播间通过直播流观看的用户,未连接云渲染实例
    无其他权限的普通直播间观众,仅能通过直播流观看画面。

    云渲染角色说明

    Host:房间最初的创建者
    拥有切换互动观众身份的能力,当 host 角色退出后,房间将立即被销毁,所有互动观众自动退出。
    Player:互动观众拥有游戏控制权的状态,可操控游戏
    人数默认最多为7人,实际人数需与对应游戏可支持的玩家人数一致。
    Viewer:互动观众没有游戏控制权的状态,仅支持观看
    人数默认最多为7人。
    说明:
    房主可以切换角色为 Player 进行应用控制,也可以切换为 Viewer 仅观看。
    互动观众可以是 Player,也可以是 Viewer,房主可以切换互动观众的角色身份。

    流程说明

    开通服务

    在控制台 多人互动页面,开通该增值功能。

    房主创建房间

    1. 房主客户端向业务后台发起启动云渲染请求,业务后台通过调用 ApplyConcurrent() 申请锁定云渲染并发。
    2. 业务后台通过调用 CreateSession() 创建会话,其中请求参数 HostUserId 需要与 UserId 相同,Role 可选择 Player 或者 Viewer。
    注意:
    房主创建房间与单人云渲染启动应用流程相同,唯一的区别是调用云 API 创建会话时需填入 HostUserId。

    互动观众加入房间

    1. 互动观众客户端向业务后台发起启动云渲染请求。
    2. 业务后台通过调用 CreateSession() 创建会话,其中请求参数 HostUserId 需要与房主的 UserId 相同,Role 可选择 Player 或者 Viewer。
    注意:
    仅房主需要调用 ApplyConcurrent(),互动观众不需要调用。

    推流直播

    切换角色

    1. 互动观众客户端调用 TCGSDK.submitSeatChange() 接口申请切换角色,可以申请切换为 Player 或者 Viewer。
    注意:
    Viewer 切换成 Player,需要带上切换的操控席位信息(该席位必须是空的)。
    Viewer 切换成 Viewer,无需申请,可直接切换。
    Player 切换成 Viewer,无需申请,可直接切换。
    Player 切换成 Player,需要带上切换的操控席位信息,Player 之间席位切换会导致游戏内所操控角色切换。
    综上所述,Player 需要严格对号入座,Viewer 不分配坐席。
    2. 房主客户端通过回调 onMultiPlayerChange() 接口获取其他玩家申请切换角色的请求,通过调用 TCGSDK.seatChange() 接口切换互动观众角色。
    3. 互动观众客户端通过回调 onMultiPlayerChange() 接口获取申请切换角色的结果。

    切换麦克风状态

    1. 房主客户端调用 TCGSDK.changeMicStatus() 接口可以切换其他玩家或者自己的麦克风状态。
    2. 互动观众客户端调用 TCGSDK.changeMicStatus() 只能切换自己的麦克风状态。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持