LeanCloud Play
游戏后端
游戏后端由多人在线对战、Client Engine 和排行榜三项服务组成。多人在线对战负责玩家匹配、房间管理与消息同步;Client Engine 在云端运行游戏逻辑;排行榜保存并排列玩家成绩。账户、存档、资源文件以及组队、公会聊天等需求,则由数据存储和即时通讯提供。
多人在线对战
玩家可以随机匹配,也可以按房间属性选择水平相近的对手,或与指定好友进入同一房间。匹配成功后,房间内的消息由服务端实时同步给所有成员。
MasterClient 负责运算游戏逻辑,是房间内具有特殊权限的客户端;断开连接时,服务端会指定其他客户端接替。房间和玩家的自定义属性由服务端维护,游戏状态无需由应用自行广播。
JavaScriptCocos Creator · LayaAir · Egret · 微信小游戏与小程序
C#Unity
Client Engine
MasterClient 运行在玩家设备上时,房间状态对所有玩家可见,胜负结果也由客户端上报。Client Engine 将其托管到服务端,使判定、随机和结果上报均在云端完成,玩家只能获得服务端下发的信息。
这段逻辑使用 Node.js 编写,与对战服务处在同一个网络内,部署后由平台负责运行、日志、监控和扩容。除 MasterClient 外,还可以在这里托管虚拟玩家,或者提供自定义的 REST API。
Node.js
排行榜
成绩更新后自动重新排名。榜单成员可以是内建账户中的用户,也可以是数据存储中的对象;可以查询前 N 名、指定玩家及其相邻名次,也可以限定成员范围形成好友榜。
排名可以按降序或升序排列,成绩可以保留最高值、最新值,或者累加。榜单能按天、周、月自动重置,旧数据归档保留;成绩也可以设成只接受服务端提交,避免客户端伪造。接口包含在数据存储 SDK 中,也可以直接调用 REST API。
JavaScript
C#
Objective-C
Java
价格方案
以中国节点的价格为例。三项服务分开计费,开发版有免费额度,商用版按用量计费,另有企业版需商务洽谈。
多人在线对战
| 开发版 | 商用版 | |
|---|---|---|
| 同时在线人数(CCU) | 免费,最大支持 20 CCU | 25 元 / 500 CCU / 天,最大支持 5000 CCU |
| 流量 | 免费 1 GB / 天,超出部分 0.8 元 / GB | 0.8 元 / GB / 天 |
排行榜
| 开发版 | 商用版 | |
|---|---|---|
| 请求次数 | 免费 1 万次 / 天 | 2.5 元 / 万次 |
| 榜单记录数 | 免费 1 万条,超出部分 0.05 元 / 万条 / 天 | 0.05 元 / 万条 / 天 |
Client Engine
| 体验版 | 标准版 | |
|---|---|---|
| 计算单元 | 免费 1 计算单元 | 4 元 / 计算单元 / 天 |
| 流量 | 免费 1 GB / 付费实例 / 天,超出部分 0.8 元 / GB | 0.8 元 / GB |
更新历史
2021.09.07
2020.06.09
2020.01.03
推出对战服务的独立部署版本
规模较大的游戏可以独占一组 GameServer 节点,服务端逻辑改用 Hook 函数编写,与 GameServer 在同一个进程内运行;房间最大人数、消息下发频率和消息体大小的限制也随之取消。
2019.01.30
推出 Client Engine
MasterClient 可以脱离玩家客户端,托管到服务端运行,判定、随机和结果上报因此不再经过玩家的设备。
2019.01.30
2019.01.30
多人在线对战支持白鹭引擎
继微信开发者工具、Cocos Creator 和 LayaAir 之后,JavaScript SDK 增加了对白鹭引擎(Egret)的支持。
2018.06.07
2018.06.04
数据来源
功能介绍与价格参考了 LeanCloud 官网的 游戏解决方案页,以及开发文档中的 多人在线对战、Client Engine 和 排行榜 三份功能介绍。
更新历史整理自 LeanCloud Blog 的月度通讯与单独发布的公告。