撰文:王铮 封面:《如龙0:誓约的场所》 几乎所有电子游戏都会特地增添某些阻力,只有完成挑战或击败敌人,关卡才得以推进。从最简单的、预设的障碍开始,玩家接下来很可能会经历一段紧张且艰难的旅程。很多早期的游戏设计师深谙此道,创造了一大批以难度著称的经典游戏。 为了给玩家创造更大的挑战,设计师普遍采取了恒定的或是递进的高难度。这个方法显然有很大的局限性:精进技术以获取成功固然美妙,但对相当一部分人来说,克服困难的过程枯燥无比。更何况难度的标尺丈量在玩家身上,读数从来都不相同,技术水平及心态的差别导致了对同一款游戏的不同体验:有的人会越挫越勇并快速适应节奏,而另一些人可能仅失败几次后就选择放弃。 挑战与能力带来的心流体验图片:《FlowInGames》,陈星汉,2006 如何平衡这些玩家间的差异?很多设计师都进行了十分有趣的探索,其中最具代表性的是《风之旅人》(Journey)的开发者陈星汉。2006年,陈星汉在硕士论文(FlowInGames)中介绍了自己的作品《流》(Flow),并将心理学家米哈里契克森特米哈伊(MihalyCsikzentmihalyi)有关心流(Flow)的概念引入到游戏设计中。其核心理念之一便是以动态难度系统(Dynamicdifficultyadjustment,DDA)为基础,通过将难度交由玩家控制,以达到动态的沉浸体验。也得益于DDA这个名词的提出,游戏业界有了较为通用的描述这类做法的术语。 虽然我们可以认为,DDA理论成型于2006年,但变换难度乃至动态操控难度早已被一些游戏应用。笔者希望通过本文,简单梳理游戏中动态难度系统的发展历程,并介绍一些与此相关的优秀游戏。 本文将分为上下两篇,上篇会着重介绍动态难度的出现、分类及部分应用场景。第一阶段,难度变化系统的问世 回顾游戏史,难度变化系统的首次出现带有偶然成分。 1978年,Taito的《太空入侵者》(SpaceInvaders)发行,并立即成为热门游戏,到1980年《太空入侵者》街机已经在日本卖出超30多万台,在美国卖出6万多台。本游戏开创了多敌人非定向射击的先河(敌人仅在屏幕任意位置发射sprite,并不直接锁定玩家),但这种体验也这只是游戏进程的开端。当敌人被消灭时,由于微处理器中的一个故障,需要渲染的内容会变少,这导致了敌人的动画速度加快。虽然这种类似难度曲线的呈现是由技术问题产生的意外,但实际效果带来了更丰富的挑战性。 《太空侵略者》中,玩家可以先消灭侧面敌人,让中部敌人的触墙时间更长 街机时代早期,游戏制造商需要考虑如何延长街机寿命以达到更高的销量,而采购者则希望玩家能花更短的时间投入更多的币。 《太空入侵者》作为高难度射击游戏似乎同时符合二者的期望。在它之后,许多同类游戏随此风潮接连推出,例如《爆破彗星》(Asteroids,1979)、《蜈蚣》(Centipede,1980)、《大蜜蜂》(Galaga,1981)等。这些作品为了鼓励玩家反复挑战都会采用分数排行榜系统。 不过,街机一经售出便要服役多年,一味的高难度并不意味着新玩家会持续投入,倒是有经验的玩家会慢慢适应(一些高手甚至可以做到投一枚币游玩数小时)。为了获取更多收入,游戏厂商需要找到一个平衡点,答案隐藏在《太空侵略者》的难度变化系统中。 越来越多的厂商意识到该系统才是激励玩家游玩的关键,随即,他们在各游戏后续的街机版本中采用了难度随时间提升的模式。随着游戏推进,玩家的精神逐渐绷紧,为了挑战高分,更有可能不断地投入游戏币。这种结合排行榜与难度变化,且略具备惩罚性的游玩方式被证明十分奏效。 1982年,NAMCO研发了第一款纵向卷轴式街机射击游戏《铁板阵》,本作的问世也意味着开发者真正开始考量如何针对不同水平玩家实现动态难度设计。游戏中有32种敌人AI,采用了名为self,per,centaging(自定中心)系统,会针对水平更高的玩家提升难度。这个系统极其成功,一定程度上带动了《铁板阵》街机的销售,而《铁板阵》的流行,一度让NAMCO占据全球街机商场73的份额。 吃豆人中的四个风格迥异的幽灵 在这个射击游戏引领街机风潮的阶段,《吃豆人》(Pac,Man,1980)无疑是最特殊的一个,游戏中玩家需要躲避幽灵并规划路线,吃掉迷宫中的所有豆子,并前进至下一关。 在难度变化的基础上,《吃豆人》首次加入了模拟敌人的AI系统。4个幽灵分别对应4种巡逻方式,它们并不会全部紧追在玩家身后,而是采取夹击、跟随与放松的策略结合。与此同时,幽灵拥有追赶惊吓和分散三种行为模式,当玩家吃到迷宫中存在的四个大型豆子(之一),攻守随之转换幽灵变色并进入惊吓模式,玩家可以转而追击并吃掉它们获得加分。 《吃豆人》的可变化难度是双层级的:即游戏中敌人本身的追击速度,以及大型豆子的生效时长。它开辟了游戏史上的多个首次,尤其是敌方AI设计让很多开发者意识到游戏节奏的重要性,也影响了后续许多作品的动态难度设计理念。第二阶段,百花齐放的动态难度设计 经历了早期街机与家用机的探索,以及硬件上限的提升,原本由百视达(Blockbuster)等租赁企业带来的难度至上观念逐步得到改善(与街机类似,那个时期的很多企业认为,如果游戏难度大到玩家不得不反复游玩,他们最终就会购买游戏,这也是早期家用游戏机作品难度偏高的原因)。越来越多的发行商开始转变策略,设计师因而得以跳出旧有思路,转而关注玩家的游戏感受。 从1983到1990几年间,在最著名的家用游戏机FC上,诞生了无数经典游戏,其中不乏街机游戏的移植版。在这些游戏身上,也能看到动态难度调节的影子,其中最常见的是扩大平台的起跳碰撞,允许玩家在离开平台边缘的最后时刻起跳。除此之外,部分游戏的难度控制方式也创造了独特的体验: 《超级马力欧》(SuperMarioBros,1985)的跳关水管与藤蔓 《古巴战士》(Guevara,1988)的无限续命式打法 《松鼠大作战》(ChiptoDalenoDaisakusen,1990)有许多有趣的设计1。地图分支路线;2。双人模式下玩家托举队友一起过关(在系列2代,缺少弹药时,奇奇和蒂蒂甚至可以举起对方攻击boss);3。死亡后重生的玩家还可以乘坐气球快速通过某些障碍物 同期(即90年代前后),也是街机游戏的黄金期,各游戏厂商开始大量采用类似动态难度调节的做法。卡普空(CAPCOM)的很多清版过关类游戏都采用了多人游戏时难度提升、新玩家加入时释放全屏攻击的设计,甚至部分游戏中角色会自带道具上场。世嘉(SEGA)旗下街机也采用了许多优化玩家体验的改动,例如减小伤害性飞行物判定范围、扩大增益型道具实际吸附范围(大于图像显示的范围)等。具体的例子如动作射击游戏《太空哈利》(SpaceHarrier,1985):画面从远景逐层拉近的过程中,分布在路线上的障碍物,其判定框实际上并没有扩展到动画展示大小,这让模拟透视关系导致的物体畸变不至于过多影响玩家判断。 而街机射击游戏《龙魂》(DragonSpirit,1987)采取的方法是安排隐藏测试。如果玩家在第一关失去所有生命,游戏会转为简单模式,若玩家经受住了第一关的考验,游戏将在正常模式下继续,这种幕后变化玩家很难察觉。 《泡泡龙》(动作版)的最终boss 除上述实现方式,街机游戏《泡泡龙(动作版)》(BubbleBobble,1986)的游戏模式也是笔者特别想强调的。在游戏部分关卡中,有字母泡泡或奖励道具可供获取,当玩家击败怪物通过关卡时,可能会收集到特定组合的道具密码,而这些道具密码别有深意:它们可能会开启隐藏关卡,甚至游戏的真实结局只会在由密码开启的双人模式中出现。虽然玩家可能会在这些特殊关卡中死亡,但一旦探索出了道具密码,便可以记住并在后续游戏时复用,这无疑是极大的帮助。 在未对游戏源代码解密的年代,大多数玩家认为这些奖励道具是随机的(后续被证实计数器和标志物在游戏结束后不会被重置),但连续游戏时,细心的玩家会发现,在前期关卡就得到高级道具的情况时有发生。例如,一些道具构建的组合密码可以实现跳关,那么当玩家领悟到这些特殊密码时,便可以通过频繁跳关,一步步接近游戏的结局。 还要说明的是,这些密码组合并不是完全随机的,理论上,玩家可以通过反复游玩将之摸索清楚,并作为通关手段。这样的设计在当时看来无比超前,部分伪随机设计甚至让玩家误认为是真正的随机。无论从难度调节角度还是关卡设计角度,这样的构建都十分值得学习。 《宝可梦》的EV值系统影响了后续诸多游戏中类似亲密度的设计 90年代中期,硬件技术的飞跃式进步让家用机和掌机的发展路线出现交叠。GameBoy(1989,首发游戏包括《超级马力欧大陆》《网球》《打砖块》和《麻将》)作为便携式游戏机中的销量神话,其光环在这一时期逐渐褪去。新游戏销售增长乏力之际,特化JRPG《宝可梦》(Pokmon,1996,第一世代)的出现拯救了任天堂,大量不同年龄段的玩家热衷于此,并乐于交换宝可梦,而这个IP也衍生出了包含漫画、动画的庞大商业帝国。 《宝可梦》拥有极为特别且神秘的难度调整系统隐藏变量增长,玩家群体通常将此称为努力值(EffortValue,简称EV)。也就是说,除生命、攻击、防御、特攻、特防和速度等基本数据外,每个宝可梦还有一个隐藏的EV值。 当战斗获胜时,宝可梦即可获得EV点数,根据对手不同,获得的EV点数会有一定差异(例如攻击加成或防御加成)。但它不会出现在属性面板上,所以常常会被玩家误认为是关于性格一类的个性化设计。这并不算是坏事,因为该体系能让玩家感受到自己在切身参与宝可梦的培养。养成模式下,每只宝可梦都有自身特点,而战斗历史会影响其成长,老手可以通过探索和实验来主动了解相关情况,比如带领自己的宝可梦击败众多低等级对手,持续累积EV值并观察。这个系统还可以限制经验值糖果或作弊工具的滥用,因为由此带来的经验值和能力提升并不包含EV值。第三阶段,动态难度应用的成型时期 随着《沙丘魔堡2》(DuneII:TheBuildingofaDynasty,1992)与《毁灭战士》(Doom,1993)的出现,PC端即时战略(RTS)游戏与第一人称射击(FPS)受到越来越多玩家喜爱。同一时间,也正值3D技术与2D技术的转换期,2D游戏相对成熟的开发理论给3D游戏提供了强大的指导。 《流》的可操控浮游生物 到2006年,陈星汉论文中的作品《流》(Flow)发行。 在这款可以主动控制难度的游戏中,玩家操纵浮游生物吃掉食物及其它对手,然后主动触碰红色或蓝色标识,以决定前往下层或是回到上层。他们可以根据自己的游玩习惯实时决定难度,无需退出到菜单或重新开始游戏。流程中技巧差异被弱化,也不会有令人挫败的GAMEOVER,无论是谁,都可以沉浸于游戏本身。 陈星汉将心流的概念融入他的观点,提出动态难度的处理模式,又在自己的游戏中做出了相对完美的呈现。由此,DDA的概念开始被更多设计者引用和重视。 在这里,为方便理解,笔者希望可以补充介绍来自凯莱布康普顿(CalebCompton)的动态难度归类法(括号内为笔者说明): 短期DDA (平衡玩家的能力或运气,在游戏进程中短暂提供补偿机制,例如根据玩家状态实时随机生成道具,再比如暴击补正的保底机制等) 长期DDA (持续影响游戏进程,例如敌人的浮动等级) 永远开启的DDA (永久内置于游戏进程,常表现为玩家体验与实际难度的轻微差异,例如前文提到的扩大平台的起跳碰撞) 特殊状况下的橡皮筋效应所带来的动态难度调整 (缩小对战双方差距,例如赛车游戏中AI表现出的遇强则强,遇弱则弱) 例如第二阶段的街机游戏和家用机游戏,对应的常常是此分类体系下永远开启的DDA,它们将基础的难度调节模块内置于游戏进程,玩家通过反复挑战即可了解并熟练运用。这种理念下的难度调节系统更像一个触发器,等待玩家去触碰上限或下限。 但基于构思本文最初的想法,笔者希望能针对动态难度中的动态做出层次分级。即真正的动态难度系统,是可以根据玩家本身的不同,做出(可变性较高的)动态反应的系统。 为方便说明,下文会提到不同分类所涉及的游戏。为了缩小样本范围,减少重复举例,后续侧重点会更偏向DDA中动态的那部分,不再依照游戏发展时间线讲述。 笔者把这个阶段的动态难度分为: 玩家可以主动控制的动态难度 玩家难以主动控制感知的动态难度 其共同点是,可以针对不同水平的玩家做差异化难度处理。 《N》的前期关卡 除去陈星汉的经典游戏《流》,平台跳跃类解谜游戏《N》系列(2015)也应用了主动动态难度控制。该游戏拥有一个片段(episodes)系统,在每个片段中,玩家需要完成5个(基本上)难度递增的关卡,并共用90秒时间。游戏目标是在计时结束前触摸开关打开出口,再到达出口通过关卡。每个关卡中,都存在可以增加时间及分数的金币,精髓在于玩家无需全部收集,但需要自行调控并尽量保证在前期关卡中收集足够的金币储备,以满足后续关卡的时间消耗。越是后期,这一机制体现得越明显。 还有很多作品运用难度分档形式(玩家可以在任何时刻调整游戏难度),实现实时改变难度的效果。不过这可能不是主动动态难度控制的优秀做法,因为这样做一般都会破坏游戏内某小段时间的难度曲线。关于这点,下文的一些例子会有涉及。 此外,部分游戏的多周目、通关后对资源的处理也可能为玩家提供有关难度的选项,例如《只狼:影逝二度》(Sekiro:ShadowsDieTwice)的双难,《空洞骑士》(HollowKnight)的五门挑战,或是《如龙》(Yakuza)系列部分代目中的制作黑档功能(玩家可以利用此前任意难度下累积的物品及能力制作新存档,并转移至更高难度游玩)。不过这样的动态难度调整并非面向新手,更多是带有挑战或减负意味。 主动动态难度控制并不多见,因为当我们在讨论和识别动态难度时,倾向于将玩家置于不可知的状态下。 对于难以感知或难以主动控制的动态难度系统,代表会更多: 其中,《生化危机4》(ResidentEvil4,2004)的DDA广受赞誉和讨论。系统会追踪玩家的死亡频率及当前状态,以此调整游戏的Rank等级,当玩家死亡过多时,甚至会减少场景中的敌人数量方便玩家更轻松地通过。与此相关的,敌人血量、攻击等参数,也会因玩家表现出的操作水准而动态变化,此类设计在系列后续几代作品中也一直被沿用。 而《神之手》(GodHand,2006)实现了相对完整的动态难度可视化呈现。玩家击败敌人时,左下角的骷髅头难度槽会填充,当达到最高级别则显示为DIE字样,与此对应,完成关卡后,游戏也会根据此系统授予玩家分数,而分数可以被用于购买新能力。此外,《神之手》还存在挑衅增加神气槽、敌人残血后提高攻速和攻击欲望的设定。上述这些共同构成了该作充满节奏感与成就感的动态难度体验。 《合金装备5》(MetalGearSolidV,2015)同时采用了可以感知及难以感知的DDA设计。当连续潜入失败后,游戏系统会对敌人的攻击频次做出调整(削弱),如果玩家仍然难以通过,则可以选择降低难度并戴上弱鸡帽。有趣的是,NPC会在玩家戴帽后故意做出一些放水动作,例如蒙住自己的眼睛或刻意转头等,导致不少玩家感受到嘲讽并关闭这一选项。 与此相近,也有很多游戏会在玩家遇到困难时给出是否需要降低难度的选项,例如《如龙0》(Yakuza0,2015)的Boss战失败后选项,《如龙3》(Yakuza3,2009)的追逐战失败后选项。此外,《如龙》系列也有触发QTE时强制播放脚本动画以躲避攻击的永远开启式动态难度调节。 另外一个例子是《生化奇兵:无限》(BioShock:Infinite,2013),与《如龙》的封闭场景战斗刷新体力药一样,本游戏也采用了物品刷新方面的动态难度调节以帮助玩家,并且,角色接取物品时被赋予无敌的效果。 《马力欧赛车Wii》的橡皮筋系统 当然这样的难度设计并不总是令人愉快。《马力欧赛车》(MarioKart,19922017)系列采用的DDA系统通常被称为橡皮筋,顾名思义,可紧可松。当玩家处于第一位时,其余电脑AI会相应地增加移速,若玩家表现十分差劲,其它电脑AI又会轻微减速。游戏中的道具投放也有类似效果,名列前茅的玩家更容易获得相对无用的道具,名次靠后的玩家则有可能借助强力道具追回差距。这意味着玩家间、玩家与AI间较难拉开太大距离。 此机制在实际体验中利大于弊,只是负面效果亦不可忽略。其优点是,玩家会在大部分时间保持精神高度集中,沉浸于旗鼓相当的竞争。但另一方面,即便调节模式相对隐蔽,当玩家游玩次数足够多后,仍会有所察觉,进而产生被系统欺骗的感觉。 于是,游戏中不时会诞生一些莫名的情况:如果玩家在最后一圈处于第一位,很大概率会被蓝龟壳或其它强干扰道具击中,所以最佳战术反倒是在某个节点前一直保持排名第二。这让整个比赛思路变得有些奇怪且意义不明,因为这些系统看起来是在惩罚有技巧的玩家。 《FIFA23》的控制器设置(多人游戏中失效) 此类型的橡皮筋系统比较适合竞赛类游戏,例如足球的FIFA系列、实况足球系列等。当然,这些游戏通常会将多种DDA结合:玩家可以主动调整难度的同时,对手(AI)的能力、活跃度也可能会有较为隐蔽的浮动。虽然在单局进程中这种浮动不易察觉,但就半场或整场数据来看,玩家时常会感受到某些球员与实际能力稍显不符的高光时刻。而通过进程中动态难度的调整,也能解释比分为什么难以拉开差距,尤其是玩家获胜的情况下,往往能明显感知到:只进一球更容易零封对手,若打入多个进球,对手往往也会还以颜色。 本篇中,笔者简单梳理了动态难度的起源、部分较为常见的难度控制做法,同时引入了两种分类(第三阶段)帮助理解。在下篇,笔者计划介绍更多个性化的动态难度应用实例、部分开发者对动态难度的反思,以及其在应用场景方面的未来展望。 参考资料:见系列(下)篇 本文内容系作者独立观点,不代表indienova立场。未经授权允许,请勿转载。