服务器AOI

简介:

 这两天优化了一下一个Java页游服务器的AOI。其实这个优化纯属迫不得已,因为项目已经很久了,当时很多怪物还都是暗雷!!玩家在杀任务怪的时候,需要去地图里面乱转以碰见怪物。

      根据策划的要求,将怪物刷成明怪。就是要玩家看到,当然怪物不一定要动。,只是作为一个影像。既然是优化,那我就彻底优化一下喽;之前的广播是这样子做的,一个玩家的状态更新(比如说坐标更新,头衔更新,等)都是全场景广播,其他客户端根据接收到的广播验证坐标,再判断是不是需要处理这条消息!这样就造成了很大的浪费!这次我使用格子的思想进行优化!(或者说九宫格吧)

      这里有一个前提--可见关系----如果我能看到你,那么你也能看到我。根据游戏设计格子的大小,大概从30-60不等,可以调整;每个玩家在场景内即可看到周围九个格子的信息,包括里面的怪物和宠物。玩家自己状态的更新,要告知周围的玩家;而周围九个格子内的怪物或者玩家的状态更新,也要广播给这个玩家。这里还是要区分怪物和玩家,因为怪物对玩家可见,而玩家并不对怪物可见。为每个玩家每个怪物维护一个可见列表,即在自己的状态更新的时候,要将自己最新的状态告知这个列表上的玩家! 同时场景要记录每个格子上面的怪物和玩家,还可以添加npc或者宠物列表!

      

  基本流程:

      1:游戏服务器启动时候,要添加怪物到对应的格子中。

      2: 玩家登入时候,要获取周围九个格子的信息,并将自己,添加到格子中怪物和玩家的可见列表。同时将格子中的玩家,添加到自己的可见列表中。

      3:玩家走动时候,如果从一个格子走到了另一个格子,就要计算那些格子由可见变为不可见,并且解除与这些格子中怪物和玩家的可见关系。还要计算那些格子由不可见变为可见,那么就要和这些格子中的玩家建立可见关系。在上图做一个简单的展示,比如说玩家从红色小屋的位置走到橙色小屋的位置,那么紫色区域由可见变为不可见,而黄色区域由不可见变为可见。那么就要接触和橙色区域玩家的可见关系,而要和黄色区域的玩家建立可见关系!

      4:玩家登出时候,解除和周围九个格子中的玩家和怪物的可见关系!

注意事项:

      1:在计算格子由可见变为不可见或者由不可见变为可见,一定要注意边界关系

      2:由于我们的服务器是用线程池处理的,所以在维护场景格子怪物列表,格子玩家列表时候,一定要注意同步问题!

      3:怪物维护自己的可见列表,还可以做成主动怪物!!主动攻击玩家!

      欢迎探讨!!!

相关文章
|
2月前
|
编解码 人工智能
中科星图——MOD11A1 V6是由Aqua中分辨率成像光谱仪获取的地表温度/发射率(LST/E)数据集
中科星图——MOD11A1 V6是由Aqua中分辨率成像光谱仪获取的地表温度/发射率(LST/E)数据集
34 1
|
2月前
|
存储 传感器 编解码
中科星图——MOD11A1 V6数据集(Terra星搭载的中分辨率成像光谱仪获取的地表温度/发射率(LST/E)产品)
中科星图——MOD11A1 V6数据集(Terra星搭载的中分辨率成像光谱仪获取的地表温度/发射率(LST/E)产品)
40 5
|
2月前
|
传感器 编解码 人工智能
中科星图——MCD43A4 V6天底双向反射率分布函数调整反射率(NBAR)数据集
中科星图——MCD43A4 V6天底双向反射率分布函数调整反射率(NBAR)数据集
102 8
|
2月前
|
编解码 人工智能 定位技术
中科星图——Landsat9_C2_SR大气校正后的地表反射率数据
中科星图——Landsat9_C2_SR大气校正后的地表反射率数据
41 1
|
编解码 算法 ice
Google Earth Engine ——MCD19A2 V6数据产品是MODIS Terra和Aqua结合的大气校正多角度实施(MAIAC)陆地气溶胶光学深度(AOD)网格化2级产品,1公里分辨率
Google Earth Engine ——MCD19A2 V6数据产品是MODIS Terra和Aqua结合的大气校正多角度实施(MAIAC)陆地气溶胶光学深度(AOD)网格化2级产品,1公里分辨率
689 0
Google Earth Engine ——MCD19A2 V6数据产品是MODIS Terra和Aqua结合的大气校正多角度实施(MAIAC)陆地气溶胶光学深度(AOD)网格化2级产品,1公里分辨率
|
编解码
Google Earth Engine ——Terra MODIS植被覆盖度(VCF)产品是全球地表植被估计的亚像素级250m分辨率产品
Google Earth Engine ——Terra MODIS植被覆盖度(VCF)产品是全球地表植被估计的亚像素级250m分辨率产品
621 0
Google Earth Engine ——Terra MODIS植被覆盖度(VCF)产品是全球地表植被估计的亚像素级250m分辨率产品
|
4月前
|
定位技术
高分GF与环境HJ系列国产卫星遥感影像数据图像免费批量下载方法
高分GF与环境HJ系列国产卫星遥感影像数据图像免费批量下载方法
|
8月前
|
数据可视化 前端开发 定位技术
[LBS学习笔记4]地理特征POI、AOI、路径轨迹
今天继续LBS地理信息的学习,目标是写到10篇博客的时候,做出一个地图工具页面用,包含地图空间索引Geohash、S2、H3的可视化展示。
116 0
|
编解码 算法 BI
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
|
编解码 算法 BI
叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取
叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取
叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取