给设计师更多独立性。
整理/梁乐天
要问今年的年度最佳游戏,《光与影:33号远征队》(以下简称为《33号远征队》)算得上有力竞争者之一。
不久前,在IGN发起的"What's Your Game of The Year 2025 So Far(2025年至今,你心中的年度游戏是?)"投票中,玩家需要以"二选一游戏对决"的方式,从128款作品中选出自己心中的冠军。结果,《33号远征队》在超过12万次的总对决中,凭借82%以上的胜率赢得了第一名,可以说是今年最大的黑马。
游戏的硬实力摆在那:MC媒体均分93分;官方此前宣布销量已突破500万份。若以50美元的定价估算,其收入或已达到2.5亿美元(约17.8亿人民币)。在游戏发售时,葡萄君曾撰文,介绍过其背后小而美的开发团队Sandfall。
前段时间,在科隆游戏展同期的开发者大会(Devcom)上,《33号远征队》的首席游戏设计师Michel Noah分享了这款游戏战斗系统的设计思路。
Noah表示,《33号远征队》的特色,在于将实时反应机制,融入了JRPG的回合制框架。但这成了开发中最棘手的挑战:玩家们光顾着处理实时操作,根本无暇思考回合策略。
面对这个核心冲突,团队做出了一个关键决策,围绕实时元素来重构回合制。这带来了一系列大刀阔斧的精简:技能从40个砍到25个,上百种道具只保留3种,同屏敌人从4个减到3个,连JRPG里的物防和魔防系统都合二为一……
而30人出头的团队能撑起如此迅速的迭代,工具是关键。比如,他们使用Excel,让设计师无需打开引擎就能测试数值、快速调整。在Noah看来,正是设计师的高度独立性带来了效率提升,让动画师等其他同事能更直观地理解他们的需求。
以下为分享内容整理,为方便阅读,部分内容有所调整:
我先自我介绍一下。我叫Michel Noah,已经做了13年的游戏设计师。我参与的第一款游戏是《Dofus》,这是一款法国MMORPG,虽然你们可能不太了解,但它在法国非常火;之后我参与了《Wolcen: Lords of Mayhem》和《The Cycle: Frontier》的开发,后者是我的第一个虚幻引擎项目。
两年半以前,我加入了Sandfall Interactive,担任首席游戏设计师。设计团队成员包括创始人兼创意总监Guillaume Boucher,《33号远征队》最初是他的个人项目;之后Thomas加入,独自负责了一段时间的关卡设计和游戏设计;再后来我加入了项目;最后,Victor和Anthony也加入了我们,帮助我们在开发的最后两年进行冲刺。
现在,让我们进入今天的主题——《33号远征队》的战斗系统。
对于那些不了解这款游戏的人,我介绍一下,《33号远征队》是一款以回合制为基础的JRPG。它有成熟的故事背景,设定在一个梦幻般的超现实世界中。战斗系统是它的特色——并非传统的回合制战斗,而是融入了实时反应机制。你可以通过在正确的时机按下正确的按钮,来完全规避敌人的伤害。
我们的灵感来自多个游戏。比如《女神异闻录》系列的UI设计和运镜;《流放之路》的角色构筑、符文效果以及它们如何相互作用……当然,整体框架仍然是传统的JRPG,类似《最终幻想10》。
01
回合制:围绕实时元素构建
让我们回到4年前,看看游戏最初的样子。它看起来与我们今天的游戏非常相似。我们最初设计的是一款经典的3D JRPG,有法力系统和上百种消耗道具。我们只是增加了一个闪避系统,你可以在关键时刻按下按钮来躲避攻击。
当时,我们还有一个传统的防御系统,你只需按住一个按钮就能减少所受伤害,没有时机判定。不过很快,游戏进行了迭代,增加了格挡机制,因为我们的创意总监非常喜欢《只狼》。
几个月后,游戏就演变成了新的形态:我们用每回合自动恢复的行动点取代了法力系统;加入了格挡反击系统,并用虚幻引擎的Sequencer工具,实现了类似《女神异闻录》的反击效果。此外,我们也移除了那个按住就能防御的系统,因为它实在太无聊了。
由于这套系统相当独特(尽管其他游戏中也存在类似机制,但很难找到具体参考),我们必须做一些玩家测试,确保它可行且受人喜欢。起初,我们惊讶地发现人们很喜欢它,但也注意到,他们很难真正投入到游戏的回合制策略中,因为实时元素已经让玩家应接不暇,难以再去思考复杂的战术。
更重要的是,我们的团队只有30人,希望做一款流程较短的JRPG。这意味着,玩家没法像大多数JRPG那样,花数百个小时去精通系统。
因此,我们决定简化设计,围绕实时元素来构建回合制部分——大幅减少战斗中的干扰信息,让玩家更专注于行动本身。
一开始,我们想给每个角色做40个技能,战斗中可使用8个。但最终我们将角色技能总数缩减至20-25个(莫诺柯除外),战斗中可用技能减少到6个,以减少玩家的选择负担,让他们能专注于更重要的内容。
莫诺柯可以在战斗中变身成其他怪物
我们减少了道具数量。起初我们像大多数JRPG一样有上百种道具,有的可以燃烧,有的可以造成伤害。经过多次迭代后,我们决定只保留最核心的三种:复活、治疗和充能。这是因为展示上百个选项的UI设计太难了。
我们减少了战场上的敌人数量,从一开始的4个减少到3个。这不仅能简化战斗,还方便镜头更好地在战斗中展示所有内容。
属性系统也简化了。我们之前有一个精通属性,提供施加状态效果的概率;还有一个命中属性,提供命中某些敌人的概率。
我们之前还区分魔法攻击和物理攻击,甚至是不同的防御。最后,我们把它们合并成了一个系统,把一切都削减到了最低限度。原因是一样的,没有必要把战斗搞得太复杂。
然后,我想谈谈我们是如何围绕"格挡"来平衡游戏的。这对我来说有点棘手。
我刚加入时,非常担心游戏的平衡性,主要因为格挡系统缺乏精细度。我们能调整的只有格挡的判定时机窗口。
比如,某些攻击动作前摇不明显,很难被玩家预判。大多数时候,我们会调整动画或运镜,让玩家能理解攻击何时到来;但偶尔我们没时间这么做,那就会调整数值——攻击越难预判,伤害就越低。
在此基础上,我们引入了新系统:跳跃和灵墨反击。它们比常规的格挡更容易触发,有利于缓解玩家的挫败感。特别是后者,它出现在一套连招的末尾。即使你之前全部格挡失败,依然有机会触发这个更容易成功的反击。
此外,我们为玩家增加了大量的防御性选项:技能、装备和符文,让他们可以构筑不那么依赖格挡的角色。
在最后一次玩家测试中,我们收到很多反馈:人们很喜欢这个系统,但没有像我们希望的那样去钻研游戏的难度,他们想要简单模式。因此,我们调低了普通模式的难度,并加入了故事模式,让玩家可以纯粹享受剧情,无需纠结于困难的战斗。当然,我们也为寻求挑战的玩家增加了更高难度的模式。
我谈了很多关于难度的内容,但游戏设计不只涉及难度。我们还在操作上加入了大量视听反馈。
我们为玩家的成功操作,比如格挡和反击,添加了丰富的视听反馈。我想每个玩过游戏的人几乎都能立刻回想起那套标志性的音效。不限于此,我们还利用了虚幻引擎的Sequencer工具来增强表现力。
时间膨胀(Time Dilation):动画开始时有一个短暂的慢动作,然后在实际移动时加速,在击中之前又是一个慢动作,以强调冲击感。
回弹效应(Rebound Effect):在击中前,镜头会稍微拉远一点,然后更快地推近,同样是为了强调冲击感。
镜头震动(Camera Shake):准备动作时有轻微的晃动,然后在命中瞬间有一次强烈的震动。
手K镜头:游戏中每个动作、每次攻击的镜头都是手工制作的,有时由设计师完成,有时由专门的电影团队负责。例如,在吕涅跳起前,镜头会从右向左移动,然后突然拉远,营造戏剧效果并强调动感。
我还没提特效,但你可以看到游戏内的效果。
除了视听反馈,让玩家去完成困难任务时,用游戏机制来奖励他们也很重要。
格挡:很难,但你的回报是规避伤害。在我们的游戏中,如果你能格挡所有攻击,实现无伤是可能的。而且你还会获得行动点,这在游戏中非常强力。
反击:也很难,因为它要求你格挡掉一次攻击的每一段才能触发。但它的回报是巨额的伤害,与之前展示的华丽动画相呼应。
当然,还有直接的奖励。让玩家开心很简单,给他们奖励就行了。我们确保每次遭遇战都有丰厚回报。
例如,击败Boss"决斗者"后,你会得到武器、升级材料、经验值,你想要的一切。即使是普通敌人,我们也提供了同样有意义的奖励。
最后还有胜利结算画面,我们在上面花了很多功夫:结尾有定格和慢动作,各种奖励信息从左右两侧弹出,给你一种"这是我应得的"的满足感。
接下来,我想谈谈回合制元素。游戏并非只有实时反应和视听反馈,我们也希望提供一定的策略深度和思考空间。
大家都知道"易于上手,难于精通"的原则。这对我们的游戏也适用。我们的理念是,你不需要理解太多就能享受游戏,而愿意深入钻研的玩家也能获得巨大回报。
为了实现这一点,我们为所有角色设计了简洁且多样的机制。每个角色都独一无二,但都力求简洁。当你刚获得一个技能时,它总是有效的,不需要满足什么额外条件才能发挥巨大作用。
我们会高亮显示最优选择,基本上,你不用想太多。如果某个东西高亮了,那它很可能就是你该释放的技能。
以吕涅的机制为例,她的技能会产生"标记",也会消耗"标记"获得额外效果。你释放的第一个技能,会触发连锁反应,自然地引导你去施放下一个被高亮的技能。
更重要的是,每个技能的主要效果都包含在其基础效果中,无需额外条件。例如,冰枪会造成冰霜伤害并附带减速效果。最初,减速是作为额外效果存在的,但后来我们将它移至基础效果。毕竟,你释放这个技能的主要目的就是减速。
这一逻辑被应用到游戏中几乎所有技能上:只要释放技能,就能获得其主要效果;而想要最大化收益,则需要在正确时机释放正确的技能序列。当然,这并非强制要求。
装备和属性也是同样的逻辑,分为两个层面。首先是简洁性,数值越高越好,每件装备都至少提供两种属性。在此之上,是更有深度的符文效果,你可以组合它们,定义你自己的玩法。
还有属性点的成长曲线。在低等级时,为了保证初期体验流畅,你不必投入太多属性点就能获得显著效果。同时,我们提供了便捷的洗点方式,方便玩家尝试不同构筑。
02
模块化与工具
如我之前所说,我们是个小团队,如果想提供大量的奖励,特别是装备的符文效果,确保每个敌人都能带来有意义的回报,并提供大量角色技能和敌人种类,我们得让设计尽可能模块化。
我们使用了虚幻引擎的蓝图(Blueprints),让设计师能直接集成符文效果、敌人种类和技能设计,从而快速迭代——迭代越多,游戏品质就越高。
对于符文效果,我们基于"触发器-条件-效果(Trigger-Condition-Effect)"的模块化结构。
举个例子。"回合充能"这个符文,效果是回合开始时获得1行动点。从蓝图上来看,第一个框是"行动点变动",条件是如果是回合开始,则给予1行动点。无论你改动哪个框,它依然有效。
比如你想做"回合治疗"功能,你只需把效果改成"治疗",它就会在回合开始时治疗角色。这看起来很容易,实际上也确实如此。但这背后是工程师们在底层做了大量工作,才让这一切变得易于理解并且有效。
然后,我想多谈谈我们的工具,因为工具可能是激发设计师创造力和提升生产力的关键。在我过往的工作中,工具支持常常不足。虽然虚幻5本身是一个强大的工具,但我认为仅靠它还不够。
我强烈推荐设计师使用Excel——它能让我们构建自己的工具,实现任何想要的功能。
举个来自我上一个项目《Wolcen: Lords of Mayhem》的例子。我们想为敌人做一个"阵型(Formation)系统"。但设计使用的工具非常糟糕。他们要求我用文本编辑器,在一个XML文件里,手动输入每个敌人的坐标来创建阵型。
我当然没那么干。我直接在Excel里做了个东西,让我可以在表格里画出阵型,然后它会自动导出XML文件。如果我没做这个工具,我可能只会做一些非常基础、非常简单的阵型,而且很难调试。
在《33号远征队》中,虚幻引擎的Sequencer功能是让游戏观感和手感出色的关键。因为我们是回合制,所以更容易把动画和过场动画融入玩法。
游戏中的每一次攻击都是一个独立的Sequencer。这意味着它们大部分,是由设计师手工制作的,包括镜头移动、震动、慢动作等变化。这是一个非常强大的工具,让我们能快速测试大量方案。
它还允许我们调整和混合动画。如果我们对动画不满意(并非动画师做得不好,而是我们自己也不确定想要什么效果),我们可以自己动手,在引擎中调整、测试,并实时反馈给动画师,帮助他们更好地理解我们的意图。
下面是一个动画修改的例子。左侧是我们最初的动画,测试后发现,它对玩家来说太难预判和格挡。于是,我们调整、剪辑,用不同的方式混合它,做了两个版本:一个只有两段攻击,用于普通敌人;另一个段数更多,用于游戏终局。理想情况下,这些修改应由动画师重新制作,但时间不允许,最后这个版本就直接用在游戏里了。
我们还利用焦距(Focal Length)和"回弹效应"来预告敌人的攻击,帮助玩家直观判断攻击时机。例如攻击时,镜头会先拉远再推近,并附带一些"时间膨胀"效果,在攻击前短暂慢动作,提示玩家"攻击要来了"。虽然不确定是否真的有效,但测试中没有发现负面影响,我们就保留了。
最后,让我们回到我最喜欢的话题:Excel。
我刚加入Sandfall时,我只有虚幻引擎的Data Table(数据表)。它们很棒,但缺少很多Excel拥有的功能。Excel最大的优势在于数据可视化和集中化——前者让我理解游戏里有什么,在哪里、该如何处理;后者让我方便用公式和曲线来进行平衡、迭代。
我们使用Excel的流程非常原始:从虚幻引擎导出数据表,在Excel中导入CSV文件、处理数据、重新格式化后再导回引擎。
该流程中的主要问题是,你会有多个数据源。有些成员习惯在引擎内修改数据表,而我们在Excel中工作,可能导致数据覆盖。这可以通过规范流程来避免。我的建议是让工程师帮你把数据直接从数据库导入Excel,然后再直接导回引擎,甚至不用打开引擎。
我们的Excel结构如下:
主表:包含所有角色、敌人、经验值、金币等成长曲线。
子表:基于主进度表,分别创建角色技能表、装备表、敌人表。
构筑模拟器:配置装备和技能,计算伤害输出等数值,无需启动游戏即可测试构筑。
关于成长曲线,我总是用非常简单的公式:基础值+(等级*增量)^系数。它易于修改和可视化,幂次的系数为0时是线性增长,越高则曲线越陡峭。
这是我们所有属性的曲线。蓝色的是基础属性,红色的是属性点,黄色的是装备。我们的思路是,在低等级时,属性点收益远比装备收益更强;而在高等级时,这又会反过来。因为在低等级,玩家的选择主要体现在分配属性;在高等级,玩家的选择则更多体现在装备搭配上。
至于敌人,基本是用的相同公式,与角色成反比。如果你希望你的角色能抗住2次攻击,那就让敌人的伤害就设为角色生命值的一半。我们先构建角色的属性,再按比例设定敌人的属性,并通过关卡乘数设置阈值,比如10级后,某些敌人生命值会大幅提升。
此外,我们将Excel变量接入了蓝图。以玛埃尔的技能"熊熊画界"为例,它的基础伤害是 0.4,乘以角色的能力值。你可以看到"Base Damage"这个变量名直接出现在了蓝图里。
我请工程师做了一个数据表,里面存放了我们所有Excel里的平衡变量。我们在蓝图里手动引用它们一次。一旦设置好了,我就可以在Excel里修改所有东西,重新导出,然后游戏里的一切都同时更新了。这让我们可以进行大规模的批量修改。
下图是所有技能的对比。蓝色的是偏弱的,红色的是偏强的。有了这种可视化,我甚至不用打开游戏就能微调。但永远要记住:数据不代表一切,一定要在游戏里测试。
下图是我之前说的"构筑模拟器"。你可以给角色配上特定的装备和增益,实时查看每个技能造成的伤害。这让你可以在不打开引擎的情况下,测试游戏中的所有东西。
03
结语
在《33号远征队》的设计中,最重要的一点是,作为设计师,我们获得了高度的独立性。
我们能直接调整动画,集成敌人和技能,这在以往项目中是无法想象的,不仅提升了效率,也让动画师能更直观地理解我们的需求。归功于工程师搭建的好管线。我们能快速实现创意,并通过大量玩家测试不断优化。
尽管实时系统很难做,但我们通过丰富的视听反馈和奖励机制,让成功格挡/反击变得极具成就感,保持了回合制的简洁,至少在表面上是这样,同时在模块化和角色构筑方面增加了深度。
所有这一切,都是因为我们有好的工具。这帮助了我们管理反馈,并快速迭代。
游戏葡萄招聘内容编辑,
点击「阅读原文」可了解详情
推荐阅读
游戏行业书籍推荐:
点击下方名片,关注公众号
(星标可第一时间收到推送和完整封面)
登录后才可以发布评论哦
打开小程序可以发布评论哦