Sid Meier你也错了:关于数值设计的闲扯
你们都看了文明他爹Sid Meier在GDC上的讲座了吗?
没有看?没有看就别去看了……席德他就真不是一个演讲的料子啊。虽然开篇就放了“你们这些听众在游戏设计上什么也不懂”这样的狠话,但是内容还是闷到一佛出世二佛涅磐。安心做游戏设计师吧,席德大神。果然人是不能面面俱到的。
不过,在演讲中途他讲的一个笑话倒是提起了我的兴致。
“有很多游戏测试者反馈抱怨文明的战斗系统。他们觉得战斗的胜负太不合理了。他们可以勉强接受‘啊,我的2个输给了敌人的1个’,嗯,这是我运气不好……可是当数量增加的时候,他们会说‘啊,我的20个输给了敌人的10个!这怎么可能!’(全场笑声)难道20比10和2比1不是一样的吗?这些玩家对概率和数字的感觉实在是……(下略)”
看到这里我也笑了。哦不,不是因为你这个笑话很好笑。
席德·梅尔大爷,这次你也犯错了,玩家们并不只是愚蠢。他们的直觉想法可是很值得重视的:1比2和10比20在很多情况下确实是不一样的,数值设计这事情可不是像看起来的比例相同那么简单。相比于乘除的简单扩大来说,看起来“数字感缺失”的玩家们的观点同样有着充分的依据。
因为现实也并不是按比例放大那么简单的。拿破仑曾经说过,2个马木留克可以打败3个法国兵;100个法国兵和100个马木留克势均力敌;300个法国兵大多能战胜300个马木留克,而1000个法国兵总能打败1500个马木留克。玩家心目中的数字世界就差近于此。
让我们先来分析某些玩家的典型想法。1比2,是50%,没错;10比20,也是50%,这也没错。但是,如果我们从“差额”的角度来考虑的话,2-1是1,20-10是10,后者足足大10呢!你这混蛋设计师怎么就敢吞吃了老子那多达9点的优势呢?!(拍桌子)
——实际上,这种思路更接近于普通人的思维方式,也有明确的事实可以支持这种想法。来做个思想实验。
假定我们有一些完全一样的士兵,他们的战斗力都一样,轮番上来进行贴身肉搏单挑。他们每个人的战斗力是一样的,干掉对手的概率也是一样的,比如说百分之五十。那么,在这种情况下,如果我有2个士兵,对手有1个士兵,对方爆冷打败我的可能性仍然不低,足足有25%;但如果我有20个士兵,对手有10个士兵,那么对手打败我的可能性只有0.5的10次方,也就是0.0009%,已经非常趋近于零了——哪怕我以一命换一命,你要打败我也得人品爆发十次吧?
那么,现在把这些士兵抽象成数值。我攻击力是2,你攻击力是1,我赢的可能性是75%;如果我攻击力是20,你攻击力是10,那么我赢的可能性可是高达99.999%了。席德梅尔的笑话在这个假设情况下就行不通了。
这就是“纯粹线性数值”的数值设计,数值的实际意义取决于双方的“差额”而非“倍率”。在这样的系统下面,人民苦恼的概率和乘除法变成了他们喜闻乐见的加减法。在各种游戏中被大量使用的抽象模型(绝对比文明的概率抽象模型多好多倍)。你在几乎所有牵涉到“双方数值对抗”、“线性等级提升”这样的游戏里面都能看到类似的设计,在RPG和SLG里面尤其多,比如龙与地下城。龙与地下城里面几乎所有的数值都依赖于“双方能力的差值”而非“双方能力的倍率”,而从事实结果来看,差值的想法更接近于这些玩家本能的直觉。我的能力是+9,你的能力是+5,我比你多4,所以我有个额外20%的成功率——嗯嗯,很合理,我们接受了。
相比于倍率的设计,这种数值设计非常适合于各种RPG游戏中的攻击力啦、防御力啦之类需要进行“对比”的数值。“倍率”设计相比“差值”设计有个非常大的劣势:在高等级的情况下,要达到同样的效果,绝对数值需要有非常大的变化。用文明4举例,锤兵8比起枪兵6有着33%的优势;到了现代以后,要达到同样33%的优势,32的装甲步兵比24的武装直升机必须强出8点来。大多数玩家从小就在线形数值的熏陶下长大,他们觉得32对24应该比8对6有着大得多的优势也无可厚非。如果你想要让玩家不产生疑惑,在哪里使用线性数值、怎样安排线性的比率都是非常值得注意的问题。
现在让我们来看看另外一些玩家直觉中的不满。哦,我有2个,他们有1个,嗯,三分之一,我输掉得概率应该是33%,这个数值挺大的,合理。但是,我现在有20个!他们只有10个,我这么大的优势,怎么还能是33%呢?你这混账设计师,这不可能!(掀桌子)
乍看之下,这些玩家似乎很愚蠢,连简单的算术都不会——且慢。他们不是觉得“1对2”和“10对20”输掉的概率一样不满,而是对“10对20”输掉的概率很高这件事情本身感到不满。他们觉得,这个意外概率不应该是33%(10/10+20),也不应该是25%(上面算出来的假设数值),而应该更低。他们的思想根源要说起来比较复杂,还是让我们从思想实验开始。
现在假设我有200个兵,你有100个兵。双方不是逐一单挑,而是站成方阵,在野地上彼此同时对射。双方的命中率平均都是20%(数字设高一点儿是因为我懒得算太多轮),随机倍率范围是0~2倍,用最后的结果来弥合概率。
攻击轮数 1 2 3 4
我方兵力 200 180 168 163
你方兵力 100 60 24 0
嗯?这不是33%啊!你的100个兵根本没有干掉我的100个兵,只干掉了37个兵;就算所有随机数结果都是最大,你也只能干掉我73个兵。你能赢的平均概率远远不到33%,最多也不超过20%。
事实上,这个概率就是平方的比值:4万比1万,4比1,20%。根据普通人对百分比概率的印象,20%就应该是“很少发生”,一旦发生了他们就会不理解。这种数值可以叫做“平方倍率”数值,如你所见,它也是有着充足实验证据支持的。一般人并不会觉得20对10会有99.999%的胜率;但他们也觉得不应该只有66%的胜率,80%的胜率刚刚好。
那为什么2对1的情况下,大家就能接受呢?那是因为在这种情况下,战斗一次就结束的概率太高了。假定双方的命中率不是20%,而是100~200%,那这个平方概率就会失效,重新回到标准概率的情况下。
如果你对军事感兴趣,那么你很可能已经看出来这个公式是什么了。没错,这就是“兰开斯特方程”。在双方火力相同的情况下,任一方实力是本方数量的平方。这个公式用于在持续战斗中双方都计算损失的情况下:只要战斗不是一次结束,那么优势方的优势会越来越大。这也更加接近现实的情况。
这种数值设计非常适合作为战略游戏的数值,比如兵力、攻击力等数值;由于强大的正向边际效应,它也很适合用在RPG游戏里的那些很难提高的数值上,比如天赋啦、武器攻击力啦之类的数据上。当然,理论上来说它用作补给或者续航力的设计是最合适的,不过好像还没有什么合适的游戏能完全展示现实世界中补给的重要性。
在这个笑话上,群众的直觉覆盖的范围,远比席德·梅尔老爷你的逻辑要大得多啊。怪不得文明直到4代都一直还在用长矛捅下直升机呢。
当然,在游戏数值设计中还有一些其他的数值设计手法问题值得讨论,比如边际效应(正向/负向)在线性数值/倍率数值/平方倍率数值中的使用,百分比数的使用和在玩家心目中的印象、大数字和超级大数字的处理、在数值线上使用飞跃点和关键点、控制特殊数字的数值……不过这些就和本篇的主题无关了,等我找到由头再继续闲扯吧。
(如果你们谁有感兴趣的话题也可以提出来点菜,没准儿我就写了……)
|