一、客户场景与实践
适用于多人互动、直播等云游戏相关业务场景,客户使用场景可参考下列内容。
二、场景1:多人互动直播
·业务背景:某直播厂商,需实现主播直播时与粉丝游戏互动。
·实现逻辑:
·主播开播时,通过连接云游戏创建房间,粉丝可以向主播发起加入房间申请或者通过主播提供的邀请连接,进入房间与主播进行多人游戏。
·其他粉丝可以通过直播观看主播与粉丝的游戏互动直播画面。
三、场景2:多人擂台游戏
·业务背景:某云游戏厂商,需实现多人擂台云游戏。
·实现逻辑:
·管理员创建云游戏房间。
·其他玩家可以排队依次进入进行擂台 PK 游戏,胜利者继续游戏,失败者切换角色或退出。
四、概念说明
多人互动云游戏可以抽象理解为一个云游戏房间+直播流(可选)的形式。房间由云游戏玩家(房主)创建后,其他玩家(游客)可通过房主的 UserId 加入同一房间,同一房间内的所有玩家通过云游戏连接看到同一个云端画面。
五、业务用户说明
·房主:创建房间的玩家
·管理他人是否拥有控制权(点击、键鼠、手柄等操作,针对游戏配置)。
·管理房间内所有人的麦克风状态。
·游客:加入其他人房间的玩家
·需要向房主申请控制权。
·开关自己的麦克风。
·观众:观看直播流,未连接云游戏实例
无其他权限,仅能观看画面。
六、云游戏角色说明
·Player:拥有游戏控制权
人数最多为 7 人。
·Viewer:仅支持观看
人数没有限制。
注意:说明:
七、房主创建房间
1. 房主客户端向业务后台发起启动云游戏请求,业务后台通过调用 TrylockWorker() 申请锁定云游戏实例。
2. 业务后台通过调用 CreateSession() 创建会话,其中请求参数 HostUserId 需要与 UserId 相同,Role 可选择 Player 或者 Viewer。
注意:房主创建房间与单人云游加入游戏流程相同,唯一的区别是调用云 API 创建会话时需填入 HostUserId。
八、游客加入房间
1. 游客客户端向业务后台发起启动云游戏请求。
2. 业务后台通过调用 CreateSession() 创建会话,其中请求参数 HostUserId 需要与房主的 UserId 相同,Role 可选择 Player 或者 Viewer。
注意:仅房主需要调用 TrylockWorker(),游客不需要调用。
九、推流直播
1. 调用 开始云端推流 API 将云游实例运行的完整画面推流至 腾讯云直播。
2. 腾讯云直播可以将此直播流用于播放分发,观众通过直播地址观看直播。
十、切换角色
1. 游客客户端调用 TCGSDK.submitSeatChange() 接口申请切换角色,可以申请切换为 Player 或者 Viewer。
注意:综上所述,Player 需要严格对号入座,Viewer 不分配坐席。
2. 房主客户端通过回调 onMultiPlayerChange() 接口获取其他玩家申请切换角色的请求,通过调用 TCGSDK.seatChange() 接口切换游客角色。
3. 游客客户端通过回调 onMultiPlayerChange() 接口获取申请切换角色的结果。
十一、切换麦克风状态
1. 房主客户端调用 TCGSDK.changeMicStatus() 接口可以切换其他玩家或者自己的麦克风状态。
2. 游客客户端调用 TCGSDK.changeMicStatus() 只能切换自己的麦克风状态。