编者按
本文来自 GDC 官方 Youtube 频道,原内容形式为视频演讲,indienova 对其进行了编译整理,以图文形式分享。原链接见文末。
接下来探讨一些设计考量,这一节的重点是匹配机制。《命运 2》玩家的游戏风格各有不同——从职业偏好到对特定伤害类型的偏好,比如火焰、冰影或电弧。但游戏风格的差异远不止于此,它还延伸至玩家所在的平台。

例如,键鼠玩家的响应时间通常比主机玩家更短,这一优势在竞技模式中尤为突出,因此必须充分考虑参与玩家的类型及其所使用的设备特性。《命运 2》带来了一些特别的挑战:游戏同时包含合作模式与竞技模式,而玩家对于不同模式的参与体验有着截然不同的期待。
当你处于合作模式(例如突击任务)时,这种差异可能无关紧要。但在竞技模式的熔炉竞技场,主机玩家若被匹配到 PC 玩家,可能会明显感知到响应时间的差异,从而产生不公平的感受。此外,PC 与主机平台的安全环境截然不同,我们始终在与使用黑客程序及利用漏洞的作弊行为作斗争,若让主机玩家暴露在作弊环境中,将显著降低他们的游戏体验。

如何在实现不同平台的玩家跨平台联机的同时确保公平性?关键在于如何以最优方式匹配跨平台玩家。最终方案是根据活动类型划分不同的匹配池——这一机制既保障了竞技公平性与体验平衡,又成功实现了玩家间的跨平台协同作战。
并非所有模式都需要建立独立的匹配池。一些玩家对公平性有着强烈追求——无论是让手柄操作尽可能与键鼠一样灵活,还是应对主机与 PC 平台间不同的安全环境。我们最终选择在特定模式中将 PC 玩家与主机玩家分区匹配。我们认为,保护玩家体验并确保公平性至关重要,这是为绝大多数玩家提供最佳游戏体验的根本保障。
这一决策是与玩家支持及社区团队多次深入沟通的结果。他们始终强调,保障玩家游戏体验的完整性与公平性是不可动摇的核心原则。此外,虽然我们选择了分区匹配机制,但刻意避免了以其他变量作为分区依据,比如为键鼠和手柄玩家设立独立的匹配池,这是因为实际操作中存在一系列复杂问题。举个例子,假设你是一名 PC 玩家,连接着手柄进入匹配,系统会将你分配至手柄玩家匹配池;但你若在比赛开始瞬间拔掉手柄,转而使用键鼠,那么此前基于输入设备类型的匹配就失去了意义。

秉承公平性与保护玩家体验的原则,我们的匹配机制决策变得更为清晰明确。从合作模式着手,此类模式并未设置独立匹配池,所有玩家均在全局匹配池中。由于不同游戏平台之间在此类模式下不存在显著的竞争优势差异,且玩家在诸如打击任务等模式中的体验并不会因平台而产生根本性改变,因此没有必要创建独立匹配池。
当你抵达某个目的地,召唤出机灵(Sparrow)开始在月球上探索漫游时,系统会自动将你与来自任何其他平台的玩家进行世界内匹配。而当来到竞技模式时,我们才开始采用不同的匹配池策略。我们创建了两个独立匹配池:主机平台匹配池和 PC 平台匹配池。前者包含 Stadia、Xbox 以及 PlayStation 玩家。尽管 Stadia 在技术层面上属于 PC 架构,或者说玩家至少是在通过 PC 流式传输进行游戏,但其实际运行环境是由数据中心托管的,极不可能安装各类作弊软件或对客户端进行篡改,因此我们将其归入了主机平台匹配池。后者则包含 Steam 和微软商店玩家。
但这并不意味着不同匹配池的玩家无法组建火力小队。我们的规则是:PC 玩家无法进入主机匹配池,但主机匹配池的玩家可以进入 PC 匹配池。举例来说,如果你是一名 PlayStation 玩家,并与你的 Steam 平台好友组建了火力小队,一同进入智谋(Gambit)模式,那么无论你是通过 PS 还是 Stadia 平台进行游戏,整个队伍也将会与 PC 平台玩家对抗。这样的设计维护了我们为 PC 和主机匹配池所设定的公平性边界。

