Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmokel/mmo-base-zinx
https://github.com/dmokel/mmo-base-zinx
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/dmokel/mmo-base-zinx
- Owner: dmokel
- Created: 2022-11-21T16:27:19.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-11-27T13:27:17.000Z (about 2 years ago)
- Last Synced: 2023-03-21T22:06:50.768Z (almost 2 years ago)
- Language: Go
- Size: 13.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### 基于 zinx 的服务器应用-NMO 多人在线网游
开发流程:
1、协议的定义
2、AOI 兴趣点算法
3、数据传输协议 Protocol buffer
4、玩家业务:玩家上线、世界聊天、上线位置信息的同步(玩家上线广播)、移动位置信息的同步(移动位置广播)、玩家下线
#### 一、AOI 算法
area of interest(兴趣点)算法,许多业务逻辑都是由 AOI 进出事件驱动,许多网络同步数据也是由 AOI 进出时间产生,
- cell structure:
属性:格子 id,格子左边界坐标,格子右边界坐标,格子上边界坐标,格子下边界坐标,格子内玩家/物体成员的 id 集合,保护集合的锁;
方法:初始化各自的方法,给格子添加一个玩家,从格子中删除一个玩家,得到当前格子中所有的玩家;调试函数-打印出格子的基本信息
- aoi map structure:
属性:区域左边界坐标,区域右边界坐标,x 方向格子数量,区域上边界坐标,区域下边界坐标,y 方向格子数量,区域中格子集合(gridID -> grid)
方法:初始化 aoi map,根据 gridID 得到其兴趣区域 grid 信息,;调试函数-打印 aop map 基本信息#### 二、协议定义
基于 protocol buffer 数据编解码协议来定义本游戏服务的客户端和服务端交互协议