mmo游戏服务器架构简述

游戏思考13:关于MMORPG游戏服务器的种类及作用(以后会同步更新github,持续更新系列,目前有20个服务器说明,22/10/20) 文章目录一、game_server二、gate_server三、mail_server四、router_server五、scene_server六、guild_server七、friend_server八、team_server九、activity_server十、trade_server十一、service_manager_server十三、account_server十四、cache_server十五、dbcache_server十六、dbmanager_server十七、global_server十八 阅读详情

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游戏服务器都是采用这种架构。

游戏服务端开发浅谈(一) 去年从传统软件公司辞职,下定决心转互联网,由于对游戏的热爱,去了一家游戏公司,待了将近10个月,参与开发了一款动作卡牌手游,游戏最终也上线了。最近抽空写写过去对游戏后端的一些感想吧。最近又去另外一家游戏公司,参与开发一款MMO手游。准备开始从动作卡牌手游谈到MMO手游,也算是对游戏开发的一些感悟。 动作卡牌游戏,相对而言,时延性要求没有那么高,所以架构没有那么复杂,不过也是值得学习的。本文重点介绍卡牌游戏的架构。 整个后端架构分成5个主要模块,后面新增2个模块,主要用于跨服对战。 整个游戏的. 阅读详情

相关推荐

C++传奇源码解析:从MMO架构到游戏服务器核心模块实战

网络游戏服务器开发是分布式系统与实时通信技术的典型应用场景,其核心在于构建高并发、低延迟、稳定可靠的服务架构。从技术原理层面,这通常涉及多进程/多线程模型、异步I/O处理、自定义通信协议以及高效的数据结构与算法设计。在工程实践中,经典的C/S架构通过网关服务器、游戏逻辑服务器、数据库代理等分立进程实现职责分离,利用消息驱动机制协调模块间通信,并借助A*寻路、时间轮定时器、对象池等关键技术保障游戏世界的流畅运行与性能表现。对于希望深入理解网络编程和复杂系统设计的开发者而言,研究一套完整的商业游戏源码,如基于C

weixin_34408624的博客 362

Linux c++服务器开发 游戏服务器

mmo游戏

m0_65885101的博客 2858

从经典MMO源码剖析游戏服务器核心架构与设计思想

游戏服务器架构是构建大型多人在线体验的技术基石,其核心在于高效处理高并发连接与实时状态同步。从原理层面看,经典设计多采用事件驱动模型配合I/O多路复用技术,将网络I/O与业务逻辑解耦,以此支撑海量玩家同时在线的需求。其技术价值体现在通过精细的进程拆分(如登录服、游戏服、数据库代理)与状态管理,在有限的硬件资源下实现稳定、可扩展的虚拟世界。在应用场景上,无论是MMORPG的玩家交互、状态同步,还是实时战斗计算,都依赖于一套健壮的底层框架。本文以一份经典的C++服务端源码为蓝本,深入拆解其多进程分区服架构与事件

weixin_34162228的博客 377

Mmo游戏后端架构

Mmo游戏后端架构

m0_60259116的博客 1186

关于游戏架构设计的一些整理吧

在单位设计上必须冲头到尾贯彻面向对象的“继承”观念 先设计基础单位A ,再在之上扩展到所有的单位, 也就是说,所有的普通单位都可以追溯到一个起源的对象, 否则代码量会让你想死 然后就能获得所有的单位和建筑物了 ----------------------------------------------------------------------- 地图寻

yolo模型训练找我,AI游戏合作找我 4万+

机器学习-深嵌交叉验证(Nested Cross-Validation)

Section I: Code and Analyses 第一部分:代码 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from...

Santorinisu Blogs 2716

MMO游戏服务器从零开发(架构篇)

目录: MMO游戏服务器从零开发(架构篇) MMO游戏服务器从零开发(架构篇)- 网络部分 MMO游戏服务器属于大型多人在线游戏服务器,负载,稳定,效率(包括反馈延迟和开发效率)是这种服务器基本要求。 本人从10年入行至今一直从事MMO游戏的研发和架构设计工作,对此类服务器有一些理解和见解。下面分享给想了解游戏服务器开发的朋友们。这些是本人这些年来对MMO服务器架构设计的总结的分享。本人会...

alterhz的博客 3万+

【课程设计】TCP/IP 应用环境中服务器的部署与实现

本项目旨在通过搭建一个虚拟网络环境,实现软路由系统的配置和服务器的搭建与测试。具体包括安装虚拟机 VMWare Workstation,安装 Windows Server 2003 操作系统,配置软路由系统(包括双网卡安装、协议配置和测试),以及搭建并测试 DHCP 服务、DNS 服务、WWW 服务、FTP 服务和 SMTP/POP3 服务。

weixin_74907236的博客 1524

