万智牌设计中的数学问题(上)

作者:Mark Rosewater 旅法师营地编译 2019-11-06
我现在已经把车开上了马路,这也就意味着,新的一期的《行路杂谈》就要开始了。今天我们的话题是:万智牌中的数学。

让我先讲一个小故事吧。在中学的时候,我曾一度对数学产生疑惑:“为什么我要上那么多的数学课?!什么地方能用上数学?!”那时我一心想着写电影剧本,而我认为只要会数剧本页数和算薪水就可以了,我才用不着那么多数学呢!但我最终还是坚持学完了数学。而有趣的是,我现在的工作正需要很多数学。我在不久以前为了这期播客做了一个采访,采访后我开始思考一个问题:“万智牌需要多少数学?”我没法确定这个问题的答案,但肯定需要非常多。所以我今天想让你们知道:如果想要设计万智牌,学数学确实有一定的价值。我之前经常用不同的角度来考察万智牌,但我从没有从数学角度上考察过。所以我今天要讨论一下万智牌中需要用到的大量数学。

让我们从我的工作——洞察设计中的数学开始,然后我会谈论与玩家们相关的数学。关于洞察设计中的数学,我们应该知道的第一件事情是:这是一个集换式卡牌游戏(TCG)。在一般的游戏中,所有用户都会买到完全一样的产品,有完全一样的体验。但是在TCG中,情况完全不是这样:你开到了一些卡,而你的朋友开到不一样的卡。每一个玩家都会通过一系列随机的卡牌来获得不同的游戏体验。这对于设计万智牌是一个挑战——毕竟如果我知道每一个人都会得到一样的东西,那么我就不需要用到数学了。但我们确实需要做很多计算,因为当我的团队想要制作系列中的一个主题时,我需要关心这个主题出现在补充包里的频率。毕竟我不愿意看到我在一个系列中设计了一个主题,而你开了10个补充包以后还看不到任何这个主题的单卡。举例来说,神河群英录是一个传奇主题,其中的绝大部分传奇生物是金牌,少部分是银牌。但是,你要开多少包才能意识到神河的传奇主题呢?并不是每一个包的金都是生物,并且即使你开到了金色传奇生物,这也不奇怪,毕竟每个系列都有这样的牌。当你打开了多少个包后你才会意识到:噢等等,这是不是一个传奇生物主题的系列?我们想给玩家的体验是,当你开了第一包以后,你对这个系列的主题已经有一定了解了。当你开了3到4包以后,你已经能够确定这个主题了。

对于起源才入坑的我,勇丸也许是我对神河的少数一点点印象了

因此我们需要计算某个主题的期望值。期望的含义是,当你打开一个补充包时,我们有可能开到多少我们在乎的单卡。比方说我有一个主题——神器,结界,传奇……无论这个主题是什么,我都需要知道这个主题出现的频率。计算这一点的方法是:在一个补充包中,会有15张卡。1张是基本地,10张铁,3张银,1张金(有1/8的概率被替换成秘稀)虽然可能会有特殊情况发生,但这些就是你通常会得到的牌。我们需要弄明白的是:设计出来的牌分别有几种?——铁约101张,银约80,金约53,秘稀约15。我们要计算多少比例铁牌是这个主题的单卡,然后将这个比例乘上10,就是这个主题的铁牌出现的概率。举例说明,我们有100张卡(铁牌应该是101张,但为了方便计算不妨记为100张。)假设这100张里有10张符合我的主题。(即1/10的牌符合主题)目前的期望就是1.0,即我打开一包补充包能获得该主题单卡的张数期望值是1.0。假如银牌中的8张卡同样符合这个主题的话(1/10的银牌),银铁的期望就是1.3。如果我想要金牌的期望也为1,那么我们就要设计约6张符合这个主题的牌。将所有该主题的牌在该稀有度中出现的频率求和,就是最终的期望(金和秘稀即计算略为复杂,因为金有1/8的概率被替换成秘稀,所以金牌要在比例上乘7/8,秘稀则是乘1/8)。在我的设计中我会关注这一点,因为我想要搞明白某一个主题出现的概率是多少。

期望在某一些方面会变得更加复杂。比如A+B式机制——拿疯魔举例。疯魔只有在其他效应让你弃掉这张牌时才会发生。即在这个例子中A是能弃牌的效应,B是疯魔效应。所以当我在设计时我就应该同时考虑A和B效应的期望。


另一件让数学变得甚至更有趣的是当我在讨论期望的时候,我在讨论的仅仅是大致的期望:这仅仅发生在随机的一包中。但是,并不是所有人都会使用所有颜色的卡,所以我们不仅仅有某个主题出现在补充包里的期望,我们还有这个主题被玩家使用的期望,那意味着并不仅仅关注“补充包里有什么卡”,而是“什么单卡最可能被使用”。所以我们做的一件事就是将单卡评级来判断他们有多大的可能在限制赛及构筑赛之中被使用。

