接续前篇继续介绍更多游戏特色:
特殊炮
特殊炮是游戏中最有爽感的部分,常见的有以下几种:
- 雷射炮– 可攻击大范围鱼群,大陆地区称此为激光炮。
- 免费炮– 大家常说,免费的(炮)最贵,但这里我保证真的免费啦。
- 冰冻炮– 击中后会让鱼进入冰冻状态,保存新鲜以便日后烹调食用…。好啦,只是让鱼变慢或停在原地。
特殊炮的捕鱼游戏可参考影片
重点来了,这部分数学该怎么处理呢? 以下分成两部分说明:
1.如何获得特殊炮?
以雷射炮为例,企划面我们可以决定由
- 击杀现有鱼种后有机率获得:要使用这种方法的话,记得把带有特殊炮的鱼在前端表现上凸显出来,把它弄得很像喝了化学药剂然后会发光的鱼就对了啦。
- 雷射炮直接是个item在鱼场中可攻击并获得:这种在企划面上处理相对容易,并且让玩家有个明确目标追打
当然还有更多方式,但这两种较直观且在数学的处理上观念是相同的,所以我以较复杂的前者来说明,此时情形虽然会稍微困难些,但别担心,和人生相比还是容易许多,所以请听我娓娓道来我的人生…喔是数学如何计算。
一样以赔率100倍的鱼以及RTP = 90% 为例
首先我们先决定将普通子弹攻击一般鱼的RTP = 90% 挪出20% 给雷射炮,而再来决定雷射炮的威力,假设威力是200倍(其实就是以雷射炮攻击时RTP为200 )。普通子弹击中一般的鱼,RTP的组成变成了:RTP = 70%(鱼本身赔率) + 20%(雷射炮)
所以根据前面学到的公式《击杀率P = R / N》,这时候鱼的击杀率如下:
P = 70% / 100 = 0.7%
雷射炮的获得率LP呢?大家别想歪,这命名是因为Laser Probability,算法可以用同样的公式
LP = 20% / 200 = 0.1%
这里有一个小陷阱,这样的算法 LP = 0.1% 是假设在《就算鱼没死也可能获得雷射炮》,当然也不是不能,只要你能在前端表现或是企划面上说服玩家都可以,但一般情形下鱼死掉获得宝物才是符合逻辑的,所以我们会希望这 LP 是《鱼死掉且获得雷射炮》的机率,因此流程上要做一个小小的修正:
LP(given 鱼死) = P(获得雷射炮|鱼死掉)=0.1% / 0.7% =1 / 7
其实可以很直观的计算就是鱼死0.7% x LP = 0.1% , 然后获得LP = 1 / 7,所以雷射炮获得与否的正确的流程为:
- Case1:目标鱼(100倍)没死→获得机率为0
- Case2:目标鱼死→获得机率为1/7
上面观念用的是条件机率,忘记了请联系我,我有在兼职当家教。
2. 特殊炮发射后如何计算?
这部分有分幼幼班做法和正规做法,以上面例子为例,我们知道雷射炮威力是200倍,幼幼班的机率做法就是把责任丢给Server端,《阿你就想办法让被攻击的鱼全部死掉,然后总赔率不要超过200倍就好了啊! 》。这做法缺点有很多:
- 游戏变化性很少,倍率永远都是很靠近200的数字
- RTP会偏低
- 把工作丢给Server,Server会不爽
请注意3,好的机率工程师不要让Server去处理机率问题,这也呼应到了自然机率的优点,有兴趣可以参考文章【解密自然机率与非自然机率老虎机】。就像我所说的,这篇不会有困难的数学,所以一样很简单,正确的做法应该如下:假设雷射炮击中K只鱼,赔率分别为N 1、N 2、 ……、N K,击杀率修正法P i如下:
《P i = 雷射炮威力/ (赔率x 攻击只数) = 200 / (Ni x K)》
来验算一下RTP:
N 1 P 1 + N 2 P 2 + …… + N K P K = 200/K + 200/K + …… + 200/K=200
这修正法的确让这发雷射炮攻击出去时获得的RTP为我们当初假设的雷射炮威力200。相信有点程度的人已经发现其实这公式就是Part 1介绍的攻击到多只鱼的做法延伸,正所谓水能载舟,亦能覆舟,《击杀率能除只数,当然也能乘威力》。这做法相比幼幼班好上许多,但讽刺的是市面上看到很多都是幼幼班的做法(也许我看得还不够多),相比之下正规做法反而没那么正规了。另外优点我就不赘述了,就是把幼幼班做法的缺点都变成否定句就是了。不知道怎么变成否定句?一样联系我,我有兼差做家教。
至于免费炮就和雷射炮的概念一样,我们只需假设单发威力以及总共发数,就能判断出《总威力= 单发威力x 总发数》,剩下就是一样的算法了。
(Part 2就先介绍到这,之后会再将其它特色补充在后续的捕鱼系列文章。)
暂无评论内容