Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dmokel/mmo-base-zinx


https://github.com/dmokel/mmo-base-zinx

Last synced: about 1 month ago
JSON representation

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 数据编解码协议来定义本游戏服务的客户端和服务端交互协议