站务联系

游戏服务器的常用架构

发布时间:2021-03-09   来源:网络整理    
字号:

游戏服务器,是一个会常年运行程序,并且它需要服务于多个不定时,不定点的网路恳求。所以这类服务的优点是要非常关注稳定性跟功耗。这类程序假如还要多个协作来增加承载能力,则需要关注布署跟扩容的便利性;同时,还须要考虑怎样实现某些程度容灾需求。由于多进程协同工作,也带给了开发的复杂度,这只是还要关注的问题。

游戏服务器构架要素

对于游戏服务端构架,最重要的三个部份就是,如何使用CPU、内存、网卡的设计:

- 内存构架:主要决定服务器怎样使用显存,以最大化运用服务器端显存来增加承载量,降低服务延后。

游戏服务器的常用架构

游戏服务器的常用架构

分服模型是游戏服务器中最典型,也是历久最古老的模型。在初期服务器的承载量达到上限的时侯,游戏开发者就通过架设更多的服务器来解决。这样提供了这些个游戏的“平行世界”,让游戏中的人人之间的比较,产生了更多的空间。其特点是游戏服务器是一个个单独的世界。每个服务器的账号是独立的,每台服务器用户的状态都是不一样的,一个服就是一个世界游戏服务器,大家各不牵涉。

游戏服务器的常用架构

网关部份分离成前级的gate服务器,DB部份分离为DB服务器,把网路功能单独提取下来,让用户统一去连结一个网段服务器游戏服务器,再有网段服务器转发数据至前端游戏服务器。而游戏服务器之间数据交换也统一连结至网管进行交换。所有有DB交互的,都连结至DB服务器来代理处理。

游戏服务器的常用架构

场景服务器:它负责完成主要的游戏逻辑,这些逻辑包括:角色在游戏场景中的步入与退出、角色的穿行与跑位、角色战斗(包括打怪)、任务的认领等。场景服务器设计的优劣是整个游戏世界服务器功耗差距的主要展现,它的设计难度不仅仅在于通讯模型方面,更主要的是整个服务器的机制构架跟同步模式的设计。

非场景服务器:它主要负责完成与游戏场景不相关的游戏逻辑,这些逻辑不借助游戏的地图系统也能正常进行,比如帮派聊天或世界聊天,之所以把它从场景服务器中独立下来,是为了节约场景服务器的CPU跟码率资源,让场景服务器才能尽可能快地处理这些对游戏流畅性影响较大的游戏逻辑。

网关服务器: 在类别一种的构架中,玩家在多个地图跳转或则场景切换的时侯选用跳转的方式,以此进行跳转不同的服务器。还有一种形式是把这种服务器的节点都通过网段服务器管理,玩家跟网段服务器交互,每个场景或则服务器切换的时侯,也有网段服务器统一来交换数据,如此玩家操作会比较流畅。

游戏服务器的常用架构

房间类打法跟MMORPG有巨大的不同,在于其在线广播单元的不确定性跟广播人数太小。而且还要匹配一台书房服务器使少数人踏入一个服务器。

这一类游戏最重要的是其“游戏大厅”的承载量,每个“游戏书房”受逻辑所限,需要维持跟广播的玩家数据是有限的,但是“游戏大厅”需要维持相当高的在线用户数,所以一般来说,这种游戏还是还要做“分服”的。典型的游戏就是《英雄联盟》这一类游戏了。而“游戏大厅”里面最有挑战性的任务,就是“自动匹配”玩家踏入一个“游戏书房”,这还要对所有在线玩家做搜索跟过滤。

玩家先登入“大厅服务器”,然后选择组队游戏的功能,服务器会通告参与的所有游戏客户端,新开一条连结至书房服务器上,这样所有参与的用户能够在屋内服务器里进行游戏交互了。

图说天下

×
二维码生成