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代都一直还在用长矛捅下直升机呢。

  当然,在游戏数值设计中还有一些其他的数值设计手法问题值得讨论,比如边际效应(正向/负向)在线性数值/倍率数值/平方倍率数值中的使用,百分比数的使用和在玩家心目中的印象、大数字和超级大数字的处理、在数值线上使用飞跃点和关键点、控制特殊数字的数值……不过这些就和本篇的主题无关了,等我找到由头再继续闲扯吧。
  (如果你们谁有感兴趣的话题也可以提出来点菜,没准儿我就写了……)

Advertisements
此条目发表在游戏设计研究与批评分类目录。将固定链接加入收藏夹。

30 Responses to Sid Meier你也错了:关于数值设计的闲扯

  1. Xiaogang说道:

    写的好!麻痹总算让我这数学烂人懂了,文明的战斗真的很屎

  2. Xiaogang说道:

    我还有个问题就想知道,在所有的奇幻背景游戏里面,如何取得施法者和肉搏职业之间的平衡。你知道我的意思不是让施法者生命值变得更弱,憋魔法需要更多时间,使用高级魔法需要更多mana这类傻逼主意。

  3. Joe说道:

    我这个纯粹玩的玩家求元帅继续闲扯. 楼下继续

  4. Ixidor说道:

    可以让魔法师无法使用牛逼武器

  5. Ixidor说道:

    元帅我有个问题想提一下,你没时间回答也别介意:是否有可能把MGS这种游戏搬到COD:MW这种战场场景里呢?我不是指MGS4里双方假惺惺的对射,而是MW里有基本战斗常识的军人

  6. Necroman说道:

    魔法和肉搏的平衡这个话题太广泛了,不太好描述。如果要从游戏制作角度看,抽象到“远程对近程职业”、“控制对DPS职业”这样的模型可能更好。或者你的意思是“依赖于技能的职业”和“依赖于默认攻击的职业”?

  7. Necroman说道:

    MGS的Sneak其实是个很大的话题。由于我也做过某个叫做Splinter Cell的游戏,类似MGS的Sneak-潜行这一套逻辑限制是非常大的。如果真的像COD里面那样,敌人见到就反应,这游戏就没法玩了……

  8. 黑白说道:

    也有人批评过魔兽世界的“不真实性”,说明明在boss眼前清小怪,当领导的看着小弟被吃干抹净却没反应,这不是太不合理了么!有人回复曰,如果怪的视野和反应都跟你一样远,当年你跟北郡偷葡萄的时候就死800回了

  9. Or说道:

    游戏如果事事强调真实性,个人还是觉得没啥好玩。元帅,有个疑问:“这种数值设计非常适合作为战略游戏的数值,比如兵力、攻击力等数值;由于强大的正向边际效应,它也很适合用在RPG游戏里的那些很难提高的数值上,比如天赋啦、武器攻击力啦之类的数据上。”这一段我理解不了,如果可以,希望能简单举个天赋武器攻击力的例子,感谢。

  10. Necroman说道:

    举个例子来说,黑暗世界系统下面的天赋。他们是用这种方法来间接完成平方效果的(不是实际数值,只是大意):比如你的天赋是4,那么可以进行4次通过值为4的判定;如果天赋是5,那么可以进行5次通过值为5的判定。这样用双重设计的方法达成平方倍率的效果,5比4的效果会强出很多。

  11. xiao说道:

    文明之所以这么设计是因为背后掩藏的体制问题呀.把10和20的差别从50%提高到95%者不难,但是问题在于如果是这样,整个游戏的连贯性就成了死穴了。想想看,如果文明变成了全场游戏就为了比谁先出XXX,其它都成了垃圾时间,这死得不比弓箭射下阿帕奇还惨

  12. Xiaogang说道:

    为啥10和20的差别提高会导致游戏的连贯性出问题?我觉得文明可以把建设部分和战斗部分分开来做,可以设置一个以一个战争爆发点所在城市为圆心的圆形战区模式,一旦发动战争,整个区域里面的敌我双方军力同时亮相登场,边缘地区的军力作为援军登场。战争的发动方需要提前消耗一定数量的资源或者是军事家,战斗操控可以自动也可以手动模式(英雄无敌模式或者三国志模式都可以),时间点一到如果不分胜负则大家偃旗息鼓各回各家各找各妈,赢了则根据结果获得某一个或某几个城市。我觉得这会加快游戏进程,也更有战略性。

  13. Joe说道:

    太奇幻就会弓箭射下飞机, 太真实就变成了rts比快出高级武器. 其实加入兵种相克不就得了. 弓箭打装甲攻击力就会被削弱, 不是打不下来, 只不过需要更多的兵, 就像小米加步枪也能打胜仗, 只需人多~~

  14. Zealot说道:

    Sid Meier大爷这样弄是基于他需要一个尽量简化的战斗模型。

  15. Ixidor说道:

    您是上海育碧的?

  16. amy说道:

    绝对科学的数学概率计算不一定是唯一公式,总觉得玩家得到最大可能的快乐应该是在这个科学设计基础上后又稍微像玩家们偏向了那么一点点之后,既偶尔突发的小概率事件造成的幸运感。

  17. Varyag说道:

    同意楼下的,挫败感素为玩家所不喜~~

  18. Necroman说道:

    我个人觉得你们说的这个是机器人大战……我总觉得机战的数值看起来更偏向玩家

  19. 说道:

    我觉得很多地方其实都可以讲得更细更深入……例如“My Bad”那部分。不知为何Sid像是简报一样全部蜻蜓点水一遍……话说不是我跟老爷说了老爷才去看小电影的吗?我要求Credit吖Credit!

  20. Edelweiss说道:

    机战的数值每代都有调整的,F和F完结篇的难度出名的高这个问题一直存在,不是太难就是太简单,不过也没几个玩家真在乎这个

  21. 青岳说道:

    呃,BIS居然更了51版,小弟真是感动啊……

  22. Mistmoore说道:

    如果能淘汰一批兵种,就不会出现这情况了吧。

  23. zwh说道:

    “但如果我有20个士兵,对手有10个士兵,那么对手打败我的可能性只有0.5的10次方,也就是0.0009%”你这个算法的假定在破折号后面,但是是不是应该”以一命换一命“作为前提来证明这个极小的概率很值得推敲。

  24. zwh说道:

    “但如果我有20个士兵,对手有10个士兵,那么对手打败我的可能性只有0.5的10次方,也就是0.0009%”你这个算法的假定在破折号后面,但是是不是应该”以一命换一命“作为前提来证明这个极小的概率很值得推敲。

  25. zwh说道:

    你这篇文章很有意思,一开始我也认为西德不对,但想想也不错,再想想你的说法也有道理。20个打10个的胜利里存在差别。

  26. 缙云子说道:

    坦率地讲,我认为文明无论是单看内政还是单看军事都一般,出彩的地方在于把大的时间跨度的多方面要素整合到一起。战斗的问题我认为主要是照顾落后国,但是直升机被弓手打落太说不过去,应该说火药前部队战胜直升机只能依赖直升机出故障。兰切斯特理论适用于正规军作战,实力与装备等成正比,与数量平方成正比,但是还有游击埋伏战等等,人多的指挥也难……所以也不好讲。

  27. cacious说道:

    机率这种东西实在是很困难,因为他的很多算法需要转个弯去想。假设战斗的方式是大家轮流上场,胜负的机率是0.5,输的就退场,赢的继续参加战斗。一直到有一边全部输光为止。就想像对手有20个单位攻击你10个单位好了。这种情况下,10个单位那一边输的机会是多少呢?很简单,就是10个单位都输过一次的状况。在确认10个单位都挂掉的情况下,计算20个单位那边从1个人都没死,到死到剩1个人的所有情况。计算方式为:(k从0到20-1的连加){(10+k-1取k)*[0.5^(k+20)]}这是20人那边获胜的所有情况,所以10人那边赢的机率就是拿1减去这个数字结果10个人那边赢的机会是0.03071,大约3%这应该已经很明显了,有问题的人可以算一下2对4的情况,这可以用土法炼钢的方式列出所有结果,2个人那边胜利的机率是16分之3,也比1对2的25%低我想事情已经很清楚了,不懂数学的是席德梅尔那边。

  28. 攻高甲厚说道:

    兰氏方程分两套:直接火力和间接火力——前者按数量平方乘以单位火力计算战斗力,后者按数量乘以单位火力计算。文明的设定是力量值随着受伤害程度扩大而线性降低,类似于后者,亦就是假定所有交战均为间接火力,与现代战争不符(怎么可能长矛兵对坦克进行直接火力攻击呢……)

  29. 攻高甲厚说道:

    另外关于游戏数字单位上,有篇小文可供内裤大人作为话题http://www.psychologyofgames.com/2011/03/09/the-unit-effect-and-player-perceptions/

    • necromanov说道:

      这篇的观点是”大数字就是好的“,基本适用于10000以下的环境……美国人数学确实不是太好。但是还有几个魔法数,比如5星,10点和百分制,在实践中也是很有力的,还是要看情况使用吧。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s