房间模式网络游戏的架构与设计

今天分析以下我们全栈双端Turnkey关于"房间模式"的网络游戏逻辑服的架构与设计。

1: 房间模式的逻辑服总体架构

很大一部分的网络游戏的游戏服务器都是基于房间模式来进行构建的。比如:《跑跑卡丁车》《王者荣耀》《吃鸡》《卡牌游戏》《战旗游戏》《棋牌游戏》《泡泡堂》等。这些类型游戏的特点是几个玩家在同一局游戏。这种逻辑服务的架构图如1-1所示。

(图1-1)

如上图所示,每个逻辑服实例,都是被一个线程调度,每个逻辑服实例下里面管理着很多个房间实例。房间实例可以是不同类型。通过工厂模式来构建出来不同类型房间的实例。每个房间实例中,管理一起游戏的几个玩家对象。

每个逻辑服对象,都会维护一个等待列表,等待列表中存储正在等待的玩家。不同的等级,不同的分区分成不同的等待列表。

流程1: 等待列表的玩家匹配

房间模式逻辑服务实例的第一个流程就是将等待列表上的玩家进行匹配,分配几个玩家到一个房间对象,一起游戏,上架构图1-2。

(图1-2)

游戏逻辑服启动一个定时器,来定时检查与遍历等待列表的玩家,步骤如下:

步骤1: 遍历分区z的等待列表上的每个玩家,如果没有直接结束;

步骤2: 找一个空闲的还可以容纳人的房间对象,如果没有房间,则用创建一个;

步骤3: 将玩家移出等待列表,加入到对应的房间中;

步骤4:结束检查,下次循环继续检查;

流程2: 游戏房间管理对象管理游戏进度

每个房间对象都会被游戏逻辑服的Update迭代。然后来推进整个房间的游戏进度与管理。房间一般分成几个状态:

1: Waiting状态: 等待玩家加入,与玩家游戏Ready准备;

2: Ready状态: 加入的玩家够游戏人数,并且每个玩家都是Ready状态,随时可以开始;

3: Started状态:游戏正在进行中,这个时候负责管理好游戏中的游戏规则,游戏进度迭代等;

4: Check 状态: 游戏结束,进入结算状态,结算结构,给客户端留出播放动画的时间;

5: CheckOut状态: 本局比赛结束,清理资源等处理,再重复进入Waiting状态。

2: 房间模式服务器负载扩容与运营扩容

房间模式的游戏服务器如何处理10W人同时在线甚至更多,我们这里给出初步的方案。首先我们要结合我们自己的实际需求,应用场景,来选择合适价格的服务器。这样云服务器的配置就确定了,在代码不变的情况下每台云服务器能做的事情,部署的任务也就确定了。如果服务器配置很强,我们可以在一个服务器上部署多个房间模式的逻辑服实例or线程。如果云服务器的硬件配置一般,我们可以把一部分的逻辑服(游戏分区,如新手场,高手场)部署到一台云服务器上,把另外一部分部署到另外的云服务器上。这样几台云服务器组成一个分区。当我们一个分区定下来来以后,我们就可以通过复制云服务器分区配置,复制分区部署,就可以做到运营可扩展。当一个分区的负载满了,直接在开下一个分区即可。

End

今天我们房间模式的服务器架构的内容就分享到这里来。需要资料的同学,可以来联系我们。

相关推荐
ting9452000几秒前
深度拆解|1752vc Pitch Deck Analyzer 底层技术架构与核心算法原理
人工智能·算法·架构
早睡早起不秃头&9 分钟前
【架构】- 移动机器人系统的插件化:让定位算法独立演进
算法·架构
Source.Liu15 分钟前
【A11】近期实现架构:面向 EPC 工作流企业 QQ 化的第一阶段
windows·架构·rust
海宇数据28 分钟前
零信任架构实战:基于海宇身份证OCR构建自动化证照采集网关
人工智能·架构·自动化·ocr
天远数科1 小时前
零信任架构实战:基于天远股权穿透构建自动化供应商准入合规网关
大数据·人工智能·架构·自动化
Cx330❀1 小时前
【Qt 进阶指南】详解 Qt 常用标准对话框与主窗口组件架构
开发语言·qt·ui·性能优化·架构·图形渲染
学步_技术2 小时前
具身智能—DDS通讯架构介绍
人工智能·架构·信息与通信
海宇服务2 小时前
零信任架构实战:基于海宇身份证OCR构建自动化自助终端核验网关
运维·人工智能·架构·自动化
bing.shao2 小时前
让机器从数据中生成本领:诺因Knowin通用具身智能生成式学习架构GLOW深度解析
学习·架构
EatFan3 小时前
2026 后端架构进入 AI 原生阶段:事件驱动 + 虚拟线程 + Agent 内嵌三驾马车怎么落地
人工智能·架构·agent·虚拟线程·事件驱动·ai原生·后端架构