咪哚网

科普解析:推敲轻社交游戏中的随机性奖励机制

爱玩网百万稿费活动投稿,作者 第八个小矮人,未经授权请勿转载!

国内游戏开发的“善与恶”是一个“老生常谈”的话题,能不能不要总是课课课(PS:其实“氪”是错别字)?能不能开发一些3A单机大作?能不能真正做一些有品质的游戏?仅在我个人看来,这其中有不少文章更多是在抒发着一些诸如此类的玩家情感,可读性强,共鸣性高,但都未真正接触到开发一线的业内分析。

因此,这个看似“老生常谈”的话题依然还有产出“新味道”内容的可能性。我也一直希望能让广大真正热爱游戏的玩家读者们也接触到一些业内的视角分析,让大家对于中国游戏行业的了解可以变得更为全面、清晰。

之前我们曾刊发过一篇关于手游付费设计的探讨(点此查看)。本期带来对于“抽卡”机制的一些猜测,依然系来自于作者“第八个小矮人”带来的个人推测与分享。欢迎各位读者朋友们在评论区留言互动,如有疑问请尽管提出,如有不同意见,也欢迎在评论区拍砖,非常感谢!

科普解析:推敲轻社交游戏中的随机性奖励机制


PS:本文内容较长,读者朋友们可收藏本文后静静阅读。

以下为正文部分:

在游戏中,互动性是设计的核心要素,甚至于非游戏的朋友圈、微博、推特等,都采用互动性方式来运营,成效有目共睹。用户渴望奖励、想要从游戏中获得成就感,这种心情便是游戏的基础。

本次的文章主题是随机性奖励。随机性奖励的机制是怎么样的?游戏开发者都是怎样巧妙处理互动奖励?为何用户会对随机性奖励成瘾?甚至于出现玄学?

策划随便塞几张图片,随便写几条数据,用户就会心甘情愿的投入吗?随机性机制是怎么样的呢?

我们先以扑克牌举例。

不管是什么游戏,概率都不可能是交给上天决定的。命中率;装备爆率;转盘抽奖等都要先由官方设定一个概率,系统判定结束后玩家才能看到结果,且在没有系统暗改或者是庄家出老千的情况下,用户也要明确自己的收益,这是让用户参与进来的首要条件。

当然,并不是明确了概率,就能一帆风顺。概率有其不确定性,极有可能出现小概率事件的复数发生和大概率事件淹没的情况。故在这个概率中,还需要设定一个界限,也就是人们常说的保底。理由同上,必须让用户认为“我投入不会亏,”用户才会放心投入,以免打击用户的积极性,进而逼退用户。

公平便是随机性机制的基础。

简谈:轻社交游戏中的随机性奖励机制


可计算但就是抽不到

如果没有设置保底的话,会发生什么事情呢?我们以扑克牌为例子。首先,扑克牌的随机池我们是确定的。也就是54张卡中包含2个鬼牌。

我们按照游戏常用的分类来将它们划分等级,鬼牌设定为5星,概率是2/54;人脸设定为4星,概率是12/54;其它的卡统一划分为3星。随机池测试的规则是洗切后抽取最上面的卡,确定卡面后,放回到随机池中洗切,并以此规则重复10次、100次、1000次。

在足够大的基数面前,概率必然会趋向于稳定。在相同情况下,基数较大的一方,抽到鬼牌的次数肯定是更多的,这是不变的真理。但受限于时间成本,用户不可能重复抽取1000次、10000次扑克,这种时候就会因为基数不足,导致前面提到的大概率事件淹没和小概率事件重复的事件大量发生。

大概率事件淹没是什么意思呢?这指的是用户进行54次测试,却出现54次3星的情况。虽然理性上来说,这是非常正常的情况。但这会让用户产生一种被欺骗的感觉,积极性收到挫折,最后放弃游戏。

小概率事件重复则相反,用户进行54次测试,其中有20次5星,也不是不可能的事情。但用户在短时间内将游戏的要素收集完毕,游戏自然就对用户失去了吸引力,结局也是放弃游戏。

现在,我们说回游戏。

为了双方的利益着想,不少电子游戏都会尽量避免触发自然概率引起的小概率事件,让所谓的随机性变成一种伪随机,其概率必须建立在保底之上。这种伪随机是为了提高双方的体验,是必不可少的。又或者是对于那些遇到“手气太差”小概率事件的玩家,再给予一些其他的虚拟补偿、

扑克牌还有和电子游戏最大的不同点,那就是扑克牌不管重复洗切多少次,随机池都是恒定的,不会增加卡片的种类和数量;电子游戏则不同,如果新版本将1个5星,2个4星加入随机池,要怎么处理?需要为此而重新编程?

众所皆知,偷懒是文明发展的原动力。服务员会制订应对模板减少工作量;设计师会设计设计模板减少工作量;程序员自然也应该设计程序模板来减少工作量。如果每次添加新的物资都要重新调整这个随机池的概率,工作量太大,且反复修改程序,也会造成程序BUG的增加,是无限循环的死路。

我所能想象的,程序员能选择的是以下三种方法:

首先是随机池判定。决定单次随机数的程序是如何判定的?用户每参与一次,便从所有的随机数中选择一次?那样计算起来麻烦,也不方便加入新的随机随机数,是绝对不可取的方法。

那要怎么处理?

正如我们会将命中率,回避率等随机池分开一样,最简单的方法就是将随机池分类。玩过《舰队收藏》的用户应该对这种分类方式印象深刻,用户在投入资源建造船只的时候,虽然还没有见到具体的船只,但是却可以根据建造时间来判断船只的种类。

为什么会出现这样的情况呢?

仅我个人猜测,程序员可能是将船只按照时间分类好,依据用户投入的资源比例不同,决定其贴近的随机池,然后才判断随机池中出现的具体的船只。在这种情况下,用户投入资源后,发生的大概是这样的事情:

确定资源公式——判定时间段——从贴近的时间段中随机选择一个——再从时间段中选择出罕贵——最后确定名称。

对应回避率等则是:确定随机数类型(回避,命中,暴击等)——再判断具体的随机数。

大级分类下来就是:时间=小船和大船,再分类星级就是小船3星,小船4星,小船5星;大船则是大船3星,大船4星,大船5星。单体船只的分类就是小船3星5号,小船3星6号,这样的感觉。

就以笔者推测,只有这种方法可以回避添加新随机数导致的概率破坏,不管是添加100个5星还是100个4星,5星的概率都是一致的,区别的仅仅是5星的单体概率。单体的概率并不需要多加干预。对于用户来说,随机池中出现的是高罕贵的随机数,成就感便等同,而不需要为其模拟到每一个单卡。毕竟,每个随机数根据版本不同,适用性也不同,没有完全无意义的随机数存在。

也就是说,明面上是大随机池,实际上每个随机池都是相对独立的。但按照这种分类的话,却有另一个问题,新随机数和老随机数的概率相等,想要获取新的随机数却只能获取老随机数,对用户来说,体验也是非常糟糕的。

如果让笔者来制作的话,笔者会将早期的随机数进行概率调整,降低老随机数的出现概率,不至于让用户在想要新资源的时候,随机池中出现的都是旧资源,造成不良的游戏体验。

其次是保底。一般来说,随机池奖励的方式分为轮盘式和开箱式,当然这只是UI不同,核心的程序和设计概念应该是类似的。