mmo服务器架构总体来说相对比较复杂,由多组服务器进程组成。而这些服务器进程大致分为两类,一类是平台服,另一类是普通服。

一、平台服

平台服务器一般都用于处理全局相关功能,涉及玩家登陆,角色唯一性认证,跨区,全区排行榜等。主要包括以下几种:

  • flserver: 登陆服务器进程,玩家登陆时首先连接flserver服务器。

  • dbaccessserver: 数据库访问中间服务器, flserver会连这个服

  • roleregserver: 角色唯一性验证服务器,验证角色名是否重复。

  • rolechangeserver: 转区服务器进程,玩家跨区、旅游等需要通过此服务器进行中转,一般来说。

  • globalserver: 全局服务器,处理所有区服的全局信息,比如处理所有区服的主播排名等。

  • idipserver: 一个管理服务器,用来给玩家发邮件,补偿等特殊操作。

二、普通服

普通服一般都是涉及单个区服相关的,和其他区服往往是独立开来的,一般包括:

  • gatewayserver:网关服务器进程, 与flserver服务器断开连接后,连接gatewayserver,gatewayserver相当于游戏客户端与mmo服务器之间交换数据的桥梁,游戏客户端与mmo服务器中其他服务器进程交互都是通过gatewayserver进行转发的。网关服务器收到玩家的消息后,根据消息类型转发给对应的服务器进程,同理各个服务器进程也是先把消息发给网关服务器,然后再由网关服务器发给玩家。

  • recordserver:存储服务器进程, 通过该服务器进程进行数据持久化操作,比如把数据存到mysql数据库。

  • sceneserver:场景服务器进程, mmo服务器中主要的服务器进程,承担了大量的服务器端逻辑操作,比如玩家在游戏地图中移动,跳转地图,玩家PK,与npc的交互,怪物的攻击,移动等等。在场景服务器进程中存在一个场景玩家对象,该玩家对象身上又存了很多与玩家相关的数据与操作,比如装备及其装备的打造,升级;坐骑及其参战,休息;图鉴及其激活,升级等。

  • sessionserver:会话服务器进程, 为了使mmo游戏能够支持更多玩家同时在线,sceneserver服务器进程一般有多组,从而分担单个sceneserver服务器所带来的压力。多个sceneserver服务器虽然能够支持更多玩家同时在线,但同时也使sceneserver服务器进程变得更加复杂,由此催生出了sessionserver,简单来说,sessionserver就是用来管理sceneserver服务器的。

  • functionserver:功能服务器进程, 由于存在多个sceneserver服务器,那么在不同的sceneserver服务器进程中,数据可能会不一致或者说想要在不同的scenesever中做到数据一致实现起来会比较复杂,比如说排行榜功能,假如想统计全服所有玩家的等级排名,只需要把各个sceneserver上玩家等级数据发到functionserver上,在functionserver上统一排名即可,倘若放在sceneserver上做排名就会变得复杂很多。所以functionserver一般用来处理全局的数据或者全局相关功能。

  • voiceserver:声音相关服务器进程, 处理声音相关功能。

  • mailserver:邮件相关服务器进程, 处理邮件相关功能。

  • imageserver:完成图像相关验证的服务器进程。

  • superserver:管理服务器进程, 用来管理上述所有普通服务器,同时也是处理对外区服相关操作的桥梁,一般需要连接rolechangeserver,从而完成转区操作。

上述服务器进程是mmo服务器的基本框架,很多mmo游戏服务器都是采用这种架构。

