
如何优化匹配器中的会话填充率

本文是 Edgegap 匹配器文档中关于 微调扩展 的实用配套文章。它将配置概念转化为通俗易懂的语言和可执行的决策。有关最新语法、配置示例和特定版本的详细信息,文档页面仍然是权威参考。
如果你是从会话填充率如何影响托管成本这篇概览文章过来的,那么这就是后续内容。你知道填充率会花钱。这里讲的是该怎么处理。
下面这些策略大致按影响力和实施难度排序。并不是每一项都适用于每一款游戏,但大多数拥有实时匹配器的工作室至少会发现其中两三项还没有被充分利用。
先做诊断,而不是先修复
在没有基线的情况下调整匹配配置只是猜测。在改动任何内容之前,先建立这三项:
你当前的每个区域填充率。 仅看全局平均值是不够的。区域碎片化往往才是真正问题所在。参见下方的“区域填充率”。
峰值与非峰值的差异。 一个为峰值时 10,000 名同时在线玩家调校的匹配器,在凌晨 3 点只有 800 名玩家时会有非常不同的表现。这两种情况通常需要分别处理。
会话在哪些地方丢失填充。 是大厅始终达不到最低玩家数量并超时?还是一开始满员,但在对局中途流失?答案决定了你应该先拉动哪个杠杆。
如果你使用 Edgegap 的匹配器,分析仪表板会随时间提供填充率指标、匹配次数和扩展阶段数据。对于希望在做出改动前先建模特定填充率目标成本影响的工作室来说,填充率计算器是正确的起点。
主要杠杆:min_team_size 和 max_team_size
这是大多数工作室尚未做出的、影响最大的单一配置变更。而且它也是最简单的之一。
默认情况下,许多匹配器都配置为必须等到大厅满员后会话才能开始。一场每局 8 人的游戏会一直等待,直到 8 人都准备好。如果可用玩家池太少,无法凑齐这 8 人,匹配器就会进入扩展阶段,逐步放宽技能和延迟约束。如果在最后一个扩展阶段结束时,或者在票据过期时,仍然无法组成满员大厅,票据就会取消,玩家重新排队。
将 min_team_size 与 max_team_size 分开会改变回退行为。匹配器仍会在可能的情况下尽量等待最大填充。但在扩展阶段结束时,或在票据过期时,只要已有足够玩家组成最小规模大厅,会话就会启动,而不是取消。匹配器已经尽可能等待、尽可能组队,并且交付了一场对局,而不是把所有人都退回队列。
这种取舍是真实存在的:低于最大容量启动的会话,与满员大厅相比,玩家体验会略有不同。正确答案取决于你的游戏模式。对于休闲和合作模式,部分启动通常比取消排队、让挫败的玩家回到大厅更可取。对于团队对称性很重要的竞技模式,情况可能并非如此。配置文件级别的设置让你可以有选择地应用这一点,这一点会在“配置文件策略”部分说明。
一旦部分会话开始,回填就可以在对局过程中把容量恢复到满员。这个机制将在下一节介绍。
有关具体配置语法和演示示例,请参阅player_count 规则文档。
扩展规则:用时间换取填充
扩展规则是匹配器在无法快速组建满员大厅时,随时间放宽约束的机制。它们是在不牺牲峰值匹配质量的前提下,在低 CCU 条件下提升填充率的主要工具。
扩展到底做了什么
当玩家进入队列时,匹配器会应用 initial 规则集:严格的技能差异、紧密的延迟阈值、所需的游戏模式或地图重叠。如果在配置的时间窗口内没有找到匹配,扩展规则就会放宽其中一项或多项约束,搜索范围也会扩大。
每个扩展阶段都是由时间触发的。30 秒时,技能范围可能扩大。60 秒时,延迟容忍度可能提高。3 分钟时,最低队伍规模可能下降。匹配器会依次经过这些阶段,直到成功匹配或票据过期。
结果就是:当玩家池支持时,它能提供高质量对局;当不支持时,它仍能提供可接受的对局,而不是完全不给出匹配。
如何安排这些阶段
约束放宽的顺序很重要。顺序不当的扩展可能导致生成的对局,比等更久还要糟糕。
一般原则是:
先放宽技能约束,再放宽延迟约束。 略微不平衡的对局,比卡顿严重的对局更不扰人。玩家对技能差异的容忍度高于对连接质量差的容忍度。
先放宽延迟约束,再降低最低队伍规模。 一个延迟中等但满员的大厅,比一个延迟良好但不满员的大厅更可取。
把最低队伍规模放在最后一个扩展,而不是第一个。 这是玩家最容易察觉到的变化。应把它当作在票据过期前的最后手段,而不是早期回退方案。
扩展间隔也应反映你的会话时长。5 分钟一局的游戏,玩家会频繁回到队列,这会自然增加任一时刻可用的玩家池。你可以使用更严格的初始规则和更短的扩展间隔。30 分钟一局的游戏则需要第一次就把对局做对。更宽松的初始容忍度和更少的扩展阶段通常更好。
还有一个值得正确处理的考虑:扩展幅度应随着每个阶段增长,而不是保持一致。随着前几轮运行,靠近参数平均值的玩家会先被匹配到。后续轮次剩下的是允许范围边缘的异常值,而且这类玩家在结构上更少。第一阶段中表现良好的统一扩展步长,在第二阶段会找到小得多的玩家池。为应对这一点,每次扩展的放宽幅度都应该比前一次更大。如果你在第一次扩展中把最大延迟从 100ms 放宽到 150ms,那么下一步就应该进一步放宽到 250ms,而不是再统一增加 50ms。技能范围也适用同样的逻辑。这样即使未匹配玩家池不断缩小,后续扩展阶段仍然有效。
有关精确的扩展配置格式,以及一个包含 30s、60s 和 180s 分阶段放宽的演示示例,请参阅文档中的规则扩展部分。
低 CCU 问题
很多工作室都在这里调错了。扩展规则通常是在测试期间或上线不久后调校的,那时玩家数量集中,队列流动很快。但在非峰值时段,或在玩家池仅为峰值一小部分的次要区域,这些规则往往会悄无声息地失效。
症状就是:即使匹配器整体看起来运行正常,在低流量窗口中票据过期率更高、填充率更低。
解决办法通常不是放宽全局默认值。那会降低峰值时的匹配质量。解决办法是为低 CCU 条件设置单独的匹配配置文件,从一开始就采用更快的扩展间隔和更宽的容忍范围。“配置文件策略”部分会说明如何构建这一点。
回填:在对局开始后提高填充率
到目前为止讨论的每个杠杆,都在匹配创建的那一刻起作用。回填不同。它是在会话已经开始之后起作用,用来填补离开者留下的空位,或提高那些在低于最大容量时启动的会话的占用率。
有一个重要行为需要理解:当配置了回填并且配置文件规则允许时,匹配器会优先填充已有的进行中会话,而不是开启一个新的会话。进入队列的玩家可以被路由到实时会话中的空位,而不是等待新大厅组建。这会直接提升你整个活跃服务器群的填充率,而不仅仅是在匹配创建的那一刻。
替换离开者
当玩家在会话中途断开连接或弃赛时,服务器会创建一个代表空位的回填票据。该票据会重新进入匹配队列,并可以与正在寻找对局的玩家匹配。对于进入的玩家来说,他们加入的是进行中的会话。对于服务器来说,这个座位被填上了,会话也以更高的占用率继续进行。
对于那些本来会因离开者而重启或体验下降的游戏模式,回填能够显著延长会话寿命并提升平均填充率。
填补部分大厅
当会话通过部分填充匹配在低于最大容量时启动时,回填同样适用。如果会话在上文所述的 min_team_size / max_team_size 策略下,以少于最大人数开始,那么服务器可以立即为剩余空位发出回填票据。这些座位可以在会话已经运行时被填上,从而恢复到满员,而无需让对局在开始前继续等待。
这两种用例共享同一实现路径。服务器创建并管理回填票据,处理进入玩家的放弃计时器,并在会话结束时清理所有未关闭的回填票据。回填文档涵盖完整生命周期,包括票据创建、分配处理以及服务器端清理。
回填并不适用于所有游戏模式。团队构成固定的竞技模式,或中途加入会造成不公平劣势的模式,都不应使用回填。对于休闲、合作、社交和开放世界模式,回填是目前最有效的填充率工具之一。
配置文件策略:让你的匹配器适应真实条件
大多数工作室都是用单一匹配配置文件上线,并进行全局调校。这在健康且集中的玩家池中、在规模较大时是有效的。但随着游戏成熟、玩家分散到不同地区和时区,以及不同游戏模式吸引不同规模的受众时,这种做法就会失效。
答案是有意进行配置文件分层。以下三种场景覆盖了大多数在线游戏:
竞技模式与休闲模式。 竞技模式应采用严格约束:严格技能匹配、硬性延迟限制、不允许部分填充、不启用回填。休闲模式应更宽松:更快扩展、启用回填、允许部分填充。把两者运行在同一个配置文件上,会迫使系统作出对双方都不理想的折中。分开的配置文件能让每种模式都更适合其受众。
峰值时段与非峰值时段。 如果你的 CCU 在峰值与低谷之间的波动超过 60%,单一配置文件要么会在低 CCU 窗口过度约束(导致票据超时和填充不佳),要么会在峰值时过度放松(导致质量下降)。一个专门的低 CCU 配置文件,配合更快的扩展间隔和更宽的初始容忍范围,就能在不影响峰值配置的情况下处理非峰值条件。
职业或挑战者段位。 高水平玩家只占总人口的一小部分,而且并不遵循大多数扩展设置所依据的钟形曲线技能分布。为顶尖玩家建立一个专用配置文件,并配备其自己的技能阈值和更长的扩展耐心,能为这一细分群体生成更好的对局,而不会扭曲大多数人的体验。
有关并排展示竞技、合作和社交游戏模式的配置示例,请参阅文档中的配置文件配置部分。
区域填充率:修复隐藏问题
正如配套文章所说明的,汇总填充率会掩盖区域异常值。一个健康的全局平均值,可能会掩盖某个区域的填充率只是预期值的一小部分,并因此让每位玩家承担两到三倍的成本。
一旦你通过分析仪表板或按区域填充率跟踪识别出表现不佳的区域,可选方案包括:
应用区域特定的扩展配置文件。 玩家池较小的次要区域,需要比主要市场更快、更宽的扩展。与其放宽全局默认值,不如为该区域单独创建一个配置文件变体,设置更早的扩展触发和更低的最低队伍规模。
在非峰值时段整合活跃服务器。 在那些玩家数量在非高峰时段显著下降的区域,如果仍然像峰值时一样运行相同数量的活跃服务器,就意味着为永远不会填满的容量付费。在低流量窗口减少最低活跃服务器数量,并依靠动态扩缩容在峰值时恢复容量,可以在不影响玩家体验的情况下降低闲置成本。
使用延迟规则在相邻区域之间匹配,而不是拆分玩家池。 latencies 规则允许来自不同地理区域的玩家在共享服务器上匹配,只要双方都落在配置的延迟阈值内。对于人口稀薄的区域,这实际上是在整合匹配池,而不是强迫每个区域独立完成会话填充。玩家获得对局,服务器运行得更满。
在稀疏区域接受略高的延迟。 如果某个区域的玩家池太薄,无法在为密集市场设计的延迟约束内填满会话,那么该区域的延迟规则可能需要放宽。80ms 延迟的对局总比没有对局好。区域特定配置文件可以让这种调整更有针对性,而不是全局生效。
关键原则是把每个区域都视为独立的填充率问题,而不是汇总中的一项。对北美在峰值时有效的方法,在任何时段都不适用于次要区域或其他受众。
衡量改动的影响
填充率优化是一个迭代过程。配置改动应当与诊断步骤中建立的基线进行比较,而不是凭直觉判断。
任何改动后都应重点关注的信号是:各区域填充率、票据过期率,以及扩展阶段分布。如果填充率在改善,但票据过期率也在上升,那么这些改动可能确实带来了更多对局,但也让更多玩家在到达匹配前就因超时而流失。如果扩展阶段分布明显偏向后期阶段,那么你的初始规则对真实玩家池来说可能仍然过严。
Edgegap 的分析仪表板(企业版提供)开箱即用地提供这些指标,包括自定义时间段内的每分钟速率,以及填充率和扩展行为的时间序列视图。对于希望在上线测试之前先建模目标填充率成本影响的工作室来说,填充率计算器仍然是把填充率提升转化为美元数值的最快方法。
扩展规则和配置文件配置的改动,适合低风险地逐步测试。先从影响最大的改动开始(通常是 min_team_size / max_team_size 分离),在峰值和非峰值窗口各测一到两周,然后再推进到下一个杠杆。一次叠加多个改动,会让你很难把改进归因到具体决策上。
有关本文讨论的每种场景的最新配置语法、版本说明以及 JSON 演示示例,请参阅 Edgegap 匹配器文档。该文档会随每次匹配器发布而更新。
有关这些优化背后的成本框架,请参见配套文章: 会话填充率如何影响你的多人游戏托管成本。
书写者
Jakub Motyl,Edgegap 的产品经理








