多人在线对战开发指南 · JavaScript
前言
多人在线对战是一款基于 JavaScript 编写的游戏 SDK,它为 有强联网需求的网络游戏提供了一整套的客户端 SDK 解决方案,因此开发团队不再需要自建服务端,从而节省大部分开发和运维成本。多人在线对战提供的主要功能如下:
- 获取房间列表
- 创建房间
- 加入房间
- 随机加入(符合条件的)房间
- 获取房间玩家
- 获取、设置、同步房间的属性
- 获取、设置、同步玩家的属性
- 发送和接收「自定义事件」
- 离开房间
SDK 导入
请阅读 安装指南,获取 JS 库文件。
初始化
首先,需要引入 SDK 中常用的类型和常量。
const {
// SDK
Client,
// Play SDK 事件常量
Event,
// 事件接收组
ReceiverGroup,
// 创建房间标志
CreateRoomFlag,
} = Play;
注意:Cocos Creator 在构建「微信小游戏」项目时,无法将 Play 正常加载到全局变量中,因此需要先导入 Play 模块。
const Play = require("./play");
接着我们需要实例化一个在线对战 SDK 的客户端对象。
const client = new Client({
appId: 'your-client-id', // 游戏的 Client ID
appKey: 'your-client-token', // 游戏的 Client Token
playServer: 'https://your_server_url', // 游戏的 API 域名
userId: 'tarara', // 设置用户 id
gameVersion: '0.0.1' // 设置游戏版本号,选填,默认 0.0.1,不同版本的玩家不会匹配到同一个房间
});
- 在 开发者中心 > 你的游戏 > 游戏服务 > 应用配置 可以查看游戏的
Client ID和Client Token。 - API 域名在 应用配置 > 域名配置 > API 处查看,参考文档关于域名的说明。
其中,
userId 作为客户端的唯一标识连接至服务器。
需要注意,这个 userId 有如下限制:
- 只允许英文、数字与下划线
- 长度不能超过 32 个字符
- 一个应用内全局唯一
gameVersion 表示客户端的版本号,如果允许多个版本的游戏共存,则可以根据这个版本号路由到不同的游戏服务器。
连接
建立连接
通过下面的代码将当前玩家连接到多人对战服务:
client
.connect()
.then(() => {
// 连接成功
})
.catch((error) => {
// 连接失败
console.error(error.code, error.detail);
});