要将所有因素整合起来实现跨平台游戏体验,首先需要理解跨平台玩法可能引发的潜在问题,这将有效引导后续的讨论与决策。深入了解玩家的顾虑和保留意见是精准定位这些问题的核心方法。对我们而言,这些宝贵的洞察来源于与玩家支持和社区团队的持续沟通。
如果你正打算为匹配系统创建不同的匹配池,那么明确采取这一措施的具体原因将成为设计决策中的重要准则。保护玩家体验和维护公平性这些指导原则使得关于匹配池划分方式以及玩家分群标准的讨论变得更加清晰明确。
4.应对有害的社交行为(Handling toxic social behaviors)
跨平台联机功能带来的另一个问题是:除了对游戏玩法产生的影响之外,还有玩家群体中出现的新型社交行为。每个平台都拥有各自公认的线上社交行为标准。当玩家从所有平台汇聚到一起时,互动习惯的差异可能会引发新型的不良行为和骚扰现象。

例如,试想各平台所允许的用户名类型。某些平台针对不雅用语和攻击性语言设有严格过滤机制,但在其他平台上,玩家可以随意命名。因此,来自具有名称过滤机制平台的玩家可能会突然接触到各种不雅用语——从猥亵内容到攻击性及欺凌性用语皆有可能。
此外,各平台虽提供屏蔽等社交控制选项,但跨平台联机功能却创造了新的攻击途径。比如,你在当前平台屏蔽了一名骚扰者,又该如何阻止其切换至另一平台继续骚扰你呢?
跨平台联机的工作之一便是应对这些社交行为。特别需要认识到的是,这些形式的攻击行为(私信骚扰,侮辱性 ID 等)往往针对玩家群体中的少数族裔和更为脆弱的群体。
匹配池的决策以保护玩家为宗旨,我们在社交控制与系统方面也秉持相同原则。我们在此领域投入了大量时间和精力,竭力防止霸凌和骚扰行为的发生。

为实现这一目标,我们主要关注了以下几点。首先,着重处理与跨平台联机相关的用户生成内容,其中最关键的是 Bungie 名称系统。我们在早期讨论中明确,必须对不雅用语进行过滤,因为不同平台对用户名的筛查标准存在差异。若缺乏平台级别的过滤机制,则可能出现不当名称和词汇被用于平台命名的情况,这些内容继而会传入并污染 Bungie 名称。
为此,我们采用了功能多样且具备上下文感知能力的第三方解决方案,这一点稍后将进一步讨论。

另一个重点攻关领域是建立完善的屏蔽系统。我们的新 Bungie 社交网络必须能有效应对不良行为者。因此我们既追求与各平台屏蔽功能保持一致,更将其扩展至跨平台场景,确保屏蔽效力覆盖全平台:当你屏蔽某玩家时,与其关联的所有账号都将被屏蔽,这能有效防止对方切换平台继续骚扰。
通过构建这些系统,我们能够更好地保护玩家,并赋予他们对社交互动的更多控制权。

Bungie 屏蔽系统的运作流程如下:当你查看想屏蔽玩家的资料时,系统会提供屏蔽选项,并会明确提示生效范围——界面将显示警示信息:“Bungie 屏蔽将阻止所有形式的通信,包括聊天、火力小队邀请、好友请求等”。操作完成后,详情界面会清晰显示该玩家已被屏蔽,且此状态将在该玩家所有关联平台上同步生效。

5.第一方平台认证(First party platform certification)
下面是构建跨平台联机功能时面临的外部挑战。即便你能够设计并开发出完美的跨平台系统,若要成功发布,仍需满足各第一方平台的要求。

《命运 2》已在众多平台发布,由于先前已在这些平台上架,我们对相关认证要求颇为熟悉。因此,在启动跨平台联机项目时,我们进行了充分调查。许多第一方平台在其认证要求中设有专门章节,详细规定了跨平台联机功能及其实现所需满足的具体条件。

