腾讯云要逆天,一个人也能开发复杂的网络游戏,深圳腾讯云沙龙发来的报到!

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

一、什么是联机对战引擎

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

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

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

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

1. 导入SDK

// 导入 MGOBE.js
import "./js/libs/MGOBE.js";
// 获取 Room、Listener 对象
const { Room, Listener } = MGOBE;

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

2. 初始化监听

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

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. 实例化房间、匹配玩家

// 实例化 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. 房间内的消息通信

//消息参数
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. 帧同步

//开始帧同步
room.startFrameSync({}, event => {
    if (event.code === 0) {
        console.log("开始帧同步成功");
    }
});

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

发送帧消息

const frame = {cmd: "xxxxxxxx", id: "xxxxxxxx" };
const sendFramePara = { data: frame };
room.sendFrame(sendFramePara, event => console.log(event));

房间帧消息广播回调

room.onRecvFrame = event => {
    console.log("帧广播", event.data.frame);
};

状态同步机制稍微点复杂,这里就不展开了,通过上面的内容,不知道大家有没有感觉到很兴奋呢?

三、应用加速&语音多媒体

沙龙上除了联机对战引擎外,腾讯云还带来了有

全球应用加速 GAAP

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

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

游戏多媒体引擎 GME 简介

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


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

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

在公众号回复【腾讯云开发】可查看到关于 MGOBE、GAAP、GME 三大云技术的文档资料!

四、还有惊喜

Shawn 这边得到的消息,腾讯云10月在还有两场沙龙分别是

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

感兴趣的伙伴可关注公众号报名参加,感谢大家的支持!

原文地址:https://www.cnblogs.com/creator-star/p/11622245.html

时间: 2024-10-08 02:52:54

腾讯云要逆天,一个人也能开发复杂的网络游戏,深圳腾讯云沙龙发来的报到!的相关文章

分享百度云链接 Python 3网络爬虫开发实战 ,崔庆才著

分享百度云链接 Python 3网络爬虫开发实战 ,崔庆才著 百度云链接: https://pan.baidu.com/s/1cIB7etdwh8_eybTiatDbQQ 原文地址:http://blog.51cto.com/11018611/2326618

如何在腾讯云快速构建一个Wordpress个人站点

版权声明:本文由贺嘉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/175 来源:腾云阁 https://www.qcloud.com/community 实验架构 任务一:创建一台云主机并登录 登录公共帐号,在云主机控制台找到自己的云主机,复制你的主机的公网IP 登录云主机 Step1: 下载并安装客户端软件 从本地登录到Linux云服务器,我们需要下载一款链接工具.这里我们使用Putty来链接服务器.访问链接下载Pu

一位云架构师用服务打动客户的故事之七「腾讯云·如何在临场用服务拿下甲方Boss认可?」

距离上一篇文章有很久了,确实一直想保持这种节奏,但一直出现'脱更'的情况实属无奈.除个人工作的调整之外更多是因为到处出差'飞'的状态. 时间越久,越是发现技术和沟通的两把武器,技术在技术人员身上是没有问题的,但是在沟通上问题极大.虽然说'自古套路得人心',但初心总归是好的.在国内,目前有非常的做云计算服务的公司,今年格外多.尤其是伴随华为云发力.AWS发力和各类公有云在基础架构上的'白菜价'上,对'迁移.上云服务.对持续运维服务'上有简单而又粗暴的需求.因为信息敏感问题,最终用户以"用户&quo

个域网通讯协议 ZigBee - 另一个不老的短距离、低功耗无线通信技术

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 本来没想发此篇,对于 zigbee 的兴趣没这么深刻,可是看到下面截取百度百科原文的最后一句"2009年开始,Zigbee采用了IETF

一个人也可以建立 TCP 连接呢

今天(恰巧是今天)看到有人在 SegmentFault 上问「TCP server 为什么一个端口可以建立多个连接?」.提问者认为 client 端就不能使用相同的本地端口了.理论上来说,确定一条链路,只要五元组(源IP.源端口号.目标IP.目标端口号.协议)唯一就可以了,所以这不应该是技术限制.而实际上,Linux 3.9 之后确实可以让客户端使用相同的地址来连接不同的目标,只不过要提前跟内核说好而已. 当然,你不能使用同一个 socket,不然调用connect连接的时候会报错: 1 [Er

在阿里云上搭建一个简单的node服务器

一.阿里云服务器以及node环境的搭建 服务器可以去阿里云官网购买一个ECS云服务器,价格还是有点小贵的,如果想使用免费的阿里云服务器,那么阿里云官网每天也是有抢免费的服务器的,每天上午十点,新人能抢到为期半年的服务器. 然后有了服务器以后,首先搭建一个node的运行环境,保证node 能正常使用,这个不是本文的内容就不多加赘述了. 如果没有搭建的小伙伴可以参考这里. 二.远程服务器上的代码管理 在阿里云服务器上可以安装一个 git 版本控制器,将自己的代码放置在自己的 GitHub 上,然后在

如何在阿里云上构建一个合适的Kubernetes集群

摘要: 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是作为参考,大家可以根据实际情况做出调整. 集群规划 在实际案例中发现,有不少同学使用了很多的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集群的优势. 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是作为参考,大家可以根据实际情况做出调整. 集群规划 在实际案例中发现,有不少同学使用了很多的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集

一个网站的开发步骤

github 经常有朋友说"我想做个网站".“网站上放个什么什么”."对你来说应该很容易,帮个忙吧"等等.怎么说呢,大部分非互联网行业的人是不了解网站的开发流程的,他们可能以为就是个简单的页面,顺手拈来,分分钟搞定的,其实不然. 今天就来简单聊一聊一个网站的开发步骤,尽量做到简单易懂,希望能让非相关行业的人也能弄懂. 准备服务器 服务器是运行网站程序的电脑. 公网IP 每台电脑都有一个ip地址. 例如运行网站程序后,用户可以在浏览器里输入:http://192.16

极光推送CEO王小导:所有开发和测试都应必备Testin云测试服务

极光推送CEO王小导:所有开发和测试都应必备Testin云测试服务 2014/09/29 · Testin · 开发者访谈 极光推送是一个聚集了来自前腾讯,华为,新浪及等技术专家的创业团队,2010底发现移动应用消息推送服务的市场空白,推出了极光推送(JPush),成为国内最早的第三方移动消息推送服务提供商,让开发者能够在线的移动客户保持紧密联系.提升移动用户留存率和活跃度.从而提高移动用户的生命周期价值. 极光推送平台从上线至,已为超过30000家移动开发商.超过70000款APP提供送达移动