注意:
目前云游戏存档能力,仅支持端游方案。
基本使用
2. 使用主账号把此 bucket 给腾讯云存档托管账号(大账号 ID:
100011897175
, AppId: 1300543852
)授权读写。详细操作说明请参见 设置访问权限。3. 通知腾讯云云游戏运营人员,为您的游戏内容配置存档。
4. 游戏配置好存档后,不再需要任何开发工作或人工干预,每次启动前都会下载存档,关闭游戏后也会自动上传存档,实现云存档功能。
获取存档记录
云游戏支持两种方式获取用户存档记录。
通过腾讯云云函数获取用户存档记录
云游戏存档上传到腾讯云对象存储后,都会触发一次云函数事件,客户可以实现自定义云函数来响应事件,以获取存档记录。
此方式需要另外购买腾讯云云函数产品,只能获取成功上传的通知。
上传和下载时存档在COS保存路径为:
userData/${GameId}/${UserId}
。每次上传完成后, 会在保存一个的备份存档,路径为:
userData/${GameId}/${UserId}-${TimeStamp}-tx
。参数 | 说明 |
UserId | CreateSession 时传的用户 ID |
GameId | 云游戏的游戏 ID |
TimeStamp | Unix 时间戳,单位秒 |
说明:
通过腾讯云 CKafka 获取用户存档记录
云游戏服务下载或上传存档时,都会通过 CKafka 发送通知,客户可以从 CKafka 中读取存档实例。
此方法需要另外购买 CKafka 实例,能够获取下载/上传成功或者失败的通知。
1. 购买 CKafka 实例,详细操作请参见 创建实例。
2. 分配公网域名:
在 CKafka 实例详情里,选择接入方式模块中的添加路由策略,新增一条公网路由。完成后就能得到一个公网访问域名。详细操作请参见 添加公网路由。
3. 创建 Topic:
在实例详情页,单击页面顶部的 Topic 管理,单击新建,新建一个用来收发消息的 Topic。更多详情请参见 创建 Topic。
4. 创建用户,并给用户授权读写 Topic:
在实例详情页,选择用户管理,单击新建,添加一个用户,设置好用户名和密码。并且在 ACL 策略管理 页面,为用户添加 Topic 的读写权限。详细操作请参见 配置 ACL 策略。
结束上述步骤后,可将 CKafka 的实例名、域名、Topic、用户名、密码给云游戏运营人员做好配置。
5. 接收消息:
存档下载通知格式:
{"Type":"DownloadArchive","AppId":123456,"UserId":"user123","GameId":"game-cloudgame","RequestId":"95d11eb6-24df-47f4-a3dc-31c7007c83c1","Data":{"ArchiveName":"userData/game-cloudgame/user123","Result":"Success", // 结果:Success、Fail"Size":36335,"Timestamp":1622100110}}
存档上传通知格式:
{"Type":"UploadArchive","AppId":123456,"UserId":"user123","GameId":"game-cloudgame","RequestId":"95d11eb6-24df-47f4-a3dc-31c7007c83c1","Data":{"ArchiveName":"userData/game-cloudgame/user123","BackupName":"userData/game-cloudgame/user123-1622114014-tx"Result":"Success", // 结果:Success、Fail、Skip"Size":36335,"Timestamp":1622114022}}
字段 | 说明 |
RequestId | 触发存档操作的云 API RequestId |
ArchiveName | 存档在 COS 保存的名字 |
BackupName | 存档上传时在 COS 中生成的备份 |
Size | 存档大小 |
GameId | 云游戏的游戏 ID |
Result | 上传结果,返回 Success、Fail 或 Skip。 Skip 只有在上传事件出现,表示本地没有存档文件可上传。 |
TimeStamp | Unix 时间戳,单位秒 |
通过 SDK 获取存档下载/上传的进度和结果
进阶用法
除默认的自动存档功能,为了让客户能更加灵活控制存档,腾讯云云游戏平台还提供了运行时切换存档,运行中主动保存存档等进阶功能。
运行时切换存档
通过 GameContext的ArchiveUrl 传递新存档下载链接即可。
示例:
"GameContext":"{\\"ArchiveUrl\\":\\"https://gamearchive.cos.myqcloud.com/archive.zip\\"}"
运行时保存存档
常见问题
什么是可重连状态?
“可重连”状态表示在这台机器上,用户已断开连接,但游戏还在运行;如果该用户在一定时间内(默认120秒)请求相同的游戏,可以重新连接上这台机器,继续体验。