MMO大型多人在线游戏服务器架构简述相关推荐

  1. 大型多人在线游戏服务器架构设计

    由于大型多人在线游戏服务器理论上需要支持无限多的玩家,所以对服务器端是一个非常大的考验.服务器必须是安全的,可维护性高的,可伸缩性高的,可负载均衡的,支持高并发请求的.面对这些需求,我们在设计服务器的 ...

  2. 大型多人在线游戏服务器架构设计 - RPC封装原理

    RPC框架分为客户端部分与服务端部分: RPC-client的部分又分为: (1)序列化反序列化的部分(上图中的1.4) (2)发送字节流与接收字节流的部分(上图中的2.3) 前一篇文章讨论了序列化与 ...

  3. 使用FLEX3开发大型多人在线游戏

    使用FLEX3开发大型多人在线游戏 2009-09-02 10:07 使用FLEX3开发大型多人在线游戏 收藏 使用FLEX3开发大型多人在线游戏 大型多人在线游戏(MMO)技术已经涉足到各种软件形式 ...

  4. 大型多人在线游戏开发

    http://book.csdn.net/bookfiles/329/index.html 书名:大型多人在线游戏开发 作者:(美)亚历山大 编,史晓明 译 来源:人民邮电出版社 出版时间:2006年 ...

  5. 使用Adobe Flex 3开发大型多人在线游戏

    使用Adobe Flex 3开发大型多人在线游戏 2011年03月28日 大型多人在线游戏(MMO) 技术已经涉足到各种软件形式中了. 当我们还在思考MMO 时, 多人游戏已经使很多玩家能够实时连接进 ...

  6. 游戏开发中的问题-----摘自《大型多人在线游戏开发》

    原文: 虽然在大型多人在线游戏开发过程中会遇到很多问题和挑战,但最关键的一点就是有能力编写稳健的代码.这意味着我们必须进行良好的设计而不是随意地堆砌代码,这意味着我们必须在代码中加入足够的注释以方便支 ...

  7. 2015在大型多人在线游戏市场报告

    在线多人游戏流行了非常久. 可是在只几年的时间里.大型多人在线游戏在收入,玩家偏好,潜在观众方面发生了巨大的变化. 总体来说,MMO类型的游戏在今年年底,创造了110亿美金的收入,相当于全世界电子游戏 ...

  8. 用Python架设大型多人在线游戏服务端

    用Python架设大型多人在线游戏服务端 用Python架设大型多人在线游戏服务端应用领域非常广泛,包括战网的暗黑破坏神,社区的QQ宠物等.该文档将帮助大家回顾2011届Python介绍的架构的缺陷以 ...

  9. BigWorld Pty. Ltd.是一家全球领先的大型多人在线游戏(MMOG)开发解决方案供应商...

    BigWorld Pty. Ltd.是一家全球领先的大型多人在线游戏(MMOG)开发解决方案供应商.其开发套件为网络游戏提供了一整套解决方案,可大幅度提高游戏产品质量,并使用户大大降低游戏开发成本,从 ...

最新文章

  1. HDLBits 系列(37)此系列关于独热码的题目的疑问?
  2. 黑马lavarel教程---7、文件上传
  3. 浅谈Base64编码算法
  4. 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性
  5. (转)UIButton用法详解一
  6. 上市公司创新研发支出数据(2006-2018年)
  7. 月报总结|Moonbeam 7月份大事一览
  8. Qt使用OpenCv
  9. 飞机大战之一:让背景先动起来
  10. win10如何更改计算机的用户名称,win10账户名修改,详细教您win10怎么更改账户名称...
  11. Hacker_kid-v1.0.1(vulnhub)
  12. 2022亚太杯建模C题思路 : 是否全球变暖?小美赛数学建模 C题思路
  13. 【重磅最新】163篇ICML-2021强化学习领域论文整理汇总(2021.06.07)
  14. 小程序聊天对话,每次都显示最新消息(让页面自动滚动到底部)
  15. 计算机论文写法,计算机专业论文写作方法.ppt
  16. 怎么将html导入trados,关于Trados的组成和界面
  17. 计算机课玩的小游戏,电脑课必玩3款单机游戏,CS玩的紧张,最后一款每台电脑都有!...
  18. zedboard 8路拨码开关
  19. 2022年一级建造师通信与广电工程考试模拟试题卷及答案
  20. 重新发布【谷歌输入法用户词典整理工具】

热门文章

  1. Linux command(sar)
  2. mac安装旺旺启动台找不到_U盘装 MacOS 10.11系统安装教程
  3. MSP430F149定时器TA总结
  4. 电脑批量结束所有进程的方法
  5. 07-《Attentional Factorization Machine》
  6. Linux命令:ld
  7. 小程序switch内部加上文字_Switch每日情报:国行版《健身环大冒险》微信小程序上线...
  8. 三级钢筋符号怎么打?
  9. SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势
  10. YOLOv5改进:引入DenseNet思想打造密集连接模块,彻底提升目标检测性能