MMO大型多人在线游戏服务器架构简述
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大型多人在线游戏服务器架构简述相关推荐
- 大型多人在线游戏服务器架构设计
由于大型多人在线游戏服务器理论上需要支持无限多的玩家,所以对服务器端是一个非常大的考验.服务器必须是安全的,可维护性高的,可伸缩性高的,可负载均衡的,支持高并发请求的.面对这些需求,我们在设计服务器的 ...
- 大型多人在线游戏服务器架构设计 - RPC封装原理
RPC框架分为客户端部分与服务端部分: RPC-client的部分又分为: (1)序列化反序列化的部分(上图中的1.4) (2)发送字节流与接收字节流的部分(上图中的2.3) 前一篇文章讨论了序列化与 ...
- 使用FLEX3开发大型多人在线游戏
使用FLEX3开发大型多人在线游戏 2009-09-02 10:07 使用FLEX3开发大型多人在线游戏 收藏 使用FLEX3开发大型多人在线游戏 大型多人在线游戏(MMO)技术已经涉足到各种软件形式 ...
- 大型多人在线游戏开发
http://book.csdn.net/bookfiles/329/index.html 书名:大型多人在线游戏开发 作者:(美)亚历山大 编,史晓明 译 来源:人民邮电出版社 出版时间:2006年 ...
- 使用Adobe Flex 3开发大型多人在线游戏
使用Adobe Flex 3开发大型多人在线游戏 2011年03月28日 大型多人在线游戏(MMO) 技术已经涉足到各种软件形式中了. 当我们还在思考MMO 时, 多人游戏已经使很多玩家能够实时连接进 ...
- 游戏开发中的问题-----摘自《大型多人在线游戏开发》
原文: 虽然在大型多人在线游戏开发过程中会遇到很多问题和挑战,但最关键的一点就是有能力编写稳健的代码.这意味着我们必须进行良好的设计而不是随意地堆砌代码,这意味着我们必须在代码中加入足够的注释以方便支 ...
- 2015在大型多人在线游戏市场报告
在线多人游戏流行了非常久. 可是在只几年的时间里.大型多人在线游戏在收入,玩家偏好,潜在观众方面发生了巨大的变化. 总体来说,MMO类型的游戏在今年年底,创造了110亿美金的收入,相当于全世界电子游戏 ...
- 用Python架设大型多人在线游戏服务端
用Python架设大型多人在线游戏服务端 用Python架设大型多人在线游戏服务端应用领域非常广泛,包括战网的暗黑破坏神,社区的QQ宠物等.该文档将帮助大家回顾2011届Python介绍的架构的缺陷以 ...
- BigWorld Pty. Ltd.是一家全球领先的大型多人在线游戏(MMOG)开发解决方案供应商...
BigWorld Pty. Ltd.是一家全球领先的大型多人在线游戏(MMOG)开发解决方案供应商.其开发套件为网络游戏提供了一整套解决方案,可大幅度提高游戏产品质量,并使用户大大降低游戏开发成本,从 ...
最新文章
- HDLBits 系列(37)此系列关于独热码的题目的疑问?
- 黑马lavarel教程---7、文件上传
- 浅谈Base64编码算法
- 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性
- (转)UIButton用法详解一
- 上市公司创新研发支出数据(2006-2018年)
- 月报总结|Moonbeam 7月份大事一览
- Qt使用OpenCv
- 飞机大战之一:让背景先动起来
- win10如何更改计算机的用户名称,win10账户名修改,详细教您win10怎么更改账户名称...
- Hacker_kid-v1.0.1(vulnhub)
- 2022亚太杯建模C题思路 : 是否全球变暖?小美赛数学建模 C题思路
- 【重磅最新】163篇ICML-2021强化学习领域论文整理汇总(2021.06.07)
- 小程序聊天对话,每次都显示最新消息(让页面自动滚动到底部)
- 计算机论文写法,计算机专业论文写作方法.ppt
- 怎么将html导入trados,关于Trados的组成和界面
- 计算机课玩的小游戏,电脑课必玩3款单机游戏,CS玩的紧张,最后一款每台电脑都有!...
- zedboard 8路拨码开关
- 2022年一级建造师通信与广电工程考试模拟试题卷及答案
- 重新发布【谷歌输入法用户词典整理工具】
热门文章
- Linux command(sar)
- mac安装旺旺启动台找不到_U盘装 MacOS 10.11系统安装教程
- MSP430F149定时器TA总结
- 电脑批量结束所有进程的方法
- 07-《Attentional Factorization Machine》
- Linux命令:ld
- 小程序switch内部加上文字_Switch每日情报:国行版《健身环大冒险》微信小程序上线...
- 三级钢筋符号怎么打?
- SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势
- YOLOv5改进:引入DenseNet思想打造密集连接模块,彻底提升目标检测性能