本篇文章要感謝「銀笑的尤里」從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 猜了很久還是被猜到了!
- 兩個桌面作業系統:Mac、Windows
- 兩個移動作業系統:iOS、Android
- 三個游戲主機平臺:Nintendo switch、PS4、Xbox

在公眾號回復【騰訊云開發】可查看到關于 MGOBE、GAAP、GME 三大云技術的檔案資料!
四、還有驚喜
Shawn 這邊得到的訊息,騰訊云10月在還有兩場沙龍分別是
- 10月18號:北京站
- 10月26號:上海站
感興趣的伙伴可關注公眾號報名參加,感謝大家的支持!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/17930.html
標籤:其他
