①比较严格的服务器是和客户端共享地图数据的,用navmesh的话,服务器也要载入这些地图数据到内存里面,比如说linux下开辟特定大小的共享内存存储地图数据
②对于地图格子,碰撞,都是数据而已,服务器和客户端都会持有对应的数据并运行相同的算法
①服务器不需要存储地图贴图等资源
②服务器一般都不会去做碰撞检测
,或者说mmorpg一般不会去做碰撞,比如说如果用physics做碰撞的话,只能做一些子弹反弹、投掷物相撞反弹这种效果,而且极度消耗CPU性能资源,会导致单服承载人数骤降
①关于客户端作弊
:现在是记录优先于防范,目前服务器只是校验客户端的行为,但是不修正,修正成本太高,尤其现在手游盛行,鬼知道是玩家网络不好还是外挂。校验不通过就记录,且返回错误码,超过次数就直接封停,省时省力
②3D地图一般用体素做地图服务器数据,2D一般用网格,但是对于需求的话是具体问题具体分析
①玩家的消息:MSG_PLAYER_MSG
②玩家登录消息:MSG_PLAYER_SENDLOGINOK
③新建场景:MSG_INSTANCE_NEW
④场景销毁:MSG_INSTANCE_DEL
⑤GM场景相关命令:MSG_RUN_COMMAND
⑥关闭所有模块指令(关服使用):MSG_RELEASE_ALL_MODULE
⑦DB服务器起服好(逻辑服务器开始加载主线):MSG_DB_DATA_READY
逻辑服务器创建
\ 联服创建
\ 全区全服创建
公共地图,组ID也就是GroupID为0的地图
)m_ullGroupID=0 组ID
m_bClosing=false 是否正在关闭
m_tCreateTime 创建时间
m_pParent=NULL 父节点场景
m_nLine=-1 当前分线数
m_pGameMapInfo* pGameMap 地图信息
m_ulPlayerCount 玩家个数
m_ulGoodsCount 静态物体obj对象个数
m_ppGrid 256*256的格子(结构体指针)
m_pTile 32*32的格子(结构体指针)
m_nObjMinTileX 格子最小X方向大小
m_nObjMinTileY 格子最小Y方向大小
m_nObjMaxTileX 格子最大X方向大小
m_nObjMaxTileY 格子最大Y方向大小(九宫格)