当前位置:首页 > 每日看点

mmorpg arpg fps等游戏服务端如何设计?

卡卷网2年前 (2024-12-10)每日看点273

第三代游戏服务器

mmorpg arpg fps等游戏服务端如何设计?  第1张

  • 第三代的游戏服务器的普及是从2007年开始的,也可以说是从《魔兽世界》开始,那时无缝的游戏世界地图已经深入人心了,在之前的游戏里玩家走几步就要切换场景,每次切换场景都要加载几十秒,这是非常破坏游戏体验的,所以从2005年以后的大型的MMO开始,无缝地图就成为了标配
  • 以前玩的《暗黑破坏神》是在你进入到某一层时加载一个地图,到了第三代游戏服务器后就不是这样了,第三代游戏服务器的架构如上方图片所示,也是有两个网关服务器,玩家是连接网关服务器的,不是直接连接后端服务器
  • 由于第三代服务器没有地图的存在,不能像第二代服务器一样有游戏世界A或者游戏世界B,所以出现了节点服务器,一个节点服务器可以认为是游戏里的一块区域,如果游戏里的无缝地图分成10块或者是20块,那么就会有20或者10个节点服务器,在节点服务器中要进行寻路时只要访问地图服务器就可以了,游戏服务器只是提供了地图寻路的服务

mmorpg arpg fps等游戏服务端如何设计?  第2张

  • 无缝地图服务器中最关键的点就是地图的节点管理,一个节点就是一块区域,当玩家从节点A移动到节点B时发生了什么样的事情呢?
    • 玩家在上图中使用绿色的三角形表示,
    • 当玩家从节点A走到节点B需要做如下处理
      • 玩家1是完全由节点A控制的,玩家3是由节点B控制的,处于两个节点边缘的玩家2同时由节点A和节点B来进行管理,因为玩家在地图边界时可能会来回走动,直接将他交给节点A或节点B进行管理都不太合适,所以就交给节点A和节点B共同管理
      • 这块被节点A与节点B共同管理的区域叫做共管区,玩家2从节点A移到节点B的过程中,会同时向节点A和节点B发送请求来获取节点A和节点B的情况,玩家2到达节点A的地图边界时就会开始请求节点B的一些数据了,防止在跨域节点时出现卡顿
      • 直到玩家2彻底离开节点A与节点B的共管区,玩家2才会彻底离开节点A,来到节点B,这个过程中一般会使用链表或者动态数组来进行管理
  • 把游戏世界的地图分割为一个个的区块交由不同节点来管理,但这些节点在地理上是没有必要互相链接的,比如在平坦的大陆周围有一些高山,高山附近的玩家比较少,那么就可以把这些高山区块统一交给一个节点来管理,节点只是逻辑上的概念,所以这个管理所有的高山区的节点没有必要跟平坦大陆的节点连在一起
  • 节点所管理的区块可以在游戏运行时根据游戏的负载实时调整,负责进行调整就是节点管理服务器(NodeMaster),它是非常重要的一个服务器
  • 节点管理服务器负责管理节点的负载均衡,在开发节点服务器时,我们碰到的第一个问题就是节点服务器需要和玩家进行通信
    • 以前使用按照场景切割服务器的方式问题不大,只需要访问一下网关服务器就可以把数据缓存起来,但现在服务器种类增加了,玩家又不停的在节点之间来回移动,如果按照用户编号来进行查询就比较麻烦
    • 另外一方面,网关服务器要根据坐标来计算玩家在哪个节点上,玩家来回移动也会导致逻辑越来越麻烦
  • 为了解决这个问题,第三代服务器特地增加了一个对象服务器,原来的方式是网关服务器根据一定的算法计算玩家应该在哪个节点上,由于玩家可能会从节点A跑到节点B去,所以就需要在节点B上面重新加载玩家放在节点A上面的数据,再把它挪到节点B上面
  • 并且如果一个玩家与另外一个节点的玩家进行交互,那么中间的过程就会非常复杂
    • 首先必须要通过网关查找来与节点B的玩家进行交互,节点B的数据又要通过网关再转发给节点A,过程非常繁琐
  • 所以第三代服务器特地增加了一个对象管理服务器,对象管理服务器专门管理一个节点上的所有对象,一个对象可以是在节点A,也可以在节点B,还可以在节点C,这样就变成了节点只管理一个区块,对象的数据放在对象服务器,区块的数据放在节点服务器

mmorpg arpg fps等游戏服务端如何设计?  第3张

  • 上图是第三代服务器的第二种形态,网关服务器经过精简后就没有那么多复杂的功能了,只是负责数据转发,用户逻辑放在对象服务器里进行管理,服务器经过网关找对象时通过一个很简单的算法就能知道对象应该在哪个对象服务器上,因为所有的对象都是被一个对象管理器管理的

动态负载均衡

