游戏思索25:MMORPG情景服务器的功能及表示(后面会提升角色走动双端的相关汇总,未完待续02/20)

2023-11-14

  • 前情摘要
    简单谈谈你对情景云服务器的看法󿀌欢迎在写作不好的地区讨论

1)处理场景地图数据的相同点

①更严格的服务器是与客户共享地图数据的,用navmesh说话,服务器还应将这些地图数据加载到内存中,例如,在linux下开发共享存储存储地图数据的特殊大小
②地图方格,撞击,都是数据,服务器和客户端将拥有相应的数据并运行相同的算法

2)不同的场景地图数据处理点

①服务器不需要存放地图贴图等优质服务器

游戏思索25:MMORPG情景服务器的功能及表示(后面会提升角色走动双端的相关汇总,未完待续02/20)
②服务器一般不会干,或者说mmorpg一般不会干击,例如,如果使用physics作为撞击词,可以做一些炮弹反弹,投掷物相撞反弹的效果,CPU能源࿰非常昂贵c;会导致单服承重总数急剧下降

3)补充点

①相关:目前预防࿰记录先c;目前,服务器只检查客户端的行为,不调整,调整成本很高,#xff0c;特别是现在手机游戏很流行󿀌鬼知道是玩家网络不好还是外挂。未通过校检的记录,回到错码󿀌超出频率立即停止,节省成本
②3D地图通常使用体素作为地图服务器数据󿀌2D通常使用网格,但对于需求,具体情况具体分析

4)#xff083D地形数据介绍;与2D不同的相同点和不同点)

  • 介绍基本数据
    我们有3D地图(x, y, z)三个维度, xoz表示地图的平面, y表示地图的高度。
  • 类似2D地图的部分
    3D地图,xoz是地图的俯视平面图,其实是2D地图,xoz平面也可以分为小块(和2D一样),然后什么小块可以走,什么小块不能走,形成xoz平面的地图逻辑数据,用于寻径。
  • 不同于3D地形的部分(有高度数据)
    做地形的时候,高度图的数据可以导出,给出(x, z)座标,我们必须将高度数据y从高度图中输入, 那么,当我们导航移动时,,根据寻径中的x, z 在高度图中获得y座标,这样就可以控制角色在移动高度,人物的上坡下坡可以实现。3D地图数据是一个 xoz平面的二维数组,描述某一块是否可行󿀌还有一个高度图数据。

1)场景服务器:#xff08单线程解决方案;只管情景信息保存和扩服后的创景管理)

  • 附加益处
    将游戏中的实体数据放在当前过程中󿀌当情景服务器停机时,可以及时存储数据,并恢复。

2)场景服务器:多线程处理场景信息(《天龙八步》和《武侠世界》是解决地图组࿰的过程c;一个场景服可以有多个线程༉

  • 要点
    一个场景可以用虚拟机跑󿀌故障隔离

1)情景管理定阅消息(来自其他模块或玩家的信息)

①玩家信息: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

2)详细描述情景处理

(7)起服DB服务器(逻辑服务器逐渐进入主线):MSG_DB_DATA_READY

  • 填表注意点
    ①填写主线地图的分线数
    ②主线地图不需要通道列(IsEntry,团本将填写这一列,而且主线地图对应组ID(即GroupID)为0
    ③额外的服务器在地图场景中建立标志:
  • 建立步骤
    ①探索表中团本组ID为0的地图信息,也就是公共地图󿀌将公共地图ID存储在Map中
    ()
    ②这个公共地图Map࿰遍历这个公共地图c;将地图ID带到配备中搜索#xff0c;获得该图对应的默认开启分数,InstanceZone目标建立c;填写对象构造函数
     ③根据地图ID创建地图信息目标m_pGameMapInfo,根据读表数据取值󿀌例如,这个云服务器AOI是基于九宫格建立的
    (在这里检查是否建立在这个服务器类型下(例如࿱)a;例如,是否在逻辑服务器中建立),根据情景表数据创建地图数据
     

标签: 未完待续   服务器   地图   数据