本文是系列文章的第二篇,若還沒讀過前篇的讀者請先閱讀【捕魚遊戲 Part Ⅰ】,接續前篇繼續介紹更多遊戲特色:
特殊炮
特殊炮是遊戲中最有爽感的部分,常見的有以下幾種:
- 雷射炮 – 可攻擊大範圍魚群,大陸地區稱此為激光炮。
- 免費炮 – 大家常說,免費的(炮)最貴,但這裡我保證真的免費啦。
- 冰凍炮 – 擊中後會讓魚進入冰凍狀態,保存新鮮以便日後烹調食用…。好啦,只是讓魚變慢或停在原地。
特殊炮的捕魚遊戲可參考影片
重點來了,這部分數學該怎麼處理呢? 以下分成兩部分說明:
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隻魚,賠率分別為N1、N2、……、NK,擊殺率修正法Pi如下:
《Pi = 雷射炮威力 / (賠率 x 攻擊隻數) = 200 / (Ni x K)》
來驗算一下RTP:《本文章內容為 SLOT設計王 ezslotdesign.com 原創,本站以及本文章作者保有著作權,侵害必究》
N1P1 + N2P2 + …… + NKPK =200/K + 200/K + …… + 200/K=200
這修正法的確讓這發雷射炮攻擊出去時獲得的RTP為我們當初假設的雷射炮威力200。相信有點程度的人已經發現其實這公式就是Part 1介紹的攻擊到多隻魚的做法延伸,正所謂水能載舟,亦能覆舟,《擊殺率能除隻數,當然也能乘威力》。這做法相比幼幼班好上許多,但諷刺的是市面上看到很多都是幼幼班的做法(也許我看得還不夠多),相比之下正規做法反而沒那麼正規了。另外優點我就不贅述了,就是把幼幼班做法的缺點都變成否定句就是了。不知道怎麼變成否定句?一樣聯繫我,我有兼差做家教。
至於免費炮就和雷射炮的概念一樣,我們只需假設單發威力以及總共發數,就能判斷出《總威力 = 單發威力 x 總發數》,剩下就是一樣的算法了。
(Part 2就先介紹到這,之後會再將其它特色補充在後續的捕魚系列文章。)
本文所有影片與圖片皆取材自網路,版權屬於原公司所有
本文章內容未經允許,不得轉載。若有文章授權需求請 聯絡我們
你這篇太明顯置入行銷家教了XD
好文!!
寫的蠻仔細的
書生大大您好,
想向您請教一個問題。
假設我用雷射砲(200倍)擊中海龜(10倍)10隻、鯊魚(50倍)2隻、美人魚(100倍)1隻,套用公式得到的修正死亡率如下:
海龜:200 / (10 x 13) = 153.846%
鯊魚:200 / (50 x 13) = 30.769%
美人魚:200 / (100 x 13) = 15.385%
153.846 + 30.769 + 15.385 = 200
上面有一個情況,海龜的死亡率超過 100% ,所以假設用 100% 來計算,實際上回來的期望值是 146.154,差了 53.846 (就是海龜多出來的)
我發現這個情況,在特殊道具的威力越強,死亡率超過100%的小怪越多時,情況越明顯。
想請教書生大大,該如何處理差值?
这个情况的话我会引入一个叫单个用户水池的概念,他打海龟溢出的RTP换算成他炮的价值存起来,再下次开炮的时候并且鱼不击杀的情况下给他补偿
你好!我想請教一下,你這個 146.154的期望是怎麽計算出來的呢?
因為實際上死亡率最多就是100%了
写得非常通透!棒
我还不太明白有一点,上一篇讲的RTP/赔率 = 击杀率 在这里直接用 威力/赔率 为击杀率,那这里相当于RTP 就等于200?我不是很明白这个地方,是我理解的,因为要获得这些炮已经要付出一些代价了所以可以把特殊武器做成200的回报吗?
因为普通的RTP已经是70%了,所以特殊RTP变成了20%以满足总RTP等于90%。通过hit rate得出特殊炮平均需要打出200倍的伤害,即RTP等于200。