然而从最初设计方案来看,我们期望实现的体验与第一方平台的要求之间存在差异。例如,某些平台要求玩家必须主要以其平台名称作为标识;部分平台不允许在游戏运行时显示其他平台的标识或图标。这些仅仅是我们为达成产品发布目标所需满足的其中几个认证要求。
因此,我们必须与第一方平台保持紧密合作,以协调我们的要求与他们的规范、我们的愿景与他们的标准。项目启动时确定的准则之一,就是必须尊重第一方合作伙伴关系,并致力于遵循其要求背后的精神。这是一个历经了大量会议磋商和多方协作的漫长过程,但最终我们让所有参与方都感到满意。
需要特别说明的是,不同游戏工作室与第一方合作伙伴的关系存在巨大差异。Bungie 非常幸运地与第一方合作伙伴保持着紧密关系,这使我们能够通过频繁会晤达成相互理解。

为确保实现这一目标,我们做了什么?首先,在预开发阶段,我们系统性梳理了各平台的认证要求,并逐一标注其与初始设计方案的差异点。这帮助我们精准定位需要重点关注的领域,并制定相应解决方案。通过与第一方合作伙伴的持续会议沟通,我们深入理解了其要求背后的逻辑,从而能够将平台规范与我们的预期体验设计有机融合。尽管整个审批流程历时较长,但较早启动的论证与协作机制为最终成功奠定了坚实基础。

我们的实践经验可以总结出以下关键要点:从项目最初阶段就必须高度重视第一方平台的相关要求,并将其充分纳入设计考量。在尽力尊重其要求的前提下,坚定不移地执行你的产品愿景。我们的目标是推出卓越的跨平台联机功能,而平台合作伙伴则旨在维护其品牌调性。双方的需求之间存在达成共识的空间,正基于此,跨平台联机才得以成为现实。
6.自制或购买(Make-or-buy decisions)
在构建跨平台联机功能时,其他需要考虑的外部因素还包括第三方解决方案,以及明确如何及何时利用这些方案来辅助开发。

如前所述,开发跨平台联机功能需要重新构建大量原本依赖平台级 API 与服务的系统。期间我们发现还需要开发若干特定功能,它们不可或缺,但会提升系统复杂性。例如:必须确保 Bungie 名称系统使用合规的命名方式,以及采用一套能跨所有平台移植的语音库。开发这些功能会增加项目规模,由于时间紧迫,我们不得不做出一些艰难取舍。

某些功能需要投入大量开发资源,且无法在既定时间内完成。为 Bungie 名称和用户生成内容构建高效的语言过滤器就是一项极其复杂的工程,《命运 2》支持 12 种语言,要对这些语言的文本内容进行筛查过滤,需要大量专业知识储备和长期的技术积累。
因此,针对语音聊天、文字聊天以及文本内容过滤与审核这些特定领域,我们进行了系统的“自制或购买”分析,以确定哪些部分需要自主开发,哪些部分要购买现成的解决方案。当前市场已有大量深耕这些领域的第三方解决方案,其提供的产品质量远超我们自主开发所能达到的水平,它们能够节省开发时间,使我们得以推出体验更好的产品。
文本和语音聊天领域存在多种可选的解决方案,例如 PlayFab、Vivox、Epic Games,它们都有许多用户。
在选择时,我们首先考虑的是第三方解决方案是否提供支持所有平台的集成库;其次,相较于自主中继数据传输,使用第三方服务处理这种量级的数据的技术成本虽更低,但随着长期维护与更新,成本会逐渐累加;最后,我们重点评估了第三方解决方案的集成便利性,包括其提供的文档质量与技术支持的可用性,以确保高效完成系统集成。
也有必要确保任何过滤解决方案都必须完全支持我们所需的全部语言,同时还要仔细评估各类解决方案如何应对违规惯犯。我们需要将这些工具与现有系统比较,并研究如何运用它们为玩家支持团队提供更高效的帮助。
所有这些考量都是为了打击有害的社交行为。充分认知自身游戏的独特需求,并确保所选解决方案能全面应对这些需求,是做出正确技术决策的关键。若某项方案能完美契合需求,它便是节省开发时间、避免从零构建的理想选择。