mmorpg arpg fps等游戏服务端如何设计?  第4张

  • 第三代的服务器上有的节点被玩家访问的次数比较多,比如如果一个游戏服务器里的交易NPC全部都集中在一块区域里,玩家会经常访问这块区域,那么这块区域的负载就会比较大
  • 要解决这个问题可以将人群比较拥挤的区块分割的小一点,让一个节点管理一个小区块,这个区块里面要管理的NPC和玩家比较多,同样的也可以将平时没有什么玩家走动的打怪地图划分的大一些,这就叫做动态负载均衡
  • 动态负载均衡是由节点管理服务器负责管理的

战网游戏服务器

mmorpg arpg fps等游戏服务端如何设计?  第5张

  • 战网服务器也可以叫做第三代第三型服务器,传统的服务器都是基于最早的MudOS架构不断进行延伸,这种架构对于一些实时性的战斗交互处理效率太低了,所以它需要一种战网服务器
  • 战网服务器的特点就是处理效率比较高,很多计算都是放在客户端进行,服务器只负责数据转发,《王者荣耀》就可以认为是服务器转发的战网服务器,但它不是一个纯粹的战网服务器,它是类似于服务器转发的战网服务器,经典的战网服务器跟MMORPG游戏服务器有两个区别
    • MMORPG游戏服务器是分区分服的,北京区的用户和广州区的用户老死不相往来
    • 战网服务器每局游戏一般都是开房间,八个人或者十个人一起参加游戏,全国用户都可以访问同一个服务器,所有玩家都可以一起进行游戏,玩家与玩家之间使用的是P2P方式进行连接的
    • 以前的战网服务器只负责把玩家连接在一起,然后从所有玩家中选出一名玩家作为主机,现在为了游戏的公平性,服务器都已经不采用这种架构了,而是让所有数据都经过服务器进行转发,这样就保证了客户端玩家不太可能作弊,这种架构比这种传统的战网服务器要安全一些,同时又不像MMORPG游戏那样所有东西都在服务器上计算
  • 战网服务器都包括哪些东西呢?
    • MatchMaking
      • MatchMaking服务器是用来专门做玩家的匹配服务的,它是通过创建房间、加入房间、自动匹配、玩家邀请等等方式来组成游戏房间的
    • STUN(牵引服务器)
      • 牵引服务器的目的就是把其他玩家连接到战网服务器当前的主机上面,在某些情况下,比如电信和网通的用户连接比较慢时,战网服务器就会设置一个转发服务器,来转发无法联通的玩家之间的操作
      • 其实王者荣耀也是采用这样的方式,所有的数据都要经过服务器转发一遍

第三代服务器已经是比较完善的一套架构了,但是依然有许多问题存在,想学习更多游戏服务器相关内容,可以看一下我们的视频《Unity全栈开发大师》

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3859.html

分享给朋友:

相关文章

什么软件可以看电视直播?

什么软件可以看电视直播?

2024年9月6日最新更新:本文列举的 所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证都是最新可用版本。作为一个…

开发了个小程序,咋推广呢?

要是开发了个小程序,想推广的话,可以先从自己的朋友圈子下手,让亲戚朋友都帮忙转发宣传,这样能先有点人气。 然后去一些跟你的小程序相关的论坛、社区啥的,发帖子介绍介绍,吸引有兴趣的人。 还能找些网红、博主合作,要是他们觉得你的小程序不错,帮忙…

为什么大家都说手机性能永远超不过PC?

最新的天玑9400牛逼吧,堪称PC级CPU,测试成绩16W功耗能跑9500分,1.8W能跑3000分,GPU也差不多是这个情况。 手机电池一般是4000-5000毫安时,电压3.7V。 也就是说,手机正常满载5W功耗下,这个电池能支持运行4…

为什么扫码支付在中国流行,在发达国家被排斥?

因为这是一种落后的技术。 卖菜的大爷花5毛钱就可以打印出一张二维码来接受付款。 你觉着这种先进么?跟先进完全不沾边的。正是因为不先进,所以才能流行。 卖菜大爷用不起一台先进的、具有NFC感应功能的、还能刷各种银行卡的收款机。 这就是现实。…

拼多多,怎么就成为了年轻人的「赛博菜市场」?

拼多多,怎么就成为了年轻人的「赛博菜市场」?

可惜你不在拼多多买水果蔬菜,很难一句话跟你解释,我只能笨拙的用经历来慢慢讲。 我们公司有微波炉,同事们几乎都是自己带饭来上班,便当荤素搭配、水果零食;都是好看又好吃。 我自己本来就不喜欢外卖,当然也加入了带饭大军: 直到某一天深夜我闲着…

台积电通知其中国客户,从下周开始,所有 7nm 及以下芯片出货将停止。如何看待这一行为?

台积电通知其中国客户,从下周开始,所有 7nm 及以下芯片出货将停止。如何看待这一行为?

我说美国快要没招了,你信么? 这次台积电宣布停止向中国大陆客户供应7纳米及更先进AI芯片,再加上前段时间台积电对华为的制裁,我们基本可以认为,台积电在高端芯片领域,已经彻底把大陆给拉黑了,这也意味着中美芯片战已经到了最关键的时刻,一旦我们克…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。