- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络游戏服务器通信架构和结构设计
网络游戏服务器通信架构和结构设计
摘要: 随着网络游戏玩家的日益增多,网络游戏服务器端承受着严峻的性能考验和负载压力。为了提供良好的服务品质,网络游戏服务器端的设计显得尤其重要。进行游戏服务器端网络通信架构及关键技术分析,对于游戏产业的发展有重要的现实意义。
关键词: 网络游戏;服务器端;通信架构
1网络游戏服务器概述
1.1 网络游戏服务器的基本需求
网络游戏是一种比较典型的分布式实时互动的网络应用。在过去几年里面,有三种都属于实时交互的网络应用,它们之间截然不同,但互联网上的地位却非常突出:(1)军事模拟类应用;(2)网络虚拟环境;(3)大规模多人在线游戏(MMOG)。调查分析表明,现今的娱乐业在 MMOG 上,包括手机游戏和在线游戏上,都进行了大量的投资。
从其联网技术来看,MMOG和其他类的多媒体应用不同,有非常不同的特征。在MMOG当中,用户需要与很多事物进行交互,因此就需要在网络上传递产生相当数量的控制信息。玩家在MMOG游戏中娱乐的过程中必须保证流畅的游戏画面和动作,这也就要求游戏的事件数据必须能够在指定的间隔时间范围内到达。
1.2网络游戏服务器的设计要求
快速响应用户。整个系统应该设法隐藏固有网络延时,快速响应用户,保证用户操作流畅。
提高通信效率。系统应当设计适当的通信协议,以降低网络通信量,使带宽不至于成为某些客户端的性能瓶颈。
设计高效的并发系统。在C/S模型中,服务器节点维护整个世界状态,处理所有客户端请求,成为系统的关节点。因此,客观上要求服务器具有高并发性,应当可以同时接受大量用户连接,同时能够有效隔离错误,为所有用户提供稳定的后台支持。
服务的分布。单台服务器处理能力有限,可以承受的用户量有极限。随着客户端的大量增加,服务器节点将需要巨大的计算能力和存储能力,因此需要把服务分布在一个基于某种策略的服务器集群上。
2网络游戏服务器系统层次框架
网络游戏服务器体系从功能上可以划分成几个较为独立的子系统模块,通信部分位于体系的最底层,它向上层提供具体的业务数据传输,连接服务器与客户端的交互。一个良好的设计应该尽量减少模块间的耦合度,结合系统特性运用设计模式力求封装变化,以使整体架构具有较好的可扩展性和可维护性。
网络游戏通常设计为C/S结构,客户端只对非敏感数据进行简单的逻辑处理,从游戏虚拟世界的角度来看,客户端只是一个观察世界的窗口,玩家通过观察并与世界实体比如 NPC(Non-player character)、其他玩家进行交互。服务器从玩家那里接收到操作信息,进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。
就服务器端而言,位于最底层的是网络层(Network Layer),用于在因特网上传递客户和服务进程之间的消息数据包。游戏逻辑层(Logic Layer)则对接收到的数据进行处理,同时负责保持客户与服务器游戏状态空间的一致性。表现层(ExpressLayer)对这个状态空间的场景对象进行物理表示(Physical Expression),便于服务器端的管理人员监视和实时分析等,考虑服务器负担和主要职责问题,一般表现层做得非常简单,均可以根据配置信息决定是否加载该层的相关模块。
而客户端中,网络层负责与服务器进行通信,与服务器网络层比较,其通信要求相对很低;游戏逻辑层则负责处理客户端的行为逻辑以及非玩家角色的 AI 控制等;表示层的实现相对于服务器来说要复杂得多,采用专业的 2D 或者 3D 引擎技术展现绚烂的图形画面,伴以音频等,以给玩家带来较好的游戏体验。由于玩家需要与游戏虚拟世界进行交互,因而在表示层之上增加交互层以处理玩家的输入控制等。
(1)网络层(Network Layer)
网络层负责游戏网络消息的发送和接收,消息的加解密以及底层的网络通信,包括 NetworkIO、Decrypt/Encrypt 和 Messenger。接收客户请求的数据并进行解密处理,传递给上层协议解释后转换成业务消息发送给逻辑层,将经逻辑层处理业务后的产生的响应回包加密,然后发送给客户。
逻辑层(Logic Layer)。逻辑层中 Governor 为中央控制模块,对各个子模块进行管理控制,负责服务器端不同模块的消息传送,控制游戏的主时钟,由 Governor 控制的子模块包括:Authentication,World, Rule controller, AI controller, Command Script 和 Configuration等。其中,Authentication 主要负责用户身份的验证,User Data
文档评论(0)