多人在线游戏服务器构架11315.docx
《多人在线游戏服务器构架11315.docx》由会员分享,可在线阅读,更多相关《多人在线游戏服务器构架11315.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、当今的网网页游戏戏也越来来越强调调及时性性,Seerveer的负负载过重重也会造造成Seerveer与CClieent之之间的不不同步而而导致延延迟的出出现,因因Serrverr较晚回回应给CClieent,玩玩家的动动作会因因此变慢慢,因此此造成很很多玩家家感觉游游戏本身身的游戏戏性较差差而造成成大量流流失玩家家,下面面就将次次问题讨讨论Seerveer负载载与解决决之道!传统线上上游戏系系统架构构主要有四四种:CClieent/Serrverr、Peeer22Peeer、HHybrrid Cliientt/Seerveer及MMultti-SServver,不不同的游游戏拥有有不同的的架构
2、,具具体情况况具体分分析。一、 Clieent/Serrverr架构N个Clliennt连接接至一个个Serrverr,Clliennt只负负责将玩玩家输入入的信息息发送给给Serrverr,Seerveer处理理大部分分运算并并将处理理结果发发回给CClieent。优势:设设计简单单,玩家家作弊情情形不容容易发生生劣势:由由于整个个运算都都是在SServver端端进行,所所以Seerveer的运运算能力力及网络络的流量量是真个个系统的的瓶颈,当当Cliientt没有收收到Seerveer的任任何信息息前,CClieent无无法对玩玩家的输输入做出出任何反反应,画画面也无无法及时时更新,因因此
3、容易易因Seerveer运算算延迟或或网络延延迟,造造成游戏戏的不流流畅,一一旦Seerveer达到到上线或或者Clliennt增多多时,则则必须考考虑使用用功能强强大的SServver来来取代。二、 P2P架架构点对点构构架最大大的优势势就是及及时性,没没有Seerveer的介介入,所所有消息息都是参参与游戏戏的电脑脑之间的的做资料料的传送送。这种构架架避免了了不必要要的传送送延迟,但但是要在在网络环环境上建建立点对对点的架架构,那那么每台台电脑必必须对所所哟的电电脑先建建立连线线并做出出传输的的处理,因因此电脑脑的运算算能与连连线的频频宽会造造成不小小的负担担。三、 Hybrrid Cli
4、ientt/Seerveer构架架此构架的的特点在在于Clliennt可以以自行推推测目标标的状态态,并且且可以立立即针对对玩家的的输入做做出反应应。这种种构架把把整个虚虚拟世界界当成一一个由所所有玩家家共同享享的资料料库,CClieent可可分到部部分资料料库类容容,并且且可以依依照资料料对玩家家的输入入与玩家家在游戏戏中的状状态进行行推测,兵兵即时的的反应给给玩家。因因此如果果Cliientt尚未收收到Seerveer信息息,则CClieent端端依旧可可以进行行游戏,但但是最终终数据的的决定全全仍然掌掌握咋SServver中中,如果果Cliientt的自行行计算结结果与服服务器的的结果不
5、不相符合合,则SServver便便会去修修正Clliennt的状状态。此此架构最最大的问问题在于于网络延延迟所带带来的影影响,若若Cliientt和Seerveer之间间传输延延迟过大大,则将将会导致致Cliientt端所推推测的资资料库内内容与SServver端端的资料料库内容容差距过过大。四、 Multti-SServver架架构早起的mmmorrpg游游戏是有有单一的的Serrverr负责整整个游戏戏的内容容,由于于是单一一的Seerveer,因因此游戏戏中能够够容纳的的线上人人数及玩玩家间的的互动会会受到限限制。而而在Muultii-Seerveer构架架中,通通过每一一个Seerve
6、er负责责一个部部分的游游戏的内内容,但但是在不不同的SServver上上玩家长长处于不不同的游游戏世界界里,因因此无法法互动,为为了要提提高系统统整体的的效能有有效利用用系统的的运算及及频宽的的资源,一一半以空空间切割割的方式式分配SServver权权限范围围及适当当划分SServver负负责的工工作,是是不同的的Serrverr负责不不同区域域间的玩玩家,因因此能支支持更多多的线上上玩家。目前mmmorppg逐渐渐采用MMultti-SServver方方式来减减少Seerveer的负负载以及及减轻网网络的频频宽限制制。目前前使用的的Mullti-Serrverr分工的的技术,大大多采用用空
7、间切切割的上上市将虚虚拟世界界的地图图切成跟跟Serrverr同等数数量的片片段,再再将地图图的片段段分配给给每一台台Serrverr。当玩玩家靠近近地图片片段的边边界时,玩玩家所在在的Seerveer会通通知临近近的地图图片段的的Serrverr,那么么在最佳佳的情况况下网络络流量在在这两个个Serrverr之间为为零流量量,没有有玩家通通过这两两个Seerveer,而而最差的的情况为为O(mmn),nn为玩家家的数量量,m为为Serrverr的数量量。MMORRPG负负载均衡衡机制1. 静态分布布玩家到到服务器器平均分配配玩家给给每个SServver,使使每个SServver有有相同数数量
8、的玩玩家。这这种方法法的优点点是算法法简单,但但玩家在在地图上上移动,因因此过一一段时间间,最差差的情况况下,SServver之之间可能能有大量量的网络络流量,因因为当玩玩家在完完成一个个动作后后,所有有的Seerveer必须须获得另另一个SServver的的玩家数数据,而而其附近近的玩家家皆在不不同的SServver上上,如此此依赖,每每个玩家家的一个个动作需需要传送送消息到到不同的的Serrverr上,将将造成ccommmuniicattionn的极大大负担。2. 静态分配配地图片片段到服服务器利用空间间切割的的方式将将虚拟世世界切割割成和SServver同同等数量量的地图图片段,再再将这
9、些些地图片片段分配配给每一一个Seerveer负责责,然后后再有一一个Diispaacheer SServver负负责将每每一个玩玩家分配配到所对对应的SServver上上去,但但由于玩玩家会在在地图上上移动,因因此时间间一久,在在最差情情况下,玩玩家可能能都到同同一个SServver的的地图片片段上,这这样当初初的负载载平衡就就完全被被破坏了了。3. 动态分配配地图片片段到服服务器静态分配配地图片片段至每每个Seerveer虽然然可以减减少Seerveer间网网络的频频宽和负负载,但但必须使使玩家在在正确的的分布地地图上,玩玩家的位位置是由由玩家所所操作的的,因此此会发生生不可预预料的问问题
10、,为为了克服服这类问问题,将将地图分分切成更更小的片片段,然然后动态态的分配配地图片片段至SServver上上是需要要的。然然而这种种方法要要有效率率,其关关键在于于如何切切割地图图片段,要要切成何何种几何何形状的的,该切切成多少少片段?传统的的方法大大都是切切成正方方形方块块,切割割数根据据实际情情况或模模拟后作作适当的的处理。四、 MMORRPG动动态负载载机制实实现在上一片片段中我我们讨论论了目前前MMOORPGG所采用用的负载载平衡机机制的架架构,这这里我们们将提出出我们的的负载平平衡方法法,并且且讨论如如何动态态以动态态负载机机制来调调整线上上游戏SServver负负载不平平衡的现现
11、象。1、 负载定义义多人在线线游戏中中Serrverr端必须须完成一一下三个个工作:A. 接受Clliennt端玩玩家的状状态、移移动及交交谈的讯讯息B. 处理玩家家和NPPC(SServver控控制的角角色,如如怪物,任任务角色色等)间间的互动动。C. 更新虚拟拟世界状状态D. 将虚拟世世界更新新后的信信息传送送回Clliennt端以上工作作当玩家家越来越越多的时时候将话话费更多多的时间间处理,因因此Seerveer上玩玩家暴增增时,可可能无法法将信息息及时的的传送给给每一个个玩家,在在这里我我们把这这四个工工作所需需要的时时间定义义成一个个Serrverr的负载载;很明明显的,在在一个MM
12、ultti-SServver的的MMOORPGG系统中中,每一一个Seerveer的负负载和它它所负责责的玩家家个数成成正比,因因此,我我们将每每一个SServver所所负责的的玩家的的个数当当成其负负载的重重要指标标。2、 负载平衡衡机制在虚拟世世界中,在在非常多多玩家的的情况下下,单一一的Seerveer必定定会导致致负载过过重的现现象,因因此Muultii-Seerveer的架架构无疑疑是必须须采用的的解决方方式,但但是前面面我们已已经讨论论了Muultii-Seerveer负载载平衡机机制的优优缺点,其其中较为为有效的的是动态态的分配配地图至至服务器器,下面面我们讨讨论如何何实现这这种
13、机制制。首先我们们必须解解决如何何切割游游戏地图图的问题题,以及及切成多多少等分分,因为为这些将将影响到到在此机机制下实实现整个个系统的的效率。我们考虑虑的原则则有一下下几点:1. 尽量分散散玩家到到各个SServver上上。2. 尽量较少少玩家间间的跨SServver的的信息传传送。3. 尽量避免免玩家因因为在地地图上的的位置移移动而必必须更换换Serrverr。其中第一一点是为为了平均均分摊SServver的的负载,第第二点是是为了减减少Clliennt间通通讯的时时间成本本,第三三点是为为了减少少Serrverr间玩家家资料的的转移次次数。首先我们们必须将将地图切切成跟SServver个
14、个数相等等的分数数,使得得每个SServver至至少有一一份地图图,然而而因为玩玩家会在在地图上上移动,因因此若每每个Seerveer负责责一份地地图,那那么时间间一久,必必会导致致负载开开始不平平衡。另另一种方方式是将将地图切切成若干干个小等等分,然然后透过过合理的的方式将将每个小小等分分分散到各各个Seerveer上。当当然,和和上述情情况一样样,时间间一久仍仍会产生生负载不不平衡,然然而这时时候我们们可以将将负载太太重的SServver上上的一部部分地图图片段再再转移给给其他负负载较轻轻的Seerveer上去去,以达达到负载载平衡的的目的。转转移的时时机是以以Serrverr的负载载是否
15、超超过某一一临界值值,而转转移的对对象是可可采用rranddom polllinng的方方式,也也就是询询问相邻邻的Seerveer负载载情况如如何,是是否可以以接受额额外的负负载。其次目前前Mullti-Serrverr MMMORPPG大多多采用将将地图切切割成正正方形,然然而应为为正方形形区域共共有东、西西、南、北北、东南南、东北北、西北北、西南南等八个个相邻的的区域,如如此会正正佳玩家家因为移移动而转转换区域域的机会会,因此此另有系系统采用用正六角角形切割割,然而而这种切切割虽然然相邻的的区域减减少到六六个,但但是其切切割方式式较为复复杂,并并且判断断玩家位位于哪个个区域也也较为耗耗时
16、。另另一可行行方式是是采用正正三角形形的切割割,此方方式的优优点是切切割方法法和判断断位置区区域的演演算法均均较正六六角形简简单。但是以上上切割方方式都有有一共同同的缺点点,就是是他们都都为考虑虑到游戏戏地图的的内容,也也就是说说不论地地图的任任何角落落皆采用用同样的的切割方方式,因因此会很很容易造造成某个个区域内内没有任任何的NNPC,而而另外一一个区域域内却包包含数个个NPCC,而拥拥有NPPC的区区域通常常是玩家家驻足停停留的地地方,因因此包含含数个NNPC的的区域意意味这其其高负载载的可能能性较高高,未包包含任何何NPCC的区域域意味着着玩家不不会长时时间停留留,大多多属于路路过性质质
17、,因此此玩家转转换Seerveer的可可能性便便会较高高。为了解决决上述切切割的缺缺点,我我们试图图使用与与地图内内容相关关的切割割方式,我我们以每每个NPPC为中中心来切切割地图图区域,是是的每个个区域仅仅含有一一个NPPC,并并且为避避免玩家家因暂时时移动而而跨出区区域,我我们希望望每个区区域中的的NPCC和其他他的NPPC要有有适当的的距离。这里提供供参考的的分割方方式如下下:首先先定出所所有NPPC的所所在位置置,然后后对于每每一个NNPC和和其他各各个NPPC间各各画出一一条垂直直平分线线,最后后整理这这些分割割线而成成的一个个包围一一个NPPC的区区域。该该区域所所形成的的多边形形
18、中的一一个边,即即是该NNPC和和他的临临近NPPC间的的等距离离分割线线。事实实上,这这些多边边形区域域的所有有形成的的图形是是计算几几何中的的所有的的Vorronooi ddiaggramm,而各各个区域域称为VVoroonoii poolyggon。VVoroonoii diiagrram的的正式定定义如下下:我们给定定一个NN个点的的集合SS ,对对所有属属于S中中的任意意连个点点Pi和和Pj,PPiPjj线段的的中央垂垂直分割割线将平平面分割割成连个个半平面面,包含含Pi的的半平面面我们以以H(PPi,PPj)表表示之,则则所有在在平面上上靠经PPi的所所有点所所形成的的区域VV(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在线 游戏 服务器 构架 11315
限制150内