最终,我们集成了第三方语音聊天解决方案,以此规避自主开发所需的巨额维护开销。这也使开发团队能将核心资源集中于其他关键环节。
在文本过滤与审核领域,由于需要支持许多语言,构建并维护这样的系统意味着庞大工作量,我们最终选择集成第三方解决方案。需要特别指出的是,集成这些解决方案花费了大量时间,选择采购一款仍需投入工程工作的解决方案,并将其成功适配到游戏环境中,其带来的效益并非是立竿见影的。
此外,当你选择第三方解决方案时,实质上是将自己的游戏与另一款产品进行深度绑定。其版本发布与功能更新取决于供应商的规划,这意味着你对其开发节奏与控制权将大幅减弱。

对于文本聊天功能,尽管市场上存在众多能满足需求的解决方案,但我们认为,拥有自己的文字聊天平台,能为未来实现更深层次的系统集成带来巨大潜力,因此最终选择自主开发。我们关于自制或购买的决策完全取决于《命运 2》独特的游戏特性和需求,决策的关键在于甄别哪些功能是体验核心,并明确项目规模内可实现的目标,这能清晰指引团队应在哪些领域探索第三方合作,以及评估是否需要投入资源开发某些功能。
最后需要强调:集成第三方解决方案并非灵丹妙药(Silver Bullet)。引入任何新技术都需要时间投入,无法一蹴而就。这一点必须在项目规划和时间线制定中予以充分考虑。在推进第三方集成的过程中,我们遭遇了项目规模超出预期的问题,导致这些集成工作无法在原定计划内完成。因此,我们最终决定将这些集成功能推迟至后续版本发布。但从长远视角来看,我们确实在系统维护与更新成本方面实现了节约。倘若选择自主开发这些系统,我们将面临经典的"不可能三角"难题,即项目规模、时间与成本之间的制约关系。当需要在多重约束中寻求平衡时,探索第三方解决方案或许能为你提供破局思路。
7.善用持续更新(Leveraging a live service game)
最后一条经验来自于我们的发布策略。得益于《命运 2》作为在线服务型游戏(Live Service Game)的特性,跨平台联机功能是为一款已上线的游戏开发的,因此发布必须确保不影响现有玩家的正常体验。

这一项目伴随着许多内容的改动,同时也是自《命运 2》发布以来,我们构建新服务系统数量最多的一次。为了使不同平台的互联互通成为可能,我们实施了诸多底层变革,例如网络架构的重大调整。这一任务相当庞大,而且是在极紧凑的日程安排中推进的。若采用一次性发布策略,便需要在极其紧张的开发时间内重点关注各部分的整合效果,这将在功能调试与兼容层面带来巨大风险。倘若选择在一个赛季内完整上线这一服务,我们便仅有一次机会且要确保万无一失。

最终我们采取的做法是,将跨平台联机及其众多系统的发布工作分散到多个版本与赛季中,逐渐增加系统功能。由于涉及多项重大变更,我们需要更充裕的时间进行功能整合,让各系统得以充分磨合与稳定,之后才能在真实玩家环境中进行大规模测试。

我们采用了增量构建与发布的方法实现跨平台联机功能。最初是 10 人规模的内部测试,确保基础功能不出现崩溃,随后逐步扩展到约 500 人规模的全工作室测试。通过逐渐扩大的测试规模,我们能够在所有平台和全部游戏内容上全面验证各项技术变更。

