`
410133062
  • 浏览: 25911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一种经典的网络游戏服务器架构

阅读更多

首先,二话不说,上图(用Windows画图画的。。。)


这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边方框内的架构一样。图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于Agent Server大家也能看出来,其实就是Gate。
这里主要介绍下图上的标记了号码的位置的数据连接的内容和意义。

1-   这是一条WebService的管道,在用户激活该区帐号,或者修改帐号密码的时候,通过这条通道来插入和更新用户的帐号信息。
2-   这也是一条WebService管道,用来获取和控制用户该该组内的角色信息,以及进行付费商城代币之类的更新操作。
3-   这是一条本地的TCP/IP连接,这条连接主要用来进行服务器组在登陆服务器的注册,以及登陆服务器验证帐户后,向用户服务器注册帐户登陆信息,以及进行对已经登陆的帐户角色信息进行操作(比如踢掉当前登陆的角色),还有服务器组的信息更新(当前在线玩家数量等)。
4-   这也是一条本地TCP/IP连接,这条连接用来对连接到GameServer的客户端进行验证,以及获取角色数据信息,还有传回GameServer上角色的数据信息改变。
5-   这条连接也是一条本地的TCP/IP连接,它用来进行公共信息服务器和数个游戏服务器间的交互,用来交换一些游戏世界级的信息(比如公会信息,跨服组队信息,跨服聊天频道等)。
6-   这里的两条连接,想表达的意思是,UserServer和GameServer的Agent是可以互换使用的,也就是玩家进入组内之后,就不需要再切换Agent。如果不怕乱套,也可以把登陆服务器的Agent也算上,这样用户整个过程里就不需要再更换Agent,减少重复连接的次数,也提高了稳定性。(毕竟连接次数少了,也降低了连不上服务器的出现几率)

在这个架构里面,GameServer实际上是一个游戏逻辑的综合体,里面可以再去扩展成几个不同的逻辑服务器,通过PublicServer进行公共数据交换。
UserServer实际上扮演了一个ServerGroup的领头羊的角色,它负责向LoginServer注册和更新服务器组的信息(名字,当前人数),并且对Agent进行调度,对选择了该组的玩家提供一个用户量最少的Agent。同时,它也兼了一个角色管理服务器的功能,发送给客户端当前的角色列表,角色的创建,删除,选择等管理操作,都是在这里进行的。而且,它还是一个用户信息的验证服务器,GameServer需要通过它来进行客户端的合法性验证,以及获取玩家选择的角色数据信息。


采用这种架构的游戏,通常有以下表现。
1- 用户必须激活一个大区,才能在大区内登陆自己的帐号。
2- 用户启动客户端的时候,弹出一个登陆器,选择大区。
3- 用户启动真正的客户端的时候,一开始就是输入帐号密码。
4- 帐号验证完成之后,进行区内的服务器选择。
5- 服务器选择完成之后,进入角色管理。同时,角色在不同的服务器里不能共享。

市面上符合上面几个表现特征的游戏相当的多,而且也不乏旷世巨作。这个架构不是一个新的架构,但是它足够经典和完善,并且逻辑简单而清晰,用来做MMORPG,或者其它网络游戏的服务器架构,是一种不错的选择。


文章出处:饭中淹 http://www.cppblog.com/johndragon/archive/2008/04/10/46768.html

 

  • 大小: 84.3 KB
分享到:
评论

相关推荐

    一种高性能网络游戏服务器架构设计

    网络游戏服务器架构设计是网络游戏开发过程中的核心部分,它直接影响到游戏的可扩展性、性能和玩家体验。通常,网络游戏会采用客户端/服务器(C/S)的架构模式,其中服务器端负责处理大量游戏逻辑、玩家交互以及维护...

    网络游戏服务器架构设计

    1. **集中式架构**:早期网络游戏常采用的一种架构方式。在这种模式下,所有的游戏逻辑和服务都集中在一台或多台中央服务器上。优点在于管理简单、易于实现;缺点是随着玩家数量的增长,服务器负载压力增大,容易...

    网络游戏服务器架构研究(-)代理服务器的简单实践

    代理服务器,也称为中间服务器,是网络通信中的一种常见架构模式。在网络游戏中,代理服务器主要承担以下职责: 1. **负载均衡**:当大量玩家同时在线时,代理服务器可以分散玩家请求到不同的游戏服务器,避免单个...

    一种可扩展的MMORPG网游分布式服务器架构方案.pdf

    文档首先分析了MMORPG网游服务器设计的关键因素,并提出了一种服务器组架构方案。该方案详细描述了服务器组内各个功能服务器的具体作用,以及服务器组工作时的几个关键流程,例如玩家登录和游戏逻辑服务器间的高效...

    百万用户级游戏服务器架构设计.doc

    随着互联网技术的不断发展,网络游戏已经成为人们娱乐生活中不可或缺的一部分。为了满足数以百万计的用户同时在线的需求,游戏服务器的设计面临着前所未有的挑战。一个良好的游戏服务器架构不仅需要具备高性能、高...

    一种新的大型通用分布式服务器架构.pdf

    ### 一种新的大型通用分布式服务器架构 #### 概述 本文介绍了一种新的大型通用分布式服务器架构的设计与实现。随着互联网技术的飞速发展及应用需求的不断扩大,传统的单体服务器架构已经难以满足大规模并发访问的...

    mangos服务器架构.pdf

    Mangos服务器架构是一种游戏服务器架构,主要用于游戏服务器的设计和实现。该架构的核心组件包括登录服、游戏服和数据库等。登录服是游戏服务器的入口,负责验证用户的账号和密码,并提供游戏世界列表供用户选择。...

    几种经典的网络服务器架构模型的分析与比较共5页.pdf.zip

    总结来说,理解并掌握这些经典网络服务器架构模型对于IT专业人士至关重要,它们是构建高效、可靠和可扩展的Web服务的基础。通过深入学习和比较,我们可以根据具体需求选择最适合的架构,以应对日益复杂的网络环境。

    几种经典的网络服务器架构模型的分析与比较共5页.pdf.z

    本文件"几种经典的网络服务器架构模型的分析与比较共5页.pdf"深入探讨了不同类型的服务器架构,并进行了对比。以下是对这些经典模型的详细说明: 1. 单体架构: 单体架构是最基础的模型,所有应用功能都集成在一个...

    AWS无服务器架构

    接下来,我们将详细阐述计算服务架构的演进、AWS无服务器架构的构成以及其使用场景。 ### 计算服务架构的演进 在云计算的发展初期,企业的应用程序通常需要物理服务器或者虚拟机来运行。随着技术的进步,容器技术...

    网络游戏-一种高安全性的网络服务器架构.zip

    网络游戏是当今互联网娱乐产业的重要组成部分,它为全球数亿用户提供了一种互动的、虚拟的世界体验。为了支撑如此大规模的在线活动,网络游戏服务器架构必须具备高度的安全性、稳定性和可扩展性。本文将深入探讨一种...

    服务器架构

    服务器架构是指将不同的硬件设备、软件程序以及网络资源有机地结合起来,以实现一定的业务目标和功能。一个好的服务器架构设计,需要考虑高性能、高可用性、可扩展性、安全性和管理性等多方面因素。 在本文中,...

    高性能服务器架构实例 服务器端加客户端

    高性能服务器架构设计是IT行业中一个至关重要的领域,特别是在互联网服务、大数据处理以及实时通信系统中。本实例聚焦于构建能够处理大量并发连接的服务器,单机测试已经达到了惊人的3万个连接,这无疑是对服务器...

    网络多人游戏架构与编程源码

    《网络多人游戏架构与编程源码》是一份深入探讨网络多人游戏开发的资源包,主要关注游戏架构设计和编程实践。这份源码包含了构建多人在线游戏所需的关键技术和方法,为开发者提供了一个学习和实践的平台。 多人游戏...

    网络多人游戏架构与编程.pdf&源码

    3. **服务器架构**:讨论不同类型的服务器架构,如主从服务器模型、P2P(对等网络)架构、分布式服务器等,以及每种架构在可扩展性、负载均衡和数据一致性方面的特点。 4. **游戏逻辑分发**:阐述如何在客户端和...

    2009 系统架构师大会PPT 应用服务器架构设计(PDF格式)

    SOA是一种软件设计范式,它强调通过松耦合的服务来构建可重用的组件,以实现跨组织的业务流程整合。在生产环境中,考虑的关键因素包括服务的可发现性、互操作性、安全性和管理。有效的SOA设计能够提高系统的灵活性,...

Global site tag (gtag.js) - Google Analytics