单位文秘网 2021-10-23 08:13:31 点击: 次
摘 要随着网络技术的迅猛发展以及硬件性能的不断提高,三维网络游戏已然成为了人们休闲娱乐的主要方式之一。承载网络游戏这个虚拟世界的载体是网络游戏服务器,因此,玩家对游戏体验度的高低完全受到游戏服务器性能的影响。设计网络游戏服务器的关键在于数据存取、数据通信与并发处理三个方面,在文中主要就以上三个方面与游戏服务器架构目标来对本文进行阐述。
【关键词】网络游戏 服务器 技术挑战
网络游戏是一种软件服务,面向着广大的游戏用户群体,网络游戏服务器作为处理中心需要对大量的并发请求进行同时处理。由于网络游戏多为付费性的服务,因此,为玩家提供数据的准确、可靠。此外,网络游戏还是一种对通讯信息时效性要求较高的分布式软件系统,导致网络游戏服务器在数据存取、数据通通信、消息处理的速度等方面面临着技术性的挑战。
1 数据存取
在网络游戏中产生的数据具有累积性与持久性,为了保证游戏玩家在下次进入游戏时能够快速、完整、正确地恢复玩家上次结束游戏时的状态,因此,网络游戏服务器需要对玩家的游戏数据进行持久化地保存。这些游戏数据包含了两方面的信息,分别是玩家信息与玩家在游戏中的游戏信息。玩家信息包含了玩家的账号与一些基本信息。玩家在游戏中的游戏信息包含了游戏角色的基本信息、坐标信息、游戏道具信息等等。虽然这两方面的数据都可以在客户端以及服务端进行储存,但是存储在客户端存在安全性方面的问题,因此,这些数据一般都储存在游戏服务端的数据库之中。很多游戏对消息延迟的要求相当严格,消息延迟过长会给玩家造成很差的体验。
通常情况下,磁盘的访问速度都是以微妙计算,内存的访问速度是以纳秒计算,因此,网络游戏服务器会见用户的信息缓存与内存中,绝大多数解决用户的数据请求访问等都是在内存缓存中完成的,仅有小部分的关键数据是通过访问数据库来完成的。尽管这样玩家的一部分数据状态会因为服务器的宕机而丢失,但是如果对于关键数据的操作通过数据库来进行的话,则对玩家而言所产生的影响不会很大。从外,由于网络游戏是一个虚拟的世界,这个世界中的一些地图、NPC、物品道具等这些信息都需要通过一些静态配置数据来进行描述。而这些数据会频繁访问服务器,因此,这些数据会在数据库中的一些文件中进行定义或者存储,在启动服务器时会预加载到服务器内存中,之后这些数据都直接大区访问内存,从而以提高访问的速度。
2 数据通信
网络游戏数据通信是指网络有心通讯实体之间通过怎样的通信协议来完成数据之间的交换。数据的交互主要包括客户端与服务器之间、服务器与服务器之间两方面。数据则包括了客户端发送给服务器的请求数据、服务器主动推送给客户端的相关游戏数据、服务器发送给客户端的相应数据以及各服务器之间相互相互交换的游戏数据四个方面。
在网络游戏中,客户端进程与服务器进程之间的通信是通过传输层采用TCP协议与UDP协议来实现的。网络游戏类型的不同对消息延迟的要求也不影响通,TCP协议与UDP协议根据各自传输数据的特点,在不同类型的网络游戏中使用不同的协议来对数据通信进行优化,减少延迟,从而以提高游戏的流畅。
网络游戏客户端与服务端之间有着大量数据的交换,客户端与服务器都有需要将从网上接收到的数据流转换成为本地数据以供逻辑处理程序进行处理,但是由于客户端与服务器之间可能是异构的软件系统,因此就有需要一种通用的数据序列化技术来交换数据的格式。但是考虑到网络游戏运营中产生的带宽成本以及玩家在适用网络时而产生的通信费用,因此,数据序列化技术应该最大限度的减少序列化后的数据包的大小。而服务器同时处理的数据包的数量比较大,为了提高其的吞吐量,因此要求数据序列化技术要求具有较高的序列化与反序列化的处理速度。
3 并发处理
网络游戏面对的是广大的用户群体,因此,网络服务器可能会同时连接大量的用户,并且会同时接受与处理这些客户端发送过来的请求,可见,网络游戏服务器需要具备有较高的并发出处理能力。当前物理服务器使用的处理器大多是多核处理器,这是在架构服务器软件时需要考虑的问题。
当越来越多的玩家加入到网络游戏中时则会导致服务期处理出现瓶颈,毕竟单台物理服务器的处理能力是有限的,因此,需要有更多的服务器来进行分摊处理。但是当玩家流失,则过多的服务器则会造成成本上的浪费,因此,需要设计一种具有灵活的服务器架构来支持服务器的可伸缩性。不管网络服务器的软件或是硬件出现了故障,网络服务器需要具备以下两方面的能力:一方面需要具备当某些服务器出现故障之后能够继续提供服务器的能力。另一方面,在服务器出现故障时能够迅速恢复服务的能力。
4 服务器架构目标
从工程技术的角度来讲,服务器架构目标的设计需要加大对水平拓展性、并发性能、高可用以及成本方面的考虑。
(1)扩展性是项目运用需求所驱动的,系统架构最基本的设计原则就是扩展性,一个具备有较好拓展性的系统架构除了可以有效地应对处理不同的运营情况,还能够使得二次开发的成本得到有效降低。
(2)对于网络游戏OLTP(On-Line Transaction Processing)这种应用来讲,服务器并发的性能除了会对用户的体验造成影响之外,还会对IDC(Internet Data Center)成本造成影响。
(3)网络游戏与互联网服务相近似,高性能的服务器能够有效减少数据灾难、宕机与维护的时间,因此,在架构服务器是必须要上述考虑上述因素。
(4)在设计服务器架构时也要注意到成本,一旦一个网络游戏的IDC(Internet Data Center)成本比营收更高,那么也没有推广这个游戏产品的必要了。
在真实的环境之中,要求服务器能够7×24h的稳定运营。此外由于网络游戏应用具备有变化幅度达、不稳定的特点,要求其能够平滑过渡不同的负载环境,因此要求具备有处理峰值负载的能力。当然,真实环境中与实验环境之间存在着较大的差异,因此,在架构服务器的时候需要在各种压力环境下进行测试考验,从而最大限度地发现系统设计中存在的缺陷与性能瓶颈。因此,需要进一步加大对服务器构建技术的研究。
参考文献
[1]郑帅.基于Socket的游戏服务器的设计与实现[D].北京:北京交通大学,2014.
[2]李攀登.全服单世界网页游戏服务器的研究与设计[D].广州:华南理工大学,2012.
作者单位
北方民族大学 宁夏回族自治区银川市 750021
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-170-96571-1.html
上一篇:浅谈泵站运行自动化监控管理策略
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用