【译】随机性与“随机值的吸收阈”

作者:山丘小狗
2022-08-10
15 11 1

引言

本文由 indienova 获得原作者授权译制,如无许可禁止二次转载。 

在游戏设计中,随机性非常重要!这是因为,随机性能够让游戏状态变得更丰富也更复杂,却不至于让玩家淹没在庞杂的信息以及随后而来的大量计算中。目前为止,我撰写有关随机性的文章已有十余年,但这篇文章却能够代表我关于这一主题屡经修订的最新观点。让我们先回顾一些旧文中提到过的内容,再来介绍一些新的观念。希望这能够帮助读者在自己的设计中更好地利用随机性,或者至少能够开始思考全新的可能性。

  • 首先,我们引入两类随机性输入随机输出随机,这样称呼它们,是指随机的触发时机不同:是在决策之前(输入),还是在决策之后(输出)?(此处必须提及 Ludology 播客的贡献,是他们最早让我注意到了这一区别)。
  • 接着,我们为随机性加入第二坐标轴:这一坐标轴反映了随机性的均匀程度(或者也可以称其为“公平程度”)。这就产生了均匀随机可变随机。均匀随机是指无替换的随机性(即不放回抽样,例如,从一副被洗好的牌组抽牌),可变随机是指有替换的随机性(即放回抽样,例如,掷骰子)。
  • 最近,我一直在考虑加入第三坐标轴,以探询随机性效果的强弱,即随机性对游戏状态的影响程度有多强烈

弱随机性与强随机性

基本上,“影响程度”坐标轴反映的是随机性的动态范围。如果抽牌时所有牌的数值都差不多(《龙桥》(Dragon Bridge)中就存在类似的情况),就是弱随机性。如果这些牌的数值有很大的差别,就像在《万智牌》(Magic: the Gathering)中那样,就是强随机性。

弱随机性指通常对状态结果影响很小的随机性。《幽浮》(XCOM)中经典的“命中率”战斗,会以百分率形式给出命中与否的可能性。在此基础上,当命中时,还有一个伤害范围(可能类似 3-5 点伤害这样)。通过增加伤害范围,或者加入在命中时有可能触发、也有可能不触发的各种强影响力的效果,我们就能让随机性变得更强。而通过减少失误的机率(比方说,只要开火就能造成 3 点,4 点或 5 点伤害),或者虽然失误率不变,但伤害值却保持固定(命中时总是造成 4 点伤害),我们就能让随机性更弱。暴击(critical hit)即是一个通常会让随机性变得更强的例子,因为暴击通过会扩大随机性的动态范围,有时甚至非常显著。例如,在《军团要塞 2》(Team Fortress 2)中,暴击会造成四倍于平时的伤害。

与另外两个坐标轴一样,该坐标轴是连续的,而并不是非此即彼。问题不是“这是强随机性吗?”,而是“这种随机性有多强?”当处于中间某些位置时,会有一些灰色地带。重点是,作为设计师,你可以将你的游戏中的随机性,推往其中一端或另一端。

保守与激进的随机性设计

我以特定方式绘制了图表,将“比较激进”的随机类型放在下面一行,而将“相对保守”的随机类型放在了上面一行。这是因为,图表下半部分的随机类型,简单来说就是“更加随机”。它们更容易在我们触发随机性时产生负面效果,比如说,感觉在比赛中被毫无意义地淘汰,或者某种令人感到不公平或沮丧的交互。

同时,“相对保守”的一行则可以视为一些从根本上就“不那么随机”的随机性。它们不太可能造成随机相关的负面效果。然而,它们确实也存在随机性不足的风险,并且未能实现我们向游戏加入随机的初衷。仅仅只有弱随机性、均匀随机性和输入随机性的游戏,很可能会让玩家觉得像是在参与一个完美信息博弈,虽然理论上讲,确实存在随机事件,但它们很容易以近乎完美的精准性被计算出来,从而无法发挥应有作用。

或许,《波多黎各》(Puerto Rico)就可以算作这类失效随机性的一个例子,这款游戏唯一的随机因素是出现哪些作物卡,而它们都是彻底的输入随机和弱随机,并且还在一定程度上是均匀随机。正因为这样,基本上来说,《波多黎各》玩起来或多或少像是完美信息博弈,而其游戏状态也因此不得不保持相对简单。

随机值累积

