
客户机-服务器架构
客户端-服务器架构让每位玩家都连接到一个掌控比赛状态的中央服务器,而不是彼此相连。服务器接收输入、推进模拟并广播结果。运行服务器需要资金,但它可以帮助任何类型的游戏对每位玩家而言都更公平、更一致且更安全。
又称
客户端/服务器架构,客户端-服务器模型,客户端/服务器
,
客户端-服务器游戏循环是如何工作的?
客户端-服务器(Client-server)描述了网络的形态。每个玩家的游戏(即客户端)向服务器打开一个连接,而不是与其他玩家连接。服务器保存比赛状态:这是每个客户端都必须遵循的唯一事件版本。
循环的一个周期如下所示:
每个客户端读取其玩家的输入并将其发送给服务器。
服务器收集自上次更新以来到达的输入。
它推进模拟过程:移动、物理、命中、得分。
它将新状态发送回每个客户端。
每个客户端绘制该状态,然后循环重复,通常一秒钟重复数十次。

这种形态并没有说明哪台机器充当服务器:是在监听服务器上运行的一个玩家的游戏,还是一个没有人玩的进程,即专用服务器。两者都是客户端-服务器模式。服务器决定多少内容是一个独立的问题,在权威服务器中有所讨论。
为什么客户端-服务器架构的游戏需要进行预测和插值?
将所有内容通过一个点进行路由具有固有的成本:在服务器确认之前,每个操作都会进行一次往返。在《雷神之锤》(Quake,1996年)中,约翰·卡马克(John Carmack)写道,他的设计“针对的是 <200毫秒的连接延迟”,而调制解调器玩家看到的“延迟最少在 300 毫秒以上”(开发日志,1996年8月2日)。他对 QuakeWorld 的修复方案是让客户端在服务器的回复到达之前,先预测其自身移动的结果。
这一修复方案成了一种模式。现在许多客户端-服务器游戏都在该架构之上叠加了三种技术:
客户端预测会立即显示您自己的操作,如果服务器不一致,则会对其进行修正。
插值在已经收到的两次更新之间绘制其他玩家,因此他们的运动是平滑的,但稍微滞后于过去。
延迟补偿让服务器在检查命中时,能够倒退回射击者当时所看到的画面。
其结果是,没有两个玩家能看到完全相同的时刻。您自己的角色运行得比服务器快一点,而其他所有人则慢一点,并且只有服务器的版本才算数。发誓自己先开枪的玩家,在他们自己的屏幕上可能是对的。
这些技术所隐藏的延迟仍然可能很大。Roblox 的文档告诉创作者,大多数玩家会遇到 100 到 300 毫秒的网络延迟(Roblox 文档,阅读于 2026 年 10 月 8 日)。
游戏服务器是唯一的服务器吗?
软件课程通常将客户端-服务器架构分为两层或三层。而一个多玩家游戏通常会同时运行多种类型的服务器:
对战服务器(Match server)在内存中维护单场对战或单个世界的实时状态,并在运行期间保持每个已连接客户端的同步。
后端服务(Backend services),例如账号、匹配、库存、排行榜和存储,负责保存生命周期长于单场对战的数据。
Roblox 也是以同样的方式进行拆分的:其服务器运行每个体验的实时状态,而数据存储则在不同会话之间保存进度、库存和排行榜(参见 Roblox 后端深度剖析,2023 年 11 月)。
这两层的故障影响各不相同。对战服务器崩溃只会结束其自身的对战。而共享服务发生故障则可能导致所有对战都无法开始。Roblox 在 2021 年 10 月发生的持续 73 小时的停机事故始于 Consul(其后端服务用于相互发现的系统),并导致了整个平台瘫痪(参见 Roblox,2022 年 1 月 20 日)。
客户端-服务器模型需要多少成本?
除了对等网络(P2P)转嫁给玩家设备的托管费用外,中心节点是成本聚集的所在。
带宽。客户端上传微小的输入并下载游戏世界。服务器向每个玩家发送所有玩家的状态,因此其传出流量会随着玩家数量的平方而增长(参见 2023 年 9 月更新的Construct 多人游戏指南)。兴趣管理(仅向每个客户端发送与其相关的内容)可以使大型对局保持可控。
故障。崩溃的服务器会连同其承载的对局一起失效。每场对局使用一个独立的服务器可以将这种影响限制在单场对局内。而持久性世界一旦崩溃则会让其中的所有人掉线。
距离。每个玩家的延迟取决于他们到同一个中心节点的距离,因此服务器的位置是整场对局共享的唯一变量。将服务器放置在靠近一组玩家的地方,会使其他玩家距离更远。
这些成本中的每一项都有相应的基础设施解决方案。Edgegap 的 Private Fleets 是包含出口流量的裸金属托管主机,这消除了按量计费的带宽账单。每场对局一个容器,可以将崩溃限制在各自的对局内。而 Edge Cloud 在拥有 615 多个节点的网络上,根据玩家的位置来部署每场对局,并在收到请求时选择容量充足的最佳位置。
来自我们的赞助商(其实就是我们自己!)的寄语
大多数延迟来自距离,而非代码。Edgegap 的边缘云是一个分布式网络,按需提供高达 615+ 个可用位置,因此每场比赛都能在最适合玩家的可用位置运行。对直播工作室流量的独立重放测试表明,与公共云相比,平均往返时间减少了 58%。
Edgegap 的观点(仅代表个人意见,姑且听之即可!)
服务器的部署位置是一种权衡
客户端-服务器架构为每位玩家提供一个连接,且所有连接都指向同一个地方,因此服务器的位置是游戏设计的一部分。这也是一种平衡。玩家往往聚集在大型人口中心周围,在那里稳定的需求使得固定容量具有成本效益。其他玩家则在更远的地方玩游戏,需求在某些时间段达到峰值,而在其他时间段则会消退。
这就是为什么大多数游戏最终会采用混合模式:针对这些中心附近稳定需求的私有集群,以及针对更远玩家和高峰期的边缘云单局匹配(服务器区域涵盖了折中方案)。匹配部署带来了回报:对某工作室实时流量的独立重放测试表明,相比公共云中继部署,专用服务器部署的平均延迟降低了58%(平台数据,2026年9月18日)。
一个有用的检验方法:在典型比赛中找到距离服务器最远的玩家,并询问该位置是专门为他们选择的,还是仅为中心附近的玩家选择的。
,






