Zinx源代码
github
https://github.com/aceld/zinx
gitee码云
https://gitee.com/Aceld/zinx
在线开发教程
【B站】
zinx视频教程-Golang轻量级TCP服务器框架-适合自学者
【YouTube】
zinx开发YouTube中国版
微信端文档
【Zinx教程目录】
完整教程电子版(在线高清)-下载
Zinx框架视频教程(框架篇)(完整版下载)链接在下面正文
Zinx框架视频教程(应用篇)(完整版下载)链接在下面正文
Zinx开发API文档
Zinx第一章-引言
Zinx第二章-初识Zinx框架
Zinx第三章-基础路由模块
Zinx第四章-全局配置
Zinx第五章-消息封装
Zinx第六章-多路由模式
Zinx第七章-读写分离模型
Zinx第八章-消息队列及多任务
Zinx第九章-链接管理
Zinx第十章-连接属性设置
【Zinx应用案例-MMO多人在线游戏】
(1)案例介绍
(2)AOI兴趣点算法
(3)数据传输协议protocol buffer
(4)Proto3协议定义
(5)构建项目及用户上线
(6)世界聊天
(7)上线位置信息同步
(8)移动位置与AOI广播
(9)玩家下线
(10)模拟客户端AI模块
五、MMO游戏的Proto3协议
MsgID | Client | Server | 描述 |
---|---|---|---|
1 | - | SyncPid | 同步玩家本次登录的ID(用来标识玩家) |
2 | Talk | - | 世界聊天 |
3 | MovePackege | - | 移动 |
200 | - | BroadCast | 广播消息(Tp 1 世界聊天 2 坐标(出生点同步) 3 动作 4 移动之后坐标信息更新) |
201 | - | SyncPid | 广播消息 掉线/aoi消失在视野 |
202 | - | SyncPlayers | 同步周围的人位置信息(包括自己) |
MsgID
:1
SyncPid
:
同步玩家本次登录的ID(用来标识玩家), 玩家登陆之后,由Server端主动生成玩家ID发送给客户端
发起者: Server
Pid: 玩家ID
message SyncPid{
int32 Pid=1;
}
MsgID
:2
Talk
:
同步玩家本次登录的ID(用来标识玩家), 玩家登陆之后,由Server端主动生成玩家ID发送给客户端
发起者: Client
Content: 聊天信息
message Talk{
string Content=1;
}
MsgID
:3
MovePackege
:
移动的坐标数据
发起者: Client
P: Position类型,地图的左边点
ActionData: 动作类型
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
:
广播消息
发起者: Server
Tp: 1 世界聊天, 2 坐标, 3 动作, 4 移动之后坐标信息更新
Pid: 玩家ID
message BroadCast{
int32 Pid=1;
int32 Tp=2;
oneof Data {
string Content=3;
Position P=4;
int32 ActionData=5;
}
}
MsgID
:201
SyncPid
:
广播消息 掉线/aoi消失在视野
发起者: Server
Pid: 玩家ID
message SyncPid{
int32 Pid=1;
}
MsgID
:202
同步周围的人位置信息(包括自己)
发起者: Server
ps: Player 集合,需要同步的玩家
message SyncPlayers{
repeated Player ps=1;
}
message Player{
int32 Pid=1;
Position P=2;
}
关于作者:
作者:Aceld(刘丹冰)
简书号:IT无崖子
mail: danbing.at@gmail.com
github: https://github.com/aceld
原创书籍gitbook: http://legacy.gitbook.com/@aceld
原创声明:未经作者允许请勿转载, 如果转载请注明出处