开发接入相关问题

最近更新时间:2022-01-10 15:51:18

注意:

因产品策略调整,游戏联机对战引擎后续将与云开发 CloudBase 整合为新产品形态,现将该产品保持维护状态,不再接收新用户使用申请,老用户仍可正常使用。

PlayerId 和 OpenId 是什么?

  • OpenId 指开发者传入的 ID,您可以前往小游戏平台直接获取,也可由开发者自行生成。
  • PlayerId 指 MGOBE 后台分配给每个玩家的 ID。OpenId 与 PlayerId 二者是唯一对应的。使用相同的 OpenId 初始化获取的 PlayerId 相同。

request域名和socket域名在哪里配置查看?

出于安全考虑,微信小游戏/小程序会限制请求域名,所有的 HTTPS、WebSocket、上传、下载请求域名都需要在 微信公众平台 进行配置。因此,在正式接入游戏联机对战引擎 JS SDK 前,需要您在微信公众平台的开发设置里配置合法域名。

微信开发者工具是否限制文件上传大小?

代码包总大小不能超过 20M,单个分包不限制大小,主包不超过 4M。详情请参见 微信官方文档

小组内的其他玩家如何监听匹配结果?

小组内的其他玩家可通过监听 onMatch 接口获得匹配结果;监听 onCancelMatch 接口获得取消匹配状态。

MGOBE 支持 UDP 吗? 如何在游戏开发中使用 UDP?

  • MGOBE 支持 TCP 和 UDP 协议,默认 TCP,需要开通白名单使用 UDP,如您需开通白名单,可加 QQ 群966021172,联系管理员开通白名单。
  • 但小游戏的发布平台本身对于协议有限制,目前只有微信小游戏支持 UDP,其他平台例如 QQ 小游戏和百度小游戏不支持 UDP。

在开发环境如何去掉 onRecvFrame 接口的日志打印?

您可以在开发环境输入 MGOBE.DebuggerLog["exclude"]=["onRecvFrame"] 取消接口的日志打印。

机器人的位置如何实现状态同步?

状态同步的逻辑均在服务端,服务端会不断下发每个玩家的状态。每个机器人的状态也由服务端控制,不需要玩家触发,同时不需要玩家上传机器人的状态。

使用帧同步的游戏,操作杆的状态在客户端如何下发?

  • 建议在固定操作时发帧,玩家 A 操作摇杆,就发一条帧消息,告知每个客户端该玩家方向已改变。客户端获取这个帧广播后,修改玩家 A 的方向。但是操作的频率会很高,可能导致发帧率很高。
  • 建议在操作摇杆时,通过一定的时间间隔或者方向变化阈值处理发帧。

当房间中无人时会自动销毁吗?是否需要某个玩家调用 dismiss?

控制台可以设置当房间没有玩家时,x秒后解散房间;玩家全部掉线后,x秒后解散房间。如果没有设置,则按照控制台默认值自动解散房间。

  • 房间没有玩家时,系统默认0秒后解散房间,限定设置0 - 900秒。
  • 房间玩家全部掉线时,系统默认300秒后解散房间,限定设置0 - 900秒。

从官网下载的项目源码导入到 Laya,为何不能正常显示或者初始化失败?

从官网下载的项目源码导入到开发工具后。

  1. 请先修改 base.Ts 里 login() 函数的 gameID 和 secretKey 参数。(前往控制台获取 gameID 和 secretKey)
  2. server 暂时可以不填写。

cocosCreate 打包 Android 端显示90006报错,需要证书如何处理?

  • 下载安装证书。详情请参考 文档
  • 下载 cer 文件,cc.url.raw("resources/***.cer") 作为 cacertNativeUrl。

SDK 能否实现房间外的内容发送(类似好友聊天)?

目前只支持房间内的消息发送。

断线后,如何获取对方的状态呢?

  1. socket 断线后,room.onUpdate 将会回调,room.networkState 可以获取本地连接状态。
  2. 对方如果在线,则收到 onChangePlayerNetworkState 广播,里面包含掉线玩家信息。

matchgroup 需要传入 playerID,如何获得 playerID?matchgroup 接口如何使用?

matchgroup 需要传组队的玩家 ID。具体步骤如下:

  1. 先通过邀请好友进入一个房间即可获取玩家的 ID。
  2. 获取玩家 ID 后,将用于组队的房间解散,即可调用 matchgroup 并发起匹配。
  3. 匹配成功后,小组成员会进入同一个对战房间里的同一个队伍。

小程序和小游戏在使用 MGOBE SDK 时需要区分吗?

  • 直接导入 SDK 即可,不用区分小游戏还是小程序,主要是导入 SDK 方式存在区别。
  • 小游戏导入 SDK 使用三种方法:
    const MGOBE = require("../MGOBE/MGOBE.js");
    import * as MGOBE from "../MGOBE/MGOBE.js";
    import "./MGOBE.js";
  • 小程序导入 SDK 使用两种方法:
    const MGOBE = require("../MGOBE/MGOBE.js");
    import * as MGOBE from "../MGOBE/MGOBE.js";
目录