百万级mmorpg游戏服务器架构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题和思考
确实解决了服务器场景管理的问题,但是客户端每 次切换一次场景都要重新跟scene发起一次连接, 这样是不是太低效了? 客户端与服务器重新建立连接比较耗时(要再次3 次握手,身份验证等),容易导致卡号(连接不上 新scene),还可能导致复制装备等问题。
不用重复连接scene的服务器架构
百万级
MMORPG游戏服务 器架构
L/O/G/O
什么是MMORPG
MMORPG的典型特征有哪些?
有哪些经典的MMO?
Internet Client
Tconnd Server Environment
Tconnd
Tconnd
Tconnd
Tconnd
Tversion Tdir Tacc Chat
问题和思考
上面这个也能叫服务器架构? 为什么和之前的那副架构图相差这么大?
Login模块分离
一般我们在接入游Βιβλιοθήκη Baidu服务器时,需要一个账户 和密码,验证通过后才能进入。
简单的游戏分区架构
为了接入更多的用户来玩游戏,我们要开放更 多游戏区(游戏服务器)。
问题和思考
上面服务器架构合理吗?不合理为什么? 我们有更好的办法吗?
socket tbus shm
所谓服务器的架构,通俗的讲就是如何将服 务器各部分合理的安排,以实现用户所有的功 能需求。所以架构本来无所谓正确与错误;当 然优秀的结构更有助于系统的搭建,对系统的 可扩展性及可维护性也有更大的帮助。
从零开始—最简单的架构
对于一个最简单的游戏服务器来说,它只需要 能够接受来自客户端的连接请求,然后处理客 户端在游戏世界中的移动及交互(即游戏逻辑 的处理)即可。
center和client直接连接,center转发client和scene的 消息,这样client就不需要和scene重复连接; center还负责转发scene之间的数据,如:client从 scene1切换到scene2.
问题和思考
Center真是中流砥柱啊,但是它能承载多少 玩家?这样Center不就是这个架构的瓶颈了 吗? 我们既想不要频繁的改变连接,又想有一个唯 一的入口,同时还希望这个入口的负载不要太 大,以至于接受不了多少连接。
带有网关的服务器架构
经过分析发现center包含,逻辑处理和转发client与scene之间消息的 功能,既然这两块没有联系我们可以将client与scene模块独立出来。 Gateway仅仅用来处理client与后台logic server的连接,可以大幅提 高client的连接数量。
问题和思考
服务器架构现在应该很高效了吗?还能想到影响那些地 方会影响服务器性能的吗? 游戏中移动、聊天、技能、物品、任务、怪物、AI等 应该放在一个scene服务器上吗? 单个scene服务器能处理这么多的事情吗? 好吧,让我们再来看下开始的图吧,你会看到很多熟悉 的东东
Internet Client
添加了多个用户的服务器架构
login不在占用logic的资源,使logic运行更 高效;
添加了多个用户的服务器架构 +DB
问题和思考
玩家游戏中的数据应该怎么办呢?应该与 Auth共用DB吗? 让我们来看下游戏的logic服务器吧
独立场景的服务器架构
游戏不应该只有1个场景,所有的场景不应该都放在logic 中; 玩家在场景中的切换,实际上是玩家的数据在场景中的切换。
Tconnd Server Environment
Tconnd
Tconnd
Tconnd
Tconnd
Tversion Tdir Tacc Chat
QQ Vas key Agent
Tcenterd
Torm(tacc)
World
Tagent
Torm(mail)
Tmail
GamePlay_1
Torm(char) GamePlay_2 MySQL(master) Tlogd MySQL(slave) Terrain
问题和思考
如果我们需要添加new scene怎么办?要通 知所有与new scene相联系的scene我要加 入了吗? 当scene变多的时候我们应该怎么去协调各个 scene间的工作?我们难道不应该引入一个管 理者吗?
添加中心控制器的服务器架构
每个scene只需要与center连接; Center来协调控制各个scene,方便new scene的添加。
QQ Vas key Agent
Tcenterd
Torm(tacc)
World
Tagent
Torm(mail)
Tmail
GamePlay_1
Torm(char) GamePlay_2 MySQL(master) Tlogd MySQL(slave) Terrain
socket tbus shm
什么是游戏服务器架构
相关文档
最新文档