在正式版本发布阶段,我们利用正式发布前的几个赛季逐步引入重要的功能模块,提前处理那些可能引发根本性变革的工作(例如全新的网络架构更新)。这使得我们能在开发周期极早阶段就将这些功能集成至构建版本,从而获得充足时间进行充分磨合、测试与稳定化。提前完成并稳定这些重大变更,为我们后续攻克跨平台联机的其他系统增强了信心。
我们还在发布前的某个赛季引入了为新社交系统设计的用户界面及其他功能组件,以便在正式发布前就收集反馈并实时测试。我们为 Bungie 员工创建了内部 Alpha 测试环境,使其能在正式运营版本中提前使用跨平台联机功能。员工们获得了新功能的使用权限,包括全新的名单界面(Roster UI)、Bungie 好友列表等功能。在正式发布前的几个月,员工们已能与其他玩家跨平台联机。这使我们能够在玩家体验前就发现并修复初期存在的问题,同时也让开发团队更直观地感受到跨平台联机的实际运作效果。
随后,为对新的社交与匹配系统进行真正的压力测试,我们组织了一次小范围公开测试,在一组打击任务列表中启用了该功能,所有玩家均可参与其中并体验跨平台联机。玩家的积极参与极大帮助我们验证并充分测试了这些新代码路径。
通过内部 Alpha 测试与公开测试的双重验证,我们更相信自己正在构建一个好系统。提前发布关键组件并确保其成功落地,不仅验证了时间规划的可行性,更帮助我们稳健完成了跨平台系统的构建。
此外,这样做还有一个额外好处,它成功为跨平台联机功能营造了热度与期待。虽然内部 Alpha 测试和公开测试整体上利大于弊,但过程中也出现了一些小插曲。事实证明,在游戏正式发布前开放部分跨平台功能,会制造出一些滑稽的场面——例如有玩家早于预期时间体验到了跨平台联机。但坦白讲,为一款已发布的在线游戏添加如此庞大的功能,意外情况在所难免。总体而言,我们将这些事件视为既能暴露潜在问题又充满趣味的插曲。这些偶然的意外持续让玩家对跨平台联机保持关注,并进一步提升了他们的期待值。

