游戏思考13:关于MMORPG游戏服务器的种类及作用(以后会同步更新github,持续更新系列,目前有20个服务器说明,22/10/20)
文章目录
- 1)平台服
- 六、guild_server工会服务器
- 七、friend_server好友服务器
- 八、team_server队伍服务器
- 九、activity_server活动服务器
- 十、trade_server交易服务器
- 1)简单定义
- 2)服务器备注
- 3)逻辑流程
- 十一、service_manager_server服务管理服务器
- 十三、account_server账号服务器
- 十六、dbmanager_server管理dbc的中转服务器
- 十七、global_server全局服务器
- 十八、match_server匹配服务器
- 十九、world_server世界服务器
- 二十、idip_server 补偿管理服务器
- 2)普通服
- 一、game_server逻辑服务器
- 二、gate_server网关服务器
- 三、mail_server邮件服务器
- 四、router_server路由服务器
- 五、scene_server场景服务器
- 十四、cache_server缓存服务器
- 1)简单定义
- 2)服务器备注
- 十五、dbcache_server数据库管理服务器
- 1)简单定义
- 2)服务器备注
- 3)相关思考
1)平台服
- 平台服务器定义
平台服务器一般都用于处理全局相关功能,涉及玩家登陆,角色唯一性认证,跨区,全区排行榜等。主要包括以下几种:
六、guild_server工会服务器
七、friend_server好友服务器
八、team_server队伍服务器
- 定义
负责管理玩家队伍的数据的服务器
九、activity_server活动服务器
十、trade_server交易服务器
1)简单定义
用于管理限制交易会所、拍忙行的数据,商店的购买等数据
2)服务器备注
①个人每日限制、每周限制、终身限制放在逻辑服务器gs处理
②拍卖行等全区统一限制的东西,放在交易服处理
3)逻辑流程
①先判断有没有购买资格、有没有钱,符合不符合开商店的条件
②先扣钱,再触发购买的行为树节点事件
十一、service_manager_server服务管理服务器
- 定义
用于服务器的管理,重启和从共享内存restore恢复,当注册的服务器节点挂了,负责拉起相关的服务器节点
十三、account_server账号服务器
- 简单定义
登陆服务器进程,玩家登陆时首先连接account_server服务器。
十六、dbmanager_server管理dbc的中转服务器
- 简单定义
管理多个dbcache服务器,用于往mysql存数据,后期会根据一定规律将玩家、工会数据按照地域或创建先后顺序分配到不同的dbcache_server去存储
十七、global_server全局服务器
- 简单定义
全局服务器,处理所有区服的全局信息,比如处理所有区服的主播排名等
十八、match_server匹配服务器
- 定义
用于游戏的匹配业务
十九、world_server世界服务器
- 简单定义
管理多个逻辑服务器
二十、idip_server 补偿管理服务器
- 简单定义
idipserver:一个管理服务器,用来给玩家发邮件,补偿等特殊操作。
2)普通服
- 普通服务器定义
普通服一般都是涉及单个区服相关的,和其他区服往往是独立开来的,一般包括:
一、game_server逻辑服务器
- 定义
逻辑服务器,一般的需要即时反馈的逻辑放在这里处理(战斗相关的逻辑都可以放在这里) - 与其他服务器的区别
后期可能根据场景的不同或分线的不同,开多个逻辑服务器负载均衡游戏玩家在线的压力
二、gate_server网关服务器
- 简单定义
网关服务器进程,gatewayserver相当于游戏客户端与mmo服务器之间交换数据的桥梁,游戏客户端与mmo服务器中其他服务器进程交互都是通过gatewayserver进行转发的。网关服务器收到玩家的消息后,根据消息类型转发给对应的服务器进程,同理各个服务器进程也是先把消息发给网关服务器,然后再由网关服务器发给玩家。
三、mail_server邮件服务器
四、router_server路由服务器
五、scene_server场景服务器
- 简单定义
场景服务器进程,mmo服务器中主要的服务器进程,承担了大量的服务器端逻辑操作,比如玩家在游戏地图中移动,跳转地图,玩家PK,与npc的交互,怪物的攻击,移动等等。在场景服务器进程中存在一个场景玩家对象,该玩家对象身上又存了很多与玩家相关的数据与操作,比如装备及其装备的打造,升级;坐骑及其参战,休息;图鉴及其激活,升级等。 - 链接
传送门
十四、cache_server缓存服务器
1)简单定义
缓冲服务器,用于给客户端推送不同逻辑服务器上的数据,例如各种人物状态数据等
2)服务器备注
1)libevent配合redis完成异步命令输送和回调结果
十五、dbcache_server数据库管理服务器
1)简单定义
存储服务器进程,通过该服务器进程进行数据持久化操作,比如把数据存到mysql数据库。
2)服务器备注
1)mysql集群注意限频单database单表20M每秒输送数据,否则mysql有可能被打崩
3)相关思考
①有遇到面试说dbcache是dbmanager的子进程:
1、但是如果是子进程的话,那么这样只能部署在同一台机器上,而且得用到waitpid这个接口,要么屏蔽sigchld这个信号,要么用孙子进程去做,否则至少得阻塞1到2秒
2、但是如果不用子进程,用中心服务器去扩缩容的时候,得用脚本去启动这个进程,然后这个进程再去自动上报给DBManager,这样可以部署在不同物理机,但是1、增加了网络延时,2、需要对这个进程进行验证
游戏思考13:关于MMORPG游戏服务器的种类及作用(以后会同步更新github,持续更新系列,目前有20个服务器说明,22/10/20)相关推荐
- 补充游戏思考13:游戏服务器杂谈(主要讲mmorpg,年更系列,未完待续10/20)
文章目录 一.冒险岛状态同步数据的举例说明 1)基于帧的人物状态同步 2)基于预言的人物状态同步(插值计算) 3)基于客户端的怪物状态同步 4)基于服务器的怪物状态同步 一.冒险岛状态同步数据的举例说 ...
- 虚拟人生服务器mcbbs,[创世|管理|传送][SCT]Multiverse-Core —— 多世界插件 [持续更新] [1.17-1.4.5]...
config.yml .. # ------------------------------------------------------------------------- # # MV2的 ...
- springboot项目和云服务器,以及域名的申请和使用(后续持续更新)
来记录一下做一个springboot项目以及上传至云服务器上过程 新建并发布项目 注册域名: 域名备案 发现的问题: 在阿里云上面搞了一台个人服务器,当时是双十一打折买的,229好像. 有了服务器当然 ...
- 几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。本次上机要求编写一个简化的创建游戏角色的程序。
一:题目分析 1.功能描述 几乎所有的RPG游戏(一种源自<龙与地下城>的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色.本次上机要求编写一个简化的创建游戏角色的程序. 2.游戏 ...
- RPG角色生成器 1.功能描述 几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。要求编写一个简化的创建游戏角色的程序。 2.游戏角色应
RPG角色生成器 1.功能描述 几乎所有的RPG游戏(一种源自<龙与地下城>的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色.本次上机要求编写一个简化的创建游戏角色的程序. 2. ...
- 使用 Go 语言开发大型 MMORPG 游戏服务器怎么样?(非常稳定、捕获所有异常、非常适合从头开始,但大公司已经有现成的C++框架、所以不会使用)
使用 Go 语言开发大型 MMORPG 游戏服务器怎么样?(非常稳定.捕获所有异常.非常适合从头开始,但大公司已经有现成的C++框架.所以不会使用) 参考文章: (1)使用 Go 语言开发大型 MMO ...
- 游戏服务器技能系统,MMORPG游戏服务器技能系统设计【上篇】 - 踏踏实实,认真工作 - CSDN博客...
MMORPG游戏服务器技能系统设计[上篇] 收藏 本文主要从一个程序员的角度阐述一下mmorpg服务器技能系统的程序框架设计,最近在做这个,就当做一个总结吧,其中某些概念可能没有解释清楚,欢迎大家拍砖 ...
- 论MMORPG游戏服务器架构
就我见到过的MMO服务器架构做一个总结吧. 第一种,靠一个matchmaking服务器来做负荷均衡,这种架构比较适合大厅游戏或者副本游戏.方法是用一个服务器作为登陆服务器,所有玩家请求连接的要求都被该 ...
- mmorpg 游戏服务器设计
MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要 服务器的基本设置 在大型网络游戏里,通常设计为C/S结构,客户端不再 ...
最新文章
- 2022-2028年中国充电桩行业深度调研及投资前景预测报告(上下卷)
- 在ASP.NET 中实现单点登录
- java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解
- icon-font与svg
- android三种载入图片方式
- c++面试准备之螺旋队列
- 拆包--缓冲区查找包头及包尾偏移
- java.lang.object 下载_java.lang.Object
- string和StringBuilder的选择
- java案例代码8--最终要随机输出一组出来做为排名
- chrome浏览器插件--让你的谷歌浏览器舒适度提升1800%的插件(程序员推荐)
- 【Oracle Database】Oracle GoldenGate (single-single)
- 京东广告受众基础属性预估
- css的盒子模型与定位机制解读随记
- distribute by控制分区文件数
- Python的Mann-Kendall非参数检验和计算Hurst指数
- 小A与欧拉路 (树加边求最小权值欧拉路+树的直径)
- STM32 汇编程序——串口输出 Hello world
- LinuxMint使用中文输入法
- ubuntu 20.04 安装 免费 Beyond Compare对比工具
热门文章
- IPhone、Windows Mobil、Symbian、Android移动开发前景分析
- 解决VS2008 开发windows mobil及智能设备项目生成速度慢的问题
- TensorFlow基础(1)特点安装基本用法
- Spark Streaming 图片处理案例介绍
- 基于C语言的9*9数独生成器(回溯法)
- 既然心里活着的还是那个年轻人,我们申请跟未来的“小程序员”们一起过个节...
- 苹果7更新系统后显示无服务器,苹果手机备份还原之后显示服务器問題
- 【FPGA教程案例10】基于Verilog的复数乘法器设计与实现
- java制作我的世界_Minecraft Java版整合包制作教程
- vue 判断字符串是否是英文_vue rules以及原生js判断字符串是否为正整数(正小数)...