基于C++的高性能MMO游戏服务器深度架构解析

本文详细介绍了高性能游戏服务器架构的设计与优化策略。系统采用分层式架构,包括网络IO层、协议处理层、业务逻辑层和数据访问层,各层均具备高QPS能力和低延迟特性。网络通信通过双协议混合架构(TCP/UDP)进行优化,动态协议切换和消息分帧处理提升了传输效率。并发模型采用多级线程池设计,结合锁优化实践,确保高并发场景下的性能稳定。数据持久化方案基于SQLite深度优化,通过WAL模式、内存映射I/O等提升数据库性能。运维监控体系包括三维监控和智能诊断系统,保障系统稳定运行。性能压测数据显示,系统在单节点和集群扩

weixin_65409651的博客 1792

家庭网络中,路由器和交换机的连接顺序

它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。

m0_74075744的博客 1万+

全国充电站分布数据

CnOpenData推出的充电站数据覆盖全国34个省份的3万条数据,包含充电站名称、省份名称、省份代码、商圈、经纬度等地理信息以及商业类型、评分、消费等衍生信息,能为城市规划、环境科学、市场分析、技术发展和社会经济研究等多个领域提供宝贵的数据支持。

Sunny9qx的博客 4030

MMO基础游戏服务器架构(一)

/BaseConnection是我自己封装的一个连接类,每一条消息都有一个Protobuf的IMessage和Baseconnection。Log.Information("开始监听端口:" + endPoint.Port);//当有人连入的时候。Log.Information("开始监听端口:" + endPoint.Port);//当有人连入的时候。//我的日志系统是使用Serilog的成熟链式调用的日志框架。if (serverSocket == null) //避免触发空引用异常。

Moon_Star的博客 1133

PlutoSDR在matlab中的环境配置(包括驱动和硬件支持包)

双击下载到的驱动,除了点击接受协议和设置安装路径,其他只要点击下一步或者安装即可。登录或者注册你的账号,选择你的matlab版本(这里我的是2023b),点击下一步。设置安装路径,并选择我接受,点击下一步,即可安装完成,并在安装路径中得到。完成后,打开设备管理器,在端口和通用串行总线设备一栏,即可看见下图。点击进入,选择相应的系统安装包,这里我选择的Windows。可看到我们要安装的Pluto支持包,安装即可。右击桌面matlab,选择打开文件所在位置。右上角搜索pluto,选择并点击下一步。

weixin_53160338的博客 4867

MMO游戏服务器从零开发(架构篇)- 网络部分

目录: MMO游戏服务器从零开发(架构篇) MMO游戏服务器从零开发(架构篇)- 网络部分 游戏服务器的网络分为2部分: 外网通信:服务器与客户端进行的网络数据交互。 对于使用java外网通信毋庸置疑的选择Netty。对于游戏服务器而言,Netty的外网通信只存在于网关部分。其他逻辑、数据、等仅使用内网通信组件(ZeroMQ)即可。 线程划分: Netty启动需要一个线程进行监...

alterhz的博客 4427

单周期CPU设计【Verilog】

第一章 单周期CPU的设计原理 为实现单周期CPU,本文首先研究了单周期CPU的相关理论和工作原理。本章首先简要介绍单周期CPU的基本概念,然后对CPU的工作原理进行简要分析,以便为单周期CPU的设计和开发提供理论基础。 1.1 单周期CPU概述 中央处理器,即CPU,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。在CPU内部,电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一

醉酒、冰城外 2万+

PSCAD学习笔记(1)Project Settings(重点snapshot设置)

若不勾选,则横坐标为实际时间2-7s,故障显示在第3s发生。图片中时间坐标轴显示为0-5s,故障时刻显示为第1s,即0-1s展示系统稳态,1-5s展示系统发生故障后的暂态响应,如何通过快照文件实现?勾选该项后,使用快照文件启动仿真会将仿真起始时间强制设置为0s,反之不勾选则依据快照文件保存的时间轴继续(即坐标为实际时间)。如果已有的快照文件保存的是0s至5s的仿真内容,则仿真运行时间从5s开始,到10s结束。如果已有的快照文件保存的是0s至2s的仿真内容,则仿真运行时间从2s开始,到7s结束;

gwenh的博客 7345

php检测目标服务器是否宕机_谈谈基于微服务的MMO游戏服务器架构

前言在十年前的网络游戏领域,大部分服务器的架构设计通常都是基于Gate1..N-Game1..N-World1这样的三层架构模式。这样带来的问题就是随着业务复杂度的增加,World需要管理的功能会越来越多,最后导致World成为系统的负载瓶颈并且极其庞杂难以维护。随着时代的发展,近年来微服务的概念渐渐风靡起来,我们游戏服务器架构的设计也因此可以通过借鉴微服务的思想来优化整个系统的设计。正文1. 为...