游戏中的随机事件是指,玩家角色的属性/能力/位置等数值随机增加或减少。以《幽浮》为例,如果你方单位对外星人造成暴击并立即杀死了它,玩家角色的位置就能取得优势,甚至可能会是显著的优势。这种作为随机结果赋予给玩家,能够帮助他们获胜的数值,我们称其为“随机值”(random value)。

与游戏设计中许多事物一样,设置它们是为了确保我们有足够多的随机值来让随机性生效,但又不足以让随机值来主导游戏。我们希望玩家来主导游戏;我们也希望最终的输出是玩家在整个对局中的输入所产生的十分明确的结果。我们不会希望玩家必须得玩五局、十局甚至更多局游戏才能弄明白他们究竟是真的赢了,还是只是被随机性糊弄了。在这种情况下,如果我们放任太多的随机值产生累积效果,并影响游戏对局,由此产生的结果并不比掷硬币来得更有意义。

从历史经验来看,游戏通过进行多次对局来解决这类问题。在《万智牌》和《扑克》这类高度随机的游戏中,经常能看到引入竞技场、锦标赛或其他类似机制,来试图缓解过多随机值累积引发的问题。但很难否认的是,如果保持其他条件不变却能从仅仅一次对局就获得更有意义的输出,这将会非常棒。

顺便一提,人们对随机性与随机值累积有一个常见观点:在某种程度上,随机值会随着时间的推移而自动衰减,因为虽然你可能会在第 3 回合打出暴击,却也有可能在第 5 回合失误。随着时间的推移,掷出大量骰子往往会使得其数值(的平均结果)朝期望移动(这种效应在具有均匀随机性的系统中定然很显著)。然而,这种效应的重要性往往被夸大了,因为并不是每一次掷骰子都同样重要。在游戏早期阶段对一个高价值目标造成的暴击,其重要性,显然不同于,在已经基本获胜的时候对最后一个目标造成的暴击。

那么我们该怎么办?我们有什么办法能缓解这种破坏游戏的随机值累积呢?

吸收阈

过去六个月,我经常在思考一个新想法,它的灵感部分来自我对《万智牌》以及更近一些的《炉石传说》的游玩经验。这就是我称之为“吸收阈”(Absorption Thresholds)的概念。我认为,对涉及随机性的游戏设计来说,它会是一个非常重要的概念。吸收阈,是一种“削减”多余随机值并将其从游戏状态移除的机制。

吸收阈的典型例子之一,是我们早已广泛应用在无数游戏中的经典“生命值/伤害值”系统。在这类系统中,当造成超出该单位生命值的伤害时,溢出的部分会被系统“吸收”。因此,如果你方单位有 5 点生命,而我对其造成了 15 点伤害,那结果等同于我造成了 5 点伤害:其余的 10 点伤害被系统吸收,并从游戏状态中移除,无法以任何方式累积来影响对局的最终结果。

在我看来,万智牌的系统规则比《炉石传说》要好得多。原因之一是,在《炉石传说》中,你对任意生物所造成的每一点伤害都会被记录下来。而在万智牌中,生物受到的非致命伤害会在回合结束时被移除。据我一个朋友说,其实这并不是出于什么系统考虑的游戏设计目的,而是,若非如此,计分过程就太烦人了。不过,这是一个非常愉快的意外。

这类“召唤生物互殴”游戏的基本问题之一是,在某些真正基础的层面,它们和儿童扑克游戏《斗大》(War)有共通之处。《万智牌》中存在大量的战术策略,但根本而言,你只是在从牌组中抽取一些数值可变的牌,把它们打到对手身上来造成伤害。在《斗大》的例子中,玩家打出一张数值为 3 的牌,接着下一位玩家就会打出一张数值为 4 的牌。《万智牌》的策略布局建立在从根本上来说非常相似的基础上。(《万智牌》玩家开发出了一个评级系统,可以对卡牌从 1 到 5 进行评级,实际上,这与像《斗大》这样的纯整数数值游戏,形成了非常巧妙的一一对应。)


显然,《万智牌》的玩家和设计师并不希望游戏像《斗大》那样简单,因此,游戏加入了许多机制来让问题变得更复杂,好减轻其影响。伤害吸收(Damage Absorption)是《万智牌》应对这一问题提出的非常重要且系统性的方案,这种设计让游戏和《炉石传说》相比变得大相径庭。(不过,在实践中可能很难看到这些差别,主要是其他规则也发生了变化——最相关的是《炉石传说》的法力系统并不随机,这就让游戏相比使用随机抽取地卡产生法力的《万智牌》来说,在这一方面的随机性大大减少了。)

