【Zinx應(yīng)用-MMO游戲案例-(4)Proto3協(xié)議定義】Golang輕量級(jí)并發(fā)服務(wù)器框架

Zinx源代碼

github
https://github.com/aceld/zinx
gitee碼云
https://gitee.com/Aceld/zinx


在線(xiàn)開(kāi)發(fā)教程

【B站】
zinx視頻教程-Golang輕量級(jí)TCP服務(wù)器框架-適合自學(xué)者

【YouTube】
zinx開(kāi)發(fā)YouTube中國(guó)版

微信端文檔

技術(shù)資源分享.jpg

【Zinx教程目錄】
完整教程電子版(在線(xiàn)高清)-下載
Zinx框架視頻教程(框架篇)(完整版下載)鏈接在下面正文
Zinx框架視頻教程(應(yīng)用篇)(完整版下載)鏈接在下面正文
Zinx開(kāi)發(fā)API文檔
Zinx第一章-引言
Zinx第二章-初識(shí)Zinx框架
Zinx第三章-基礎(chǔ)路由模塊
Zinx第四章-全局配置
Zinx第五章-消息封裝
Zinx第六章-多路由模式
Zinx第七章-讀寫(xiě)分離模型
Zinx第八章-消息隊(duì)列及多任務(wù)
Zinx第九章-鏈接管理
Zinx第十章-連接屬性設(shè)置


【Zinx應(yīng)用案例-MMO多人在線(xiàn)游戲】
(1)案例介紹
(2)AOI興趣點(diǎn)算法
(3)數(shù)據(jù)傳輸協(xié)議protocol buffer
(4)Proto3協(xié)議定義
(5)構(gòu)建項(xiàng)目及用戶(hù)上線(xiàn)
(6)世界聊天
(7)上線(xiàn)位置信息同步
(8)移動(dòng)位置與AOI廣播
(9)玩家下線(xiàn)
(10)模擬客戶(hù)端AI模塊


五、MMO游戲的Proto3協(xié)議

MsgID Client Server 描述
1 - SyncPid 同步玩家本次登錄的ID(用來(lái)標(biāo)識(shí)玩家)
2 Talk - 世界聊天
3 MovePackege - 移動(dòng)
200 - BroadCast 廣播消息(Tp 1 世界聊天 2 坐標(biāo)(出生點(diǎn)同步) 3 動(dòng)作 4 移動(dòng)之后坐標(biāo)信息更新)
201 - SyncPid 廣播消息 掉線(xiàn)/aoi消失在視野
202 - SyncPlayers 同步周?chē)娜宋恢眯畔?包括自己)

MsgID:1

SyncPid

  • 同步玩家本次登錄的ID(用來(lái)標(biāo)識(shí)玩家), 玩家登陸之后,由Server端主動(dòng)生成玩家ID發(fā)送給客戶(hù)端

  • 發(fā)起者: Server

  • Pid: 玩家ID

message SyncPid{
    int32 Pid=1;
}

MsgID:2

Talk:

  • 同步玩家本次登錄的ID(用來(lái)標(biāo)識(shí)玩家), 玩家登陸之后,由Server端主動(dòng)生成玩家ID發(fā)送給客戶(hù)端

  • 發(fā)起者: Client

  • Content: 聊天信息

message Talk{
    string Content=1;
}

MsgID:3

MovePackege:

  • 移動(dòng)的坐標(biāo)數(shù)據(jù)

  • 發(fā)起者: Client

  • P: Position類(lèi)型,地圖的左邊點(diǎn)

  • ActionData: 動(dòng)作類(lèi)型

message MovePackege{
    Position P=1;
    int32 ActionData=2;
}

message Position{
    float X=1;
    float Y=2;
    float Z=3;
    float V=4;
}

MsgID:200

BroadCast:

  • 廣播消息

  • 發(fā)起者: Server

  • Tp: 1 世界聊天, 2 坐標(biāo), 3 動(dòng)作, 4 移動(dòng)之后坐標(biāo)信息更新

  • Pid: 玩家ID

message BroadCast{
    int32 Pid=1;
    int32 Tp=2;
    oneof Data {
        string Content=3;
        Position P=4;
        int32 ActionData=5;
    }
}

MsgID:201

SyncPid

  • 廣播消息 掉線(xiàn)/aoi消失在視野

  • 發(fā)起者: Server

  • Pid: 玩家ID

message SyncPid{
    int32 Pid=1;
}

MsgID:202

  • 同步周?chē)娜宋恢眯畔?包括自己)

  • 發(fā)起者: Server

  • ps: Player 集合,需要同步的玩家

message SyncPlayers{
    repeated Player ps=1;
}

message Player{
    int32 Pid=1;
    Position P=2;
}


關(guān)于作者:

作者:Aceld(劉丹冰)
簡(jiǎn)書(shū)號(hào):IT無(wú)崖子

mail: danbing.at@gmail.com
github: https://github.com/aceld
原創(chuàng)書(shū)籍gitbook: http://legacy.gitbook.com/@aceld

原創(chuàng)聲明:未經(jīng)作者允許請(qǐng)勿轉(zhuǎn)載, 如果轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容