前言
最近在研究Boss战的设计,正好看了Insomniac Games副游戏总监Adam Noonchester在GDC 2024上的演讲:
Refining the Rogues Gallery: Building Boss Fights in《Marvel’s Spider-Man 2》
这次演讲没有把重点放在某一个Boss的具体招式上,而是从攻击、连招、行为图和受击反馈等方面,讲述《漫威蜘蛛侠2》是如何重新搭建Boss战的。
我认为整场演讲最重要的观点是:
Boss战的“史诗感”不应该只依靠演出、QTE或者只使用一次的特殊机制,而应该来自玩家一直在使用的核心战斗系统。
换句话说,Boss不是一个等待玩家破解机制的机关,而是一个真正与玩家交手的对手。
Boss战的核心体验
《漫威蜘蛛侠2》希望玩家在Boss战中依然感受到自己是蜘蛛侠。
玩家拥有普通攻击、蛛网装置、技能、终结技和环境互动等大量能力。如果进入Boss战后,这些能力突然失效,只能按照固定方式破解Boss,那么战斗虽然看上去很特殊,却会破坏玩家在游戏中已经建立的操作习惯。
所以游戏没有简单地让Boss免疫玩家的能力,而是让Boss对这些能力产生合理的反应。
玩家使用高消耗技能命中Boss,Boss应该出现明显的受击反馈;玩家抓住空隙完成一套连招,也应该得到完整的输出机会。Boss需要足够强大,但不能通过“不响应玩家”来表现强大。
这就引出了《漫威蜘蛛侠2》Boss战最基础的设计哲学:
Back-and-Forth——玩家与Boss轮流取得进攻权。
玩家攻击,Boss做出反应;随后Boss夺回进攻权,玩家再通过闪避、招架或者走位化解攻击,重新获得自己的回合。
这样的战斗更像一场势均力敌的决斗,而不是玩家单方面输出一个巨大的血条。
清晰是攻击设计的前提
一个攻击动作一般可以分为三个部分:
前摇(Wind-up)——攻击帧(Active)——后摇(Recovery)
这三个部分不仅决定招式的速度,也在不断向玩家传递信息。
前摇:让玩家知道攻击将要发生
前摇需要通过动作、角色轮廓、特效和音效,清晰地告诉玩家Boss将要做什么。
例如下劈攻击应该先将武器举高,横扫则应该让武器和身体产生明显的横向运动。玩家即使第一次见到这个招式,也可以通过直觉判断危险来自哪里。
演讲中给出的前摇时间大致为:
- 快速攻击:0.5秒
- 普通攻击:0.75秒
- 慢速攻击:1.25秒
人的基础视觉反应时间大约是0.25秒,但游戏中的画面更加复杂。玩家需要先从特效、镜头和其他角色中识别出Boss的动作,并且此时可能还在进行自己的攻击,所以实际需要的反应时间会更长。
前摇太短,玩家会认为攻击“无法躲避”;前摇太长,又会让攻击失去压力。
1.25秒的慢速攻击还有另外一个作用:打破玩家已经形成的闪避节奏。
《漫威蜘蛛侠2》的一次闪避大约需要0.5秒。如果玩家看到攻击后立刻闪避,可能会在Boss真正命中前就结束无敌时间。慢攻击并不是单纯地降低速度,而是在测试玩家能否等待正确的时机。
攻击帧:危险必须足够明显
攻击真正产生伤害的时间一般在0.25秒左右。
这一段动作应该看上去快速、危险,并且明确展示伤害发生的位置。如果攻击帧短于0.25秒,玩家就很难依靠反应躲避,只能提前预测;如果明显长于0.25秒,则会形成延迟攻击,诱导玩家过早做出防御。
所以所谓攻击难度,并不只是把动作播放得更快。
0.5秒的快攻击测试反应,1.25秒的慢攻击测试节奏,而不同的攻击帧又在测试玩家对时机的判断。
后摇:玩家的反击奖励
Boss攻击结束后需要清晰的收招动作,告诉玩家危险已经结束。
当Boss攻击落空时,后摇一般可以达到1.5秒到3秒,给玩家足够的反击机会;当攻击命中玩家时,后摇则缩短到0.5秒到1秒,让玩家无法在受击后立刻反打。
这实际上是一种很直观的奖惩:
正确化解Boss的攻击,获得输出时间;被攻击命中,则失去这一轮进攻机会。
相比直接增加或扣除数值,这种奖励会直接影响战斗节奏,玩家也更容易理解。
不同攻击应该测试不同的应对方式
如果Boss的所有攻击都能用相同的时机和按键解决,那么无论招式动画有多少种,实际玩法都只有一种。
以毒液为例,游戏将攻击大致分成了四类:
- 普通攻击:可以闪避或者招架
- 招架攻击:要求玩家正面招架
- 不可格挡攻击:通常是抓取或者重击,只能闪避
- 特殊攻击:例如大范围AOE,迫使玩家离开当前位置
这些攻击之间的差异不只是伤害和动画,而是玩家需要做出不同的反应。
设计招式时应该先思考:
我希望玩家看到这个动作后做什么?这个反应与Boss的其他攻击有什么不同?
只有攻击真正改变了玩家的决策,它才是一种新的玩法。
为什么Boss需要连招
如果Boss只是从技能池中随机选择单个攻击,很容易出现几个问题:
同一个招式连续出现;玩家不知道什么时候能够反击;Boss的动作互相拼接,战斗节奏显得混乱。
连招的作用是将单独的招式组织成一句完整的话。
一个连招需要有明确的起手、连续攻击和收尾。玩家看到起手后进入防御状态,在中间连续应对,看到收尾动作后知道自己的进攻回合已经到来。
连招中间的攻击通常拥有更短的前摇和后摇。例如中间攻击的0.5秒前摇加上前一招0.25秒的未命中后摇,仍然构成了0.75秒的反应间隔。
也就是说,连招看上去更加连续和激烈,但没有凭空夺走玩家的反应时间。
连招的最后一击通常会拥有更长的后摇,并将玩家击飞或者拉开距离。它一方面表现出收尾攻击的力量,另一方面让玩家和Boss重新回到立回状态,为下一轮攻防做准备。
起手和结尾需要清晰
对于拥有大量组合的Boss,玩家经常会产生一个疑问:
“Boss的攻击到底结束了吗?”
如果同一个动作既能作为连招起手,又能作为连招结尾,玩家就无法判断下一次攻击是否还会出现。
所以起手和结尾应该拥有相对独特的动作,明确告诉玩家连招从哪里开始、在哪里结束。
连招应该是一组分支,而不是固定答案
玩家熟悉固定连招后,很容易把Boss战变成背板:看到起手,便立刻知道之后的每一个动作。
《漫威蜘蛛侠2》的做法是使用分支连招。相同的起手可以进入不同的中段和结尾,让玩家识别出连招后仍然需要观察Boss,而不是完全依靠记忆操作。
但是分支并非越多越好。
设计需要增加的是决策复杂度,而不是单纯增加组合数量。
如果十条连招最后都要求玩家连续闪避,那么它们只是十种动画;如果一条连招可以根据距离、阶段和玩家状态,分别要求招架、闪避或者拉开位置,那么有限的动作也能产生足够丰富的战斗。
让Boss展示自己的招式
仅仅给Boss添加大量招式,并不代表玩家一定能看到它们。
攻击还会受到距离、视线、寻路空间、冷却时间和当前阶段等条件限制。一些条件苛刻的技能可能在整场战斗中一次都没有满足,最后成为玩家“从来没见过的招式”。
单纯使用随机权重也无法彻底解决这个问题。
团队会记录Boss最近32次可用招式,比较每个招式的预期使用率和实际使用率。如果某个招式出现得少于预期,就动态提高它之后的选择权重。
这个设计很值得借鉴:
Boss AI的随机不是完全不可控的随机,而是在维持自然感的同时,主动管理玩家看到的内容。
用Combo Graph组织复杂逻辑
随着Boss阶段、攻击条件和连招分支不断增加,传统的属性面板会变得很难维护。因此团队制作了图形化的Combo Graph,用节点组织攻击的选择条件、参数和后续行为。
不过Combo Graph并不等于完整的Boss行为树。
它主要负责和招式有关的数据:
- 招式的前置条件
- 招式被选择后的准备
- 前摇、攻击帧和后摇等参数
- 招式结束后的连招分支
更高层的决策仍然由行为系统负责,例如Boss现在应该巡逻、调整位置、进行演出还是开始攻击;Combo Graph负责在决定攻击以后,选择并组织具体的招式;最底层状态再实际播放动画、移动角色并产生判定。
可以将它简单理解为三层:
决策树负责“现在要做什么”;行为负责“选择哪一组动作”;状态负责“把动作表现出来”。
图形化工具最大的优势并不只是看起来直观,而是可以把常用的条件和连招制作成子图,在不同阶段甚至不同敌人之间复用。
Boss设计师只需要组合已有模块,再针对Boss的独特能力增加少量定制逻辑。
Boss AI如何决定下一步行动
前面讲了攻击和连招的设计,但这些内容只回答了“Boss会做什么”,还没有回答另一个更重要的问题:
Boss为什么会在这个时机使用这个招式?
Boss AI并不是每隔一段时间从技能列表中随机抽取一个招式。一次完整的出招决策大致会经过以下流程:
感知战场信息 → 制定高层行为 → 筛选可用招式 → 调整选择权重 → 执行连招 → 记录结果
行为栈:将决策和动作分开
Boss AI可以分为三个层级。
第一层是决策树,负责高层行为。它会判断Boss目前应该进攻、调整位置、进行特殊演出、处理受击,还是暂时脱离战斗。
第二层是行为。高层决定“需要进攻”以后,这一层才会进入Combo Graph,根据当前情况选择具体连招。
第三层是状态。它负责播放动画、驱动位移、生成攻击判定,并在前摇、命中、落空和后摇等时机向上层发送信号。
三层结构将“为什么行动”“选择什么行动”和“如何执行行动”分开。设计师修改一条连招时,不需要重新编写整个Boss的决策;程序调整底层移动和动画时,也不会改变上层的战斗意图。
先排除不能使用的招式
Boss准备攻击时,AI首先不会考虑“哪一招最强”,而是检查“哪些招式现在能够正常使用”。
常见条件包括:
- 当前处于哪个战斗阶段
- 玩家与Boss之间的距离和角度
- Boss是否能看见玩家
- 招式需要的移动路径是否畅通
- 周围是否有足够的攻击空间
- 招式是否正在冷却
- Boss最近是否已经使用过相同动作
- 当前是否存在更高优先级的任务
图中的蜥蜴人咬击会先检查战斗阶段和个人冷却,只有条件通过后才会进入真正的攻击节点。
这一步非常重要。如果没有距离和寻路检查,Boss可能隔着很远使用近战攻击;如果不检查空间,飞扑可能撞到墙壁;如果没有阶段限制,第二阶段招式可能提前出现。
Boss要主动为攻击创造条件
仅仅将不满足条件的招式排除还不够。
如果一个招式要求玩家位于特定距离,而Boss永远不会主动调整位置,那么这个招式可能整场战斗都无法使用。因此AI不仅要选择攻击,还要主动创造攻击所需的条件。
当玩家太近时,Boss可以先后退或者脱离;距离太远时,则先接近目标;靠近场地边缘或者没有合适路径时,需要重新定位后再判断攻击。
这也是Boss“看上去聪明”的重要原因。玩家观察到的不只是一个随机出招的角色,而是一个会为了下一次攻击改变站位的对手。
不过定位逻辑也不能无限叠加在Combo Graph中。图中的案例将距离、寻路、等待时间和移动全部混在连招内,最后很容易变得复杂且难以维护。更合适的方式是让高层行为负责站位,Combo Graph专心描述招式内部流程。
硬条件筛选,软权重选择
经过阶段、距离、视线和冷却等硬条件筛选后,AI会得到一组“当前可用招式”。
接下来才是权重选择。
每个招式拥有设计师配置的基础权重,但最终结果还会参考最近的使用记录。团队保存Boss最近32次可用招式,计算每个招式的预期使用率和实际使用率:
预期使用率 = 招式基础权重 ÷ 当前所有可用招式的总权重
实际使用率 = 最近记录中的使用次数 ÷ 最近记录中的有效选择次数
如果实际使用率低于预期,系统会临时提高这个招式的权重;已经频繁出现的招式则不会继续获得额外补偿。
这样做不会让Boss按照固定顺序循环技能,但能够减少某个招式因为连续随机失败而始终无法展示的问题。
从体验上看,玩家会觉得Boss的出招具有变化;从制作角度看,设计师也能更可靠地让玩家看到为Boss准备的完整招式库。
战斗阶段管理招式池
Boss阶段不应该只是血量下降后提高攻击力。
不同阶段可以开放新的连招分支、改变已有招式的结尾,或者改变Boss对距离的偏好。阶段条件会在招式选择前参与筛选,所以同一套Combo Graph可以根据阶段进入不同子图。
这使Boss的难度能够逐渐增加:
第一阶段让玩家认识基础攻击和防御规则;第二阶段在相同规则上增加分支;最后阶段再组合之前学过的内容并提高节奏。
阶段之间应该增加决策复杂度,而不是突然推翻玩家已经学会的规则。
连招结束后更新AI记忆
Boss选择连招以后,AI不能立刻认为自己的回合已经完成。
只有连招真正进入结尾,或者攻击流程被明确终止后,系统才应该记录招式使用、设置冷却并重置本轮状态。如果在连招中间就清空状态,Boss可能重复选择起手动作,或者在尚未完成攻击时被其他行为抢走控制权。
因此AI需要记住的不只是“刚才选择了什么”,还包括:
- 当前正在执行哪一组连招
- 连招进行到哪个阶段
- 这次攻击命中还是落空
- 玩家已经连续攻击Boss多少次
- Boss距离上一次获得进攻回合过去了多久
这些短期记忆共同维持了Boss战的节奏。没有记忆的AI只能对当前一帧作出反应;拥有短期记忆后,Boss才能表现出连续的战斗意图。
Boss需要对玩家保持反应
玩家的能力非常多,Boss也需要对普通攻击、击飞、蛛网装置、技能和环境互动产生不同反馈。
在初代《漫威蜘蛛侠》中,这些受击反馈分散在决策树、行为和不同状态中。到了《漫威蜘蛛侠2》,团队将它们整理为React Graph。
React Graph可以根据玩家的攻击类型决定Boss应该被击退、击飞、撞墙、播放局部受击动画,还是只承受伤害但继续当前动作。
这套系统解决了两个看似矛盾的问题:
Boss要对玩家的攻击产生反馈,让技能命中有力量感;Boss又不能被玩家普通攻击无限打断,否则永远无法完成自己的回合。
因此Boss在进攻时可以进入类似霸体的状态:依然承受伤害,也可以播放局部受击动画,但不会中断当前连招。
这比直接显示“免疫”更加自然。玩家的攻击依然有效,Boss的进攻节奏也得到了保护。
Breakout:Boss如何夺回自己的回合
当玩家持续输出时,Boss需要在合适的时机进行“突围(Breakout)”,通过闪避、格挡或者反击离开玩家的连招,重新进入自己的进攻回合。
突围主要根据以下条件触发:
- Boss已经连续受到一定次数的攻击
- 玩家打出了连招终结技等大型近战攻击
- Boss太长时间没有获得进攻机会
- 玩家连续使用技能、装置或者控制能力
- 出现重复攻击等特殊情况
突围的计数不能在Boss尚未完成攻击时立刻重置,否则战斗容易在玩家和Boss之间频繁抢夺控制权。团队会等Boss真正完成一次连招,再认为它已经成功取回自己的回合。
这里最重要的并不是“防止玩家连续攻击”,而是维持攻防双方的动态平衡。
玩家每次只能攻击一下,Boss就立刻突围,会让玩家感到自己的招式总被打断;如果Boss始终不突围,又会变成一个不会还手的沙包。
测试中,Boss承受2次或4次攻击后突围的体验最好:2次大致对应半套连招,4次对应一套完整连招。1次会让玩家觉得Boss反应过快,3次则经常刚好打断连招最后一击。
好的数值不是看上去最平均的数值,而是符合玩家动作节奏的数值。
一致性比完全独特更加重要
Boss设计很容易陷入一个误区:每个Boss都必须拥有完全不同的代码、反应和战斗规则。
Insomniac最初也进行了大量定制,但测试后发现,Boss之间保持大部分相同、再加入少量差异,玩家体验反而更好。
原因是玩家需要建立稳定的战斗预期。
相同颜色的提示应该代表相同的应对方式;成功闪避后应该获得反击机会;高消耗技能命中Boss应该得到对应的受击反馈。玩家理解这些规则后,才能将注意力放在Boss真正独特的地方。
《漫威蜘蛛侠2》将差异主要放在Boss的核心能力上:
毒液可以飞行并制造大范围共生体攻击;克莱文会使用钟声眩晕玩家;蜥蜴人会爬墙并重新调整距离;幽灵可以致盲玩家并从阴影中进攻;尖叫会在屋顶和地面之间切换;底片先生则会用负面情绪干扰玩家。
它们仍然遵守相同的攻防规则,但通过少量核心机制形成了不同的战斗体验。
对玩家友好不等于降低难度
很多Boss战的死亡并不是因为玩家没有理解招式,而是Boss将玩家逼到墙角,镜头被遮挡,玩家无法看清攻击。
因此游戏会标记合适的战斗区域。当Boss和玩家偏离区域、靠近墙角时,Boss会主动重新定位,尽量将战斗拉回能够正常观察和移动的位置。
这不是在帮助玩家作弊,而是在排除镜头和空间带来的非预期难度。
游戏还会通过非常明显的颜色、特效和声音提示招架时机,并且让招架在按键后立刻生效。玩家是否成功,取决于有没有识别并抓住时机,而不是角色动画中隐藏的输入延迟。
清晰与困难并不冲突。
玩家可以在完全看懂Boss动作的情况下,仍然因为反应、节奏和决策失误而失败。这样的失败才会让人愿意再次挑战。
难度调整也不应该只修改Boss血量。《漫威蜘蛛侠2》除了调整生命值和伤害倍率,还会改变Boss突围前允许玩家攻击的次数。它直接改变了双方回合的长度,影响远比单纯增加血条更加明显。
总结
《漫威蜘蛛侠2》的Boss战设计可以归纳成三个关键词:
清晰、反应、回合。
清晰,是让玩家能够识别攻击、判断时机和理解自己的失误。
反应,是让Boss接受玩家能力带来的结果,使每一次攻击和技能都有合理反馈。
回合,是通过连招、后摇、霸体和突围,在玩家与Boss之间不断交换进攻权。
从攻击动作到Combo Graph,再到React Graph,这些系统最终都在服务同一个目标:
让Boss与玩家真正“打起来”。
一个好的Boss并不是拥有最多招式、最高数值或者最长血条的敌人,而是能够清晰表达自己的意图,对玩家的行为作出回应,并在一来一回的攻防中逐渐改变节奏的对手。
这也是我认为Boss战最有魅力的地方:
玩家不是在解一道看过答案就不会再变的题,而是在学习如何与一个越来越熟悉、却仍然需要认真观察的对手交锋。
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~