硬件架构
硬件设备方面,我们将尝试以6台PentiumIV PC搭配256Mb RAM,作为操作系统Windows XP,当成Server;每台Server间以10/100Mbps以太网路相连接,Client端硬件不受限制,所有Client经由路由器连接到Dispacher Server,再由Dispacher Server咨询World Database Server后,将该Client上的玩家依其所在的地图分配到负责该地图区域的Server上。
如图:实验Multi-user系统构架图
软件架构
采用Arianne这款游戏开发系统,Arianne是一套开放程序源码的的v人线上角色扮演游戏引擎,目前Arranne可以支援Linux、MacOS以及Win32系统,它是以C、C++、Java、Python编制而成,我们可以修改该游戏所放出的源码,加入动态负载平衡的机制来达到我们实验的目的。Arranne主要包括两大模块程式,分别为Client及Server,
如下图构架:Arianne架构图
当玩家产生事件时,时间会被传至GUI,GUI在获得命令之后再将此命令送至Black Box,再经由路由来改变虚拟世界,之后会回传讯息给其他相关的玩家。
实验方法
在本文中我们在Arriane上实验我们提出的负载分配方法,实验中除了我们所提供的以Voronoi diagram方好似B割地图做动态分配外,另外加入两种传统方式以作比较,分别是与正方形切割发,切成四等份后,做静态分配给四台Server主机;另外一种是将游戏地图切成死的倍数个小正方形格子,然后动态方式分配给各个主机。
在灯座警惕啊分配B边形(第一种实验的Voronoi polygon)或小正方形(第三种实验)单位地图时,我们以该主机上所停留的玩家总数为负载标准,若某Server上玩家个数超过某以临界值时,即以random polling方式询问其他主机是否接受该主机上的单位多边形或小方格。
实验效绩分析将以各个玩家对于Server的回应时间之总和来衡量,我们将在后续的计划中分析在不同的负载量下,这三种实验的技校差异性,我们预计当时间增长和负载量增大时,动态分配方式优于静态分配,而同时我们将观察Voronoi diagram的分割方式在何种情况下会显示出他的有点。
结论
大部分线上游戏采用单机Client/Server架构,在这样的架构下会有一些优势但是也存在一些限制,当有新地图、新消息欲在呢国家至游戏中的时候,只需要在一台Server上做修改即可,也因为是有一台Server控制管理,玩家的资料及游戏的公平行维持较为容易,但是另一方面当线上玩家数目逐渐增多时,Server端所需要运算能力小雨需求,便会有人数上的限制,若Server超过负荷则会导致延迟甚至宕机的现象产生。由于所有资料需要先送至Server做完v理后再送出,Server对外的频宽在不足的情况且多人连线时便会有延迟现象。若以空间分割的方式分配Server的权限范围与适当分配每一个Server负责的工作,那么便能减少Server的负载并支持更多的线上人数。
目前有许多机制被用来v言多人线上角色扮演游戏,在本文中我们详细讨论了我们所提出的Voronoi切割方式的有点,并且透过模拟的方式,对于我们提出的切割方法和其他的切割方法做多种指标的技校比较,并且以实验证明我们所提出的方法的却由于传统的方法。最后我们尝试透过修改开放源码的Arianne游戏引v来实战我们提出的负载均衡方法。