而更加复杂的事情是颜色。我可能要设计一个主题,而这个主题并不会在每一个颜色中都出现。所以我们要弄清楚的不仅仅是总体上的期望,还有某一个颜色中的期望。这样做的目的是保证无论玩家得到什么,他们都会以合理的数量出现。在设计过程中我们还会用到一些小技巧,比如火花之战是鹏洛客主题,而多明纳里亚是传奇主题,而我们在这两个系列中都暗示了主题的线索,即每包多明中一定会有一张传奇,而每包火花中必有一张鹏洛客。

另一件我们需要关心的事情是单卡在印刷版面上的分配问题。如果所有某个主题的单卡都在一个版面中被印刷出来,那么期望显然很好计算,因为你可以自由决定印多少版这样的牌。但是如果这些牌和其他的牌混在一起印制,那么期望的计算就需要更多的数学知识。

如果同一主题的牌都印刷在一个版面上,那自然就很好决定你印出来的数量

所以期望是我需要做的数学中最复杂的一点,因为我必须搞清楚设计单卡的正确数量。许多期望的因素同时来自玩家期待和玩某个主题的程度,以及这个主题在某个颜色中出现的频率。

另一个我们关心的重要数学问题是“保证事情的正常运作”。尽管洞察设计对最终的结果并不负责,但当我们做一个机制或其他东西时,我们应该要保证“我们做的这个能行得通。”比如卡牌的费用曲线,我们想要保证的是玩家在玩的时候能够得到不同费用的单卡。要是在限制中,我们让所有单卡都变成4费,那么麻烦就会出现。因为前三个回合玩家除了下地以外无事可做!在一套合理的套牌里,你会想要合适数量的1费,2费,3费,4费曲线,而你不希望你的高费卡太多(因为你在有足够数量的地时你才能够施放这些咒语)。这就是一个玩家在构筑套牌时所需要掌握的数学。而我们需要负责的数学则是保证玩家有做出选择的空间(即能够在轮抓中抓出一套曲线流畅的套牌)。

当然我们不仅要解决单卡的费用问题,同时也要知道这些卡牌在对局中的运作模式。有时我们会为单卡设计一些额外费用的效应,比如增幅。所以我们要把这张牌的两个方面都考虑在内:它可以既是一个2费曲线,又是一个5费曲线,并且我们要知道它被当作2费和5费曲线使用的频率分别应该有多大。万智牌的创始人理查德·加菲是一名数学教授,所以在设计中有许多数学问题是很正常的。而我的目标是能够解决许多类似上面讲到的设计中所必须面对的数学问题。

自然,许多因素由TCG的随机性所导致,然而很多宏观层面上的数学是必须的。比如,我们十分关心的一点是“万智牌需要玩家拥有多少计算能力?”举一个简单的例子,当一个生物需要改变他的力量和防御。最简单的计算是“X/X”与“+X/+X”。比如一个我对一个2/2用了变巨术,+3/+3,那它自然就是5/5,这很好计算。但把所有生物都设计成X/X的话那我们的设计范围未免太窄,所以我们最经常设计“+X/+X”的膨胀效应来方便计算。不过有时候我们在能够自我膨胀的生物上所做的事是让其在膨胀后变成X/X,比如2/3用异能自我膨胀获得+3/+2,变成5/5。当然这个计算的逆运算显然更简单一些(对5/5做加减当然简单)。

另一种十分简单的方式就是仅改变力量而不改变防御。许多复杂的运算都基于对生物防御的计算,但是如果仅仅改变力量的话,计算就会更加简单。所以+X/+0比+0/+X出现得更多。我们一直在尝试完成的事情是不仅保证对局能够流畅运行,并且玩家的计算也能更加简单。


最近mo上有依尼翠轮抓,看牌表的的时候刚好看到这张卡。依尼翠很好玩快来玩。

然而有些时候我们发现数学起到反面作用。在鸡飞2系列,我设计了分数机制。表面上看来,这是一个有趣的设计。但我们在实际中发现的是玩家们并不习惯这种设计。例如,你有16生命,然后受到了2又1/2点伤害。这种计算花费的时间超出了我们的预期。我们本应在测试时想到,但实际上我们并没有——不得不承认我在之前的设计中犯了许多错误。

另一件事是可以对任意目标施放的咒语。那些限定对象的效应不会让计算变得复杂(比如自我膨胀),而可以对任意目标施放的咒语本身让玩家在选择目标的时候就要计算与抉择了,那么我们就会这种咒语在数字计算上简单一些。比如我们设计的所有变巨术效应都让生物获得+X/+X,我们简化了力量与防御的计算以弥补它可以对任何目标施放所造成的复杂情况。另一个例子是白色的赞美诗效应通常都是+1/+1,使玩家在力量与防御的计算上不那么头疼。



下篇:万智牌中的数学(下)

作者:Mark Rosewater
译者:小闪电0124
来源:旅法师营地编译
原地址:https://www.iyingdi.com/web/article/mtg/88725

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多