多人在线游戏服务器构架
当今的网页游戏也越来越强调及时性, Server 的负载过重也会造成 Server 与 Client 之间 的不同步而导致延迟的出现,因 Server 较晚回应给 Client,玩家的动作会因此变慢,因此造 成很多玩家感觉游戏本身的游戏性较差而造成大量流失玩家,下面就将次问题讨论 Server 负载与解决之道!
传统线上游戏系统架构
主要有四种:Client/Server、Peer2Peer、Hybrid Client/Server 及 Multi-Server,不同的游 戏拥有不同的架构,具体情况具体分析。
一、Client/Server 架构
N 个 Client 连接至一个 Server, Client 只负责将玩家输入的信息发送给 Server, Server 处理大部分运算并将处理结果发回给 Client。
优势:设计简单,玩家作弊情形不容易发生
劣势:由于整个运算都是在 Server 端进行,所以 Server 的运算能力及网络的流量 是真个系统的瓶颈,当 Client 没有收到 Server 的任何信息前,Client 无法对玩家的输入 做出任何反应,画面也无法及时更新,因此容易因 Server 运算延迟或网络延迟,造成 游戏的不流畅,一旦 Server 达到上线或者 Client 增多时,则必须考虑使用功能强大的 Server 来取代。
二、P2P 架构
点对点构架最大的优势就是及时性,没有 Server 的介入,所有消息都是参与游戏 的电脑之间的做资料的传送。 这种构架避免了不必要的传送延迟, 但是要在网络环境上建立点对点的架构, 那么 每台电脑必须对所哟的电脑先建立连线并做出传输的处理, 因此电脑的运算能与连线的 频宽会造成不小的负担。
三、Hybrid Client/Server 构架
此构架的特点在于 Client 可以自行推测目标的状态, 并且可以立即针对玩家的输入 做出反应。这种构架把整个虚拟世界当成一个由所有玩家共同享的资料库,Client 可分 到部分资料库类容,并且可以依照资料对玩家的输入与玩家在游戏中的状态进行推测, 兵即时的反应给玩家。
因此如果 Client 尚未收到 Server 信息, Client 端依旧可以进行 则 游戏,但是最终数据的决定全仍然掌握咋 Server 中,如果 Client 的自行计算结果与服 务器的结果不相符合,则 Server 便会去修正 Client 的状态。此架构最大的问题在于网 络延迟所带来的影响, Client 和 Server 之间传输延迟过大, 若 则将会导致 Client 端所推 测的资料库内容与 Server 端的资料库内容差距过大。
四、Multi-Server 架构
早起的 mmorpg 游戏是有单一的 Server 负责整个游戏的内容, 由于是单一的 Server, 因此游戏中能够容纳的线上人数及玩家间的互动会受到限制。 而在 Multi-Server 构架中, 通过每一个 Server 负责一个部分的游戏的内容,但是在不同的 Server 上玩家长处于不 同的游戏世界里, 因此无法互动, 为了要提高系统整体的效能有效利用系统的运算及频 宽的资源,一半以空间切割的方式分配 Server 权限范围及适当划分 Server 负责的工作, 是不同的 Server 负责不同区域间的玩家,因此能支持更多的线上玩家。
目前 mmorpg 逐渐采用 Multi-Server 方式来减少 Server 的负载以及减轻网络的频宽 限制。目前使用的 Multi-Server 分工的技术,大多采用空间切割的上市将虚拟世界的地 图切成跟 Server 同等数量的片段, 再将地图的片段分配给每一台 Server。 当玩家靠近地 图片段的边界时, 玩家所在的 Server 会通知临近的地图片段的 Server, 那么在最佳的情 况下网络流量在这两个 Server 之间为零流量, 没有玩家通过这两个 Server, 而最差的情 况为 O(m^n) 为玩家的数量,m 为 Server 的数量。 |
上一篇:游戏服务器后期维护方法下一篇:域名到网站只要四步
|