此外,我在《宝石奇才》(Gem Wizards Tactics)的战役模式所作的实验也启发了我。在战役模式中,你会进行一系列的战斗,直到赢得最终决战。在此期间,你需要招募新兵,获得升级等等;系统有点类似《幽浮》,但要简单得多。在一次补丁中,我们尝试了一个新规则,每一局玩家单位的生命值都会被记录下来。因此,如果你的“收割者”在本局游戏中只剩 1 点生命,那么,在下一局游戏开始时,它也将只有 1 点生命。

上图:《宝石奇才》战役模式大地图界面

这条新规则最深远的影响是,如此一来,每 1 点伤害都将变得很重要。你不再能“花费”一些生命值来实现某些目标(或者至少这样做的门槛大幅提高)。这也让随机性的效果,比如说在战斗系统中,随着时间推移而累积;而在战斗结束时,重置每个单位的生命,则是一项对所有这些随机性的吸收机制。这条规则最终变得非常具有压迫性,因此我们在下一次补丁中删除了它,但它提醒了我,设置这类吸收阈有多么重要。

二元胜负条件

多年来,我一直难以准确解释为什么对我来说,非胜即败的二元胜负条件如此重要。我长期以来的立场是,以分数作为评判标准的单人策略游戏,以及其他给出“排位”的策略游戏,其规则都有待改进。我认为,如果可能的话,策略游戏应该努力寻求方法以拥有二元胜负条件(特别值得注意的是,以分数作为评判标准的双人游戏是拥有二元胜负条件的)。

二元胜负条件,在某种意义上,就是一道终极的吸收阈,因为它在某些时刻“砍掉”了多余的数值。并非每一点数值都很重要,因为只需超出特定数值就能胜利了。如果你设计了某种类似“排位系统”的东西,比方说像《炉石传说:酒馆战棋》(顺便说,最近我经常玩这款游戏)那样,现在,我们将它作为每一次随机结果都很重要的例子,而《酒馆战棋》也的确是非常随机的游戏!

奇怪的是,游戏的一条提示信息里说,“获得前四名”即“胜利”。好吧,这对我来说没什么毛病,可是,为什么在我胜利之后游戏还在继续呢?要是让我给《酒馆战棋》的设计团队提建议,我会建议他们在第四名选手被淘汰后结束比赛,剩下的选手都“获胜”但不会取得“名次”(如第一、第二、第三等)。有人会争辩说:“行吧,但我想知道谁的队伍最棒”。这个要求无可厚非,只是我建议大家试着想想,在《星际争霸》(Starcraft)的 2v2 战斗结束时,你也不一定能知道哪个队友部队最强。除此之外,《酒馆战棋》一局游戏的净时长无论如何都不具备真正解答这个问题所需的条件。到游戏后期,只剩两个玩家争夺第一时,通常仅需一两场战斗来决定结果。而《酒馆战棋》的战斗又非常随机!知道“强大双方对决,到处都是随机效果,谁将获得某一次胜利”,和知道丢出的硬币会以哪一面落下一样,都没什么意义。

但在《酒馆战棋》中,你会做许多这样的事情。另一个非常好的的吸收阈游戏机制是如何对玩家造成伤害。较为愚蠢的做法是,在赢得一场战斗后,让每个幸存生物都对对手造成伤害,但在《酒馆战棋》中,生物造成的伤害基于它们的“商店等级”,而这是一个永远也不会大于 6 的数字。这意味着,哪怕你召唤出了攻击力超过 100 的生物,以很大的优势胜利,但许多额外数值(至少部分是随机的结果),却都被系统“吸收”了。

有很多方法能在你的游戏中实现吸收阈,这对具有随机性的游戏(如果你要问我的话,我会说,就是那种需要引入随机内容的游戏)很重要。德式桌游往往不乏这样的例子,因此我建议从它们那里寻求更多灵感。

注:题图来自 envato 订阅

山丘小狗 

A good snowman is hard to build 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. icue 2022-08-10

    竟然看到了 Gem Wizards Tactics,这个游戏超冷门但是很好玩,作为战棋有各种和环境的互动

您需要登录或者注册后才能发表评论

登录/注册