前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >别在纠结“后端”开发了,联机小游戏还可以这样做!

别在纠结“后端”开发了,联机小游戏还可以这样做!

作者头像
张晓衡
发布2019-10-14 18:02:15
2.5K0
发布2019-10-14 18:02:15
举报
文章被收录于专栏:Creator星球游戏开发社区

本篇文章要感谢「银笑的尤里」从 9月28日腾讯云深圳「游戏开发的超“音”“速”」沙龙发来了重磅消息,下面 Shawn 重点介绍对个人开发者惊喜的“MGOBE” 联机对战引擎。

一、什么是联机对战引擎

我们先看腾讯云官方对“联机对战引擎”的介绍:

小游戏联机对战引擎(Mini Game Online Battle Engine,MGOBE)为游戏提供房间管理、在线匹配、帧同步、状态同步等网络通信服务,帮助开发者快速搭建多人交互游戏。开发者无需关注底层网络架构、网络通信、服务器扩缩容、运维等,即可获得就近接入、低延迟、实时扩容的高性能联机对战服务,让玩家在网络上互通、对战、自由畅玩。MGOBE 适用于回合制、策略类、实时会话(休闲对战、MOBA、FPS)等游戏。

二、联机对战引擎快速上手

废话少说,我们还是直接上代码,就知道有多么的爽了。

1. 导入SDK
代码语言:javascript
复制
// 导入 MGOBE.js
import "./js/libs/MGOBE.js";
// 获取 Room、Listener 对象
const { Room, Listener } = MGOBE;

H5游戏轻松接入SDK,真的是太Easy了。

2. 初始化监听

在使用API之前还需要到腾讯云上开通 MGOBE 的使用权限,拿到 gameId、secretKey、url 等信息,然后就可能使用代码初始化联机对战引擎,代码如下:

代码语言:javascript
复制
const gameInfo = {
     // 替换 为控制台上的“游戏ID”
     gameId: "xxxxxxxx",
     // 玩家 openId
     openId: 'openid_123_test',
     // 替换 为控制台上的“密钥”
     secretKey: 'BjU3QBZLFxxxxxxxxxxxxxxxxxx',
 };

 const config = {
     // 替换 为控制台上的“域名”
     url: 'xxxxxxxx.wxlagame.com',
     reconnectMaxTimes: 5,
     reconnectInterval: 1000,
     resendInterval: 1000,
     resendTimeout: 10000,
 };

// 初始化 Listener
Listener.init(gameInfo, config, event => {
     if (event.code === 0) {
         console.log("初始化成功");
         // 初始化成功之后才能调用其他 API
         // ...
     }
 });
3. 实例化房间、匹配玩家
代码语言:javascript
复制
// 实例化 Room 对象
const room = new Room();
Listener.init(gameInfo, config, event => {
    if (event.code === MGOBE.ErrCode.EC_OK) {
        console.log("初始化成功");
        // 初始化后才能添加监听
        Listener.add(room);
    } else {
        console.log("初始化失败");
    }
});

//调用房间匹配 API
const playerInfo = {
    name: "Tom",
    customPlayerStatus: 1,
    customProfile: "https://xxx.com/icon.png",
};

const matchRoomPara = {
    playerInfo,
    maxPlayers: 5,
    roomType: "1",
};

room.matchRoom(matchRoomPara, event => {
    if (event.code !== 0) {
        console.log("匹配失败", event.code);
    }
});

// 广播:房间有新玩家加入
room.onJoinRoom = (event) => {
    console.log("新玩家加入", event.data.joinPlayerId);
}
// 广播:房间有玩家退出
room.onLeaveRoom = (event) => {
    console.log("玩家退出", event.data.leavePlayerId);
}
4. 房间内的消息通信
代码语言:javascript
复制
//消息参数
const sendToClientPara = {
    recvType: MGOBE.ENUM.RecvType.ROOM_SOME,
    recvPlayerList: ["xxxxxxxx1", "xxxxxxxx2"],
    msg: "hello",
};

//发送到客户端 API
room.sendToClient(sendToClientPara, event => console.log(event));

//客户端接收消息 API
room.onRecvFromClient = (event) => {
    console.log("新消息", event.data.msg);
};
5. 帧同步
代码语言:javascript
复制
//开始帧同步
room.startFrameSync({}, event => {
    if (event.code === 0) {
        console.log("开始帧同步成功");
    }
});

//开始帧同步广播回调
room.onStartFrameSync = (event) => {
    console.log("开始帧同步");
}

发送帧消息

代码语言:javascript
复制
const frame = {cmd: "xxxxxxxx", id: "xxxxxxxx" };
const sendFramePara = { data: frame };
room.sendFrame(sendFramePara, event => console.log(event));

房间帧消息广播回调

代码语言:javascript
复制
room.onRecvFrame = event => {
    console.log("帧广播", event.data.frame);
};

状态同步机制稍微点复杂,这里就不展开了,通过上面的内容,不知道大家有没有感觉到很兴奋呢?点击【阅读原文】可以查看详细文档。

三、全球加速 GAAP

沙龙上除了联机对战引擎外,腾讯云还带来了有全球应用加速 GAAP。

全球应用加速(Global Application Acceleration Platform,GAAP)依赖全球节点之间的高速通道、转发集群及智能路由技术,实现各地用户的就近接入,通过高速通道直达源站区域,帮助业务解决全球用户访问卡顿或者延迟过高的问题。GAAP 提供图形化配置界面,只需几分钟,您就可以创建并使用高速通道访问您的业务源站,并通过控制台查看通道的运行情况。

下面是 「银笑的尤里」带回来的现场景图片。

四、游戏多媒体引擎

腾讯云游戏多媒体引擎(Gaming Multimedia Engine,GME)提供一站式游戏语音解决方案。针对不同游戏场景进行深度优化,覆盖休闲社交、MOBA、MMORPG、FPS 等多种游戏类型;支持多人实时语音、3D位置语音、语音消息和语音转文本等功能;功能完备,接入门槛低,一个 SDK 即可满足多样化的游戏语音需求。

下面是 「银笑的尤里」带回来的现场景图片。

H5全支持,而且还支持 Cocos2dx、Unity、Unreal 三大引擎,以及七大平台,看上图能猜出是那七大平台吗?看图标 Shawn 猜了很久还是被猜到了!

  1. 两个桌面操作系统:Mac、Windows
  2. 两个移动操作系统:iOS、Android
  3. 三个游戏主机平台:Switch、PS4、Xbox

四、还有惊喜

同时还得到消息,腾讯云10月在还有两场沙龙分别是

  • 10月18号北京站
  • 10月26号上海站

感兴趣的伙伴可关注公众号报名参加,感谢大家的支持!在公众号回复【腾讯云开发】可查看到关于 MGOBE、GAAP、GME 三大云技术的文档资料!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Creator星球游戏开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是联机对战引擎
  • 二、联机对战引擎快速上手
  • 三、全球加速 GAAP
  • 四、游戏多媒体引擎
  • 四、还有惊喜
相关产品与服务
全球应用加速
全球应用加速(Global Application Acceleration Platform,GAAP)基于全球部署的节点和线路,通过高速通道、智能路由及安全防护技术,实现数据高速、稳定、安全的跨地域传输,帮助业务解决全球用户访问卡顿或者延迟过高的问题。通过图形化配置界面,只需几分钟,即可通过高速通道访问您的业务源站,并通过控制台查看通道的运行情况。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档