
回填
“补位”将新玩家放入已在进行中的比赛中,填补因玩家离开或比赛开始时人数不足而空缺的席位。它能保持比赛的可进行性,并让已付费的服务器容量保持占用状态。其矛盾之处在于,在比赛中途加入的游戏体验可能比重新开始一场比赛要差,因此如何积极地进行补位是一个需要权衡的裁决。
又称
匹配回填,加入正在进行的比赛
,
回填是如何工作的?
回填是在游戏服务器上开始的,而不是在队列中。当一个正在运行的比赛有空位时,服务器会创建一个回填:一个由服务器拥有的票据,保存着已经连接的玩家的详细信息。因为该票据携带了他们的数据,新加入的玩家必须符合他们匹配时的相同规则,例如技术、延迟和模式。
在许多匹配系统中,该交换过程分为四个步骤:
服务器为每个缺少玩家的队伍创建一个回填。
它列出了可以容纳的队伍大小,最高可达空余席位数。如果有 3 个空位,那就可以是 3 人、2 人或 1 人的队伍。
匹配系统将回填与适合的等待队列进行配对,通常优先于普通票据,并且可以将新玩家均匀地分配到各个队伍中。
如果队伍仍有空间,服务器会包含新玩家的票据并重复该过程。
匹配成功的玩家会收到服务器的地址,并加入到当前进行中的比赛中。
回填有什么用途?
替补离开的玩家是最常见的用途。它还有其他几种用途:
替补离开的玩家,这样比赛就不必因为缺人而重新开始。
为人数不足的比赛补充人员。允许在未满员情况下开始的匹配系统,可以在比赛进行中填补剩余的席位。
允许好友或随机玩家加入正在进行的游戏。
允许观众入场,适用于锦标赛或好友之间的比赛。
将玩家合并到更大的服务器中,以便让原本冷清的持久性世界(例如 MMO 区域)显得人开人往。
每种用途对服务器的要求都是一样的:了解有多少空位以及谁已经在里面。它们的区别在于进入的是谁以及该玩家期望看到什么。
游戏服务器如何维持回填机制的运行?
回填并非单次请求。只要服务器在运行,它就会持续管理回填:
等待玩家加入。 匹配成功的玩家仍需进行连接。Edgegap 的文档建议在将其视为流失之前留出一些时间(例如 60 秒),并在他们加入期间显示加载场景或进度条。
替换离开的玩家。 比赛期间空出的每个席位都会获得新的回填。
更新过期的回填。 回填与普通票证一样会过期,因此在席位空闲时,服务器会重新创建它们。
在关机时进行清理。 比赛结束或服务器停止时,未完成的回填将被删除。否则,玩家可能会被匹配到正在关闭的服务器中,而此时被分配的玩家必须重新排队。
当匹配成功的玩家一直未加入时,服务器有三种选择:用 AI 角色替换他们、开启另一个回填,或者在模式允许可变玩家人数的情况下以人数不足的状态继续游戏。
Edgegap 的匹配器提供了 适用于 Unity 和 Unreal Engine 的 SDK。在 Unity 中,Server Agent 会创建、更新和清理回填,因此无需从头编写此生命周期。对于 Unreal Engine,文档指出了进行清理所归属的引擎回调,例如 OnWorldDestroyed 和 PreExit。
一个模式什么时候应该使用回填?
回填是针对每个模式做出的选择。中途加入游戏可能会比重新开始一场游戏的体验更差:新玩家加入时并不了解当前的得分情况,有时甚至会在比赛快结束时被分配到落后的一方。
休闲和合作模式通常获益最多,因为完整的团队比公平的开局更重要。
具有固定队伍的竞技模式通常会跳过回填,因为替换人员会改变比赛开始时的平衡(如何在匹配系统中优化会话填充率)。严苛的技能区间也会减慢回填速度。
截止机制会根据剩余时间或得分,在比赛后期停止回填,因为此时加入意味着只能赶上最后阶段。
回填也体现在托管端。每一个重新填满的席位都会提高会话填充率,而持续接收玩家的服务器运行时间也更长。这两个页面协同工作:填充率显示了哪些席位出现了空缺,而回填是重新填满这些空缺的方法之一。
来自我们的赞助商(其实就是我们自己!)的寄语
每个空余的玩家位置都是您付费了但无人使用的容量。在 2025 年第二季度,Edgegap 匹配系统上的一个工作室在其所有游戏会话中实现了平均 91% 的玩家位置填充率,因此用更少的服务器承载了相同数量的玩家。
Edgegap 的观点(仅代表个人意见,姑且听之即可!)
玩家留下才算作占座
补位很容易根据错误的数据做出判断。对于服务器来说,填满的座位看起来是成功的,但如果新玩家在一分钟后退出,这场比赛就相当于两次失去玩家。
一个切入点:按模式比较,对比完成比赛的补位玩家比例与开始比赛的玩家比例。差距过大通常意味着截止时间设置得太晚,或者在某种模式下中途加入是行不通的。缩小这一差距通常比提高补位频率更有效。
Edgegap 的匹配系统包含补位功能,并提供适用于 Unity 和 Unreal Engine 的 SDK,可承担大部分服务器端的工作,因此团队可以把时间花在截止时间设置和按模式的决策上。
,