提前发布部分跨平台联机功能,为最终平稳发布正式版本提供了重要保障。通过将核心内容改动提前至开发早期发布,能够为其预留充足的优化时间。在早前几个游戏版本更新中提供功能精简的实现,既有助于增强团队对所构建内容的信心,也为获取早期用户反馈提供了渠道。
最后,允许内部员工提前在线上正式环境中以跨平台联机形式与其他玩家一同游玩,是一种很有用的测试方法。这使你能够在系统尚未达到发布要求时,就能在真实游戏环境中测试新系统,同时不必承担影响广大玩家游戏体验的风险。
以上便是我们从开发跨平台联机功能过程中总结出的七条重要经验。这对团队而言是一段漫长而艰巨的历程,因此以上经验涵盖了多方面内容。如果你正计划为自己的游戏打造跨平台体验,以下是我认为最具参考价值的几条建议:
首先,实现跨平台联机可能意味着要构建众多新系统与服务,尤其当你的游戏高度依赖各平台提供的特定 API,或是基于一款自身可能缺乏跨平台支持的自研游戏引擎时。
其次,尽管其中许多功能都是由开发者自己实现的,但尝试借助第三方解决方案能帮助你减少工作量,尤其是时间紧迫时。
第一方平台的要求会直接影响相关设计,因此在制定开发计划的一开始就应该将其纳入考量。
跨平台联机功能因其融合了各平台固有的玩家行为模式,而会对游戏内互动方式产生深远影响——这既体现在游戏玩法层面,也体现在社交层面。随之而来的,是玩家可能会接触到来自其他平台的、新型的不良玩家及其行为模式。这是开发者必须承担的风险,因此务必为所有玩家提供周全保护。
将那些牵一发而动全身、高风险的核心引擎代码变更尽量提前至开发早期处理,这能为其留出充足的“磨合”与稳定化时间,从而显著降低项目后期的不确定性。
如果可以的话,采用分阶段发布策略,利用多个版本逐步扩展跨平台联机功能。这能使你在真实玩家环境中逐步扩大测试范围,从而有效降低项目风险,并随着每个阶段的成功持续增强团队信心。
本次分享的所有成果都得益于众多团队成员为实现跨平台联机付出的卓越努力。在此,我要特别感谢所有参与该项目的 Bungie 团队成员,正是你们的辛勤工作,为玩家打造了如此精彩的游戏体验。
此外,我要特别感谢顾问维罗妮卡·佩什特里亚诺(Veronica Peshteriano)在演讲筹备过程中给予的宝贵指导;同时感谢凯特琳·余(Caitlin Yu)对本次演讲的框架设计与内容构建的重要贡献。最后,谨向 GDC 的支持团队致以谢意,感谢你们为保障大会顺利进行所付出的努力。
Q&A
Q1:这场分享会非常精彩,我和妻子是回归玩家,我认为跨平台联机功能非常成功。我有个问题想请教,采用神经符号 AI(Neurosymbolic AI)来干预和引导用户、处理不良行为的方案不在你们自主开发的范围内,并且这部分内容在演讲中也只是一笔带过。那么,你们最终采用了哪种第三方解决方案来应对不良行为呢?
A1:最终解决方案是根据《命运 2》的独特需求量身定制的,同时它也是独一无二的,基于商业层面的讨论,以及此前提到的过滤功能设计考量,我们选择了一种能更直接应用于用户生成内容的机器学习方案。关于具体选择的供应商,我们稍后可进一步讨论——部分原因是我未参与相关商业谈判,但我们也可以就此主题交流。
Q2:你们是否采用过自动化测试方案来验证跨平台联机功能?
A2:是的,做过一些自动化测试,我们开发了专用工具来协助创建跨平台好友列表并验证其功能,同时也对跨平台战队系统以及 Bungie 名称的更改流程进行了自动化测试。大量自动化测试工作帮助我们对这些核心系统进行全面验证。
Q3:玩家更改用户名的过程是否带来了复杂问题,特别是要修改已被纳入 Bungie 名称系统的初始用户名时?
A3:我们的确遇到了许多复杂状况,这也使得采用第三方内容过滤解决方案显得尤为重要,以确保对名称进行精准过滤。由于我们最终决定推迟 Bungie 名称更改功能的发布时间,因此获得了几个月的缓冲期——事实上我们直到近期才正式启用该功能,因为我们希望彻底完善这套系统。如此一来,当玩家修改名称时,我们既能提供正确的操作途径,又能实现有效的过滤监管,同时能有完善的机制来追踪其修改权限及操作流程。
Q4:你们是否考虑过针对不良玩家和良好玩家来动态调整匹配池?
A4:我们构建的匹配池系统实际上已经足够强大,能够支持创建任意匹配池。尽管当前版本将匹配范围限定在玩家所在平台内,但该系统为未来迭代预留了灵活性——可以根据玩法自定义匹配池的构建规则。这意味着,如果未来某一活动模式出现了仅对 PlayStation 玩家或 Xbox 玩家有利的优势机制,我们可以针对该活动拆分匹配池以进行精准调控。
Q5:这项工作需要大约一年的努力,50 名工程师和其他人员参与,大量的第三方协同和工作量,这一切值得吗?
A5:我觉得值得,玩家对此功能期待已久,目前我们也看到了大量积极反响。从商业角度而言,它虽未带来直接的经济回报,但却极大丰富了游戏体验。启用跨平台联机后,玩家活跃度堪称呈指数级增长,这种能打破平台壁垒、让所有玩家无障碍互联的体验,在当前行业平台界限日益模糊的背景下,无疑具有革命性意义。推动互联互通已成为游戏行业发展的重要方向。
Q6:跨平台联机功能是否会对关卡或游戏系统的设计产生影响?
A6:我无法直接回答你,因为我并非游戏策划,但据我所知,团队正在大力推进采用增量式构建模式来逐步实现特定功能。跨平台联机很可能是 Bungie 在《命运 2》这款已发布的在线游戏中,除跨平台存档外,投入开发资源最多的功能之一。正因如此,我们在尝试改变传统的功能发布流程。尽管我并未参与其如何直接影响游戏设计的讨论,但它确实是存在的。
原链接:https://www.youtube.com/watch?v=CKe5s2Hb6aE&list=PL2e4mYbwSTbao5I-cAVbanrMNVGgGN7O3&index=52
* 本内容系编译整理,不代表 indienova 立场。未经授权允许,请勿转载。