weixin_42298922的博客 170

手把手教你学PCIE--所有 PF(Physical Function)共同管理和分配 VF

但具体如何分配和使用 VF 取决于硬件设计、驱动程序配置以及实际应用场景。

MHD0815的博客 1463

GoWorld最佳实践:大型MMO游戏服务器架构设计与实现经验分享

GoWorld是一款基于Golang开发的**分布式游戏服务器引擎**,专为大型多人在线游戏(MMO)设计。它提供了完整的**游戏服务器架构**解决方案,支持热重载、分布式部署和实体框架,帮助开发者快速构建高性能、可扩展的在线游戏服务器。 ## 🎯 为什么选择GoWorld游戏服务器引擎? GoWorld游戏服务器引擎为开发者提供了一套完整的解决方案,特别适合需要处理大量并发玩家的MMO游戏

gitblog_00965的博客 658

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

构建企业级MMO游戏服务器的现代化架构方案

在游戏服务器开发领域,传统的单体架构往往面临扩展性差、维护成本高和部署复杂等挑战。AzerothCore-WoTLK作为一个完全开源且模块化的MMO解决方案,通过现代化的架构设计为开发者提供了构建企业级游戏服务器的技术框架。本文将深入探讨该项目的技术架构、模块化设计以及容器化部署方案,为技术团队提供架构选型的参考依据。 ## 微服务架构与容器化部署模式 AzerothCore采用微服务架构设计

gitblog_00573的博客 692

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MMO基础游戏服务器架构(三):多线程消息队列

Channel是核心数据结构,线程安全的数据分发,ConcurrentDictionary,线程安全的字典用于处理消息回调,Channel作为消息队列的数据结构载体,CancellationTokenSource用于处理多线程Task的异常终止,workCount是此时工作的线程数量,使用原子操作来保证线程安全。使用值类型Struct降低GC。

Moon_Star的博客 783

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MMO基础游戏服务器架构(一):c#异步网络连接全流程

必须传入一个字符串类型的host的IP网址(通常为ipv4),网络端口号码 port,重载了构造函数,允许传入一个网络同时接入客户端数量。,后续可能会重构为效率更高的可靠upd库 - kcp,网络客户端信息接收功能封装在类 - TcpServer中。采用的是异步Socket连接的Tcp连接方式,异步运行能更好的利用线程资源,降低线程空转和线程阻塞带来的卡顿。用于处理当客户端Socket真正连接的时候。监控对象,同时排队连接的最大传入连接数。(默认100个),bool类型的字段。,Socket套接字。

Moon_Star的博客 498

大型MMO-SNS类游戏服务器架构

SNS类型的游戏和RPG类的网游有一些不同的特点,而这些特点会导致这类游戏的后台架构和RPG网游的后台架构存在一些区别。 SNS类型的游戏一般有以下的特点: (1)所有的玩家角色可能存在交互         SNS类型的游戏一个玩家角色会找他的好友或者其他任何一个毫无关系的玩家角色进行某种逻辑上的互动。 (2)这类游戏玩家角色一般是看不见的 (3)玩家角色在线或离线状态比较模糊

飞翔的大象 650

游戏服务器架构通识

前言这节讲座里,我们将从游戏服务器发展的简单历程出发,鸟瞰一下目前大多数的游戏服务器架构。这里尽可能的避免陷入细节的技术问题,而是从技术进化的结果状态,反推原始问题是什么。希望能通过这个过程,解释清楚游戏服务器是在解决什么问题,痛点到底在哪里。一、早期网游服务器。蛮荒时期的游戏服务器框架我们一笔带过,那时的游戏服务器和一个小Web服务没有区别。蛮荒时代的服务器只负责存储玩家账号、数据、转发场景内其他玩家的行为。很多移动、使用技能等关键逻辑在服务器上根本没有。随意就能用变速齿轮改变游戏速度。从《传奇》的时代开

神棍之路 3532

现代MMO架构的模块化革命:AzerothCore如何重构游戏服务器开发范式

在游戏服务器开发的演进历程中,传统单体架构长期占据主导地位。开发者们往往陷入这样的困境:每次功能扩展都意味着对核心代码的侵入式修改,系统升级变成一场充满不确定性的冒险,而团队协作则受制于复杂的代码耦合关系。AzerothCore的出现,为这一领域带来了根本性的范式转变。 ## 架构设计的哲学转变:从单体到微服务化模块 AzerothCore的设计哲学建立在"可插拔架构"这一核心理念之上。与传统

gitblog_01040的博客 634
上一篇: cpu核心数,双核,四核,8核
下一篇: 攻击伤害的计算
Ftworld21
博客等级 码龄14年 150粉丝 527原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值