看板 GameDesign 關於我們 聯絡資訊
※ 引述《KiwiSoda01 (奇異果汽水)》之銘言: : 假設在一個pad類型的遊戲, : 有兩個敵人,你希望給玩家覺得這兩個敵人, : 給玩家帶來的威脅程度是一樣的, : 且這兩個敵人一起出現。 : 其中一個敵人每回合都打1000傷害, : 另一個敵人則兩回合才攻擊一次, : 請問後者要打出的傷害,比2000高還是低, : 才會符合當初的需求? : 順便一提,我問過幾個同事,答案都跟我不一樣。 : 手機排版請見諒。 我提供一些數值分析的看法。 首先,這裡先將威脅程度定義為:面對(單一)敵人時,死亡的機率 雖然兩個敵人一起出現,但理性判斷, 會先解決掉「單獨面對時,致死機率較高的敵人」 因為兩個敵人同時在場的致死機率相同,差別只在於剩下一個敵人的時候 (假定不管先殺哪個敵人,都需要相同回合數) 那麼,這個問題就只取決於以下幾個項目: 1.玩家血量 2.一回合治療量 3.治療成功率 4.擊敗敵人所需回合數 5.施放角色的大招 6.敵人特性 先不考慮第五項跟第六項, 只要把前四項帶入一些基本參數,就可以計算死亡機率。 考慮下面兩個狀況: A. 玩家擁有4000血,每回合有50%機率治療2000血, 只要撐過10回合,第11回合就會獲得勝利 B. 玩家擁有3000血,每回合有50%機率治療2000血, 只要撐過10回合,第11回合就會獲得勝利 模擬10000次的戰鬥結果,如下: 每回1000敵人 每兩回2000敵人 狀況 致死率 致死率 A 52.20% 68.13% B 82.87% 68.34% 也就是,再 A 狀況下,每兩回合造成2000傷害的敵人威脅度較大 但在 B 狀況下,反到是每回合1000傷害的敵人威脅度比較大 B 的理由也不難理解,每回合1000點傷害,每兩回合內就非補到一次才行 但若是每兩回合才有一次傷害,某些狀況卻可容許三回合內才補一次 但生命較多的 A 狀況下,1000點傷害較小,因此容錯率提升到每三回合補一次 但對兩回合2000傷害的敵人來說,容錯率卻沒有因此而提升。 再來考慮下面兩個狀況: C. 玩家擁有8000血,每回合有20%機率治療1000血, 只要撐過10回合,第11回合就會獲得勝利 D. 玩家擁有8000血,每回合有20%機率治療1000血, 只要撐過 9回合,第10回合就會獲得勝利 模擬10000次的戰鬥結果,如下: 每回1000敵人 每兩回2000敵人 狀況 致死率 致死率 C 73.81% 79.63% D 51.18% 27.36% 也就是,如果第10回合能解決掉敵人,每回1000點傷害威脅較大 若火力不足需要到第11回合才能解決敵人,每兩回2000點傷害的威脅較大 理由也很直觀,每兩回才打一次的敵人都會在偶數回合進行攻擊 如果只需要承受9回合的攻擊,等於多了1000傷害的容錯率 最後,再看看下面兩個狀況 E. 玩家擁有4000血,每回合有50%機率治療1000血, 只要撐過10回合,第11回合就會獲得勝利 F. 玩家擁有4000血,每回合有50%機率治療2000血, 只要撐過10回合,第11回合就會獲得勝利 模擬10000次的戰鬥結果,如下: 每回1000敵人 每兩回2000敵人 狀況 致死率 致死率 E 31.18% 24.75% F 18.58% 24.24% 也就是,當治療量增加會使傷害低的敵人威脅性降低。 綜合上述六個案例可以知道:不同的狀況下,兩者的威脅程度各有高低 (雖然大多數的狀況下仍是每回合1000的敵人致死率高) 只要給定參數,上述的方法除了判定誰的威脅度高以外, 也能解決原問題:每兩回攻擊一次的傷害應該要多少? 以前述的 A 狀況來論,只需調整敵方傷害,使致死率變為 52.20% 即可 每兩回合的傷害 致死率 2000 68.13% 1999 21.98% 很明顯的,「不可能有數值可以滿足兩者威脅程度一致」 理由在於,因為敵方的傷害是固定值, 所以當血量一超過傷害的倍數時,致死率就會大幅的下降, 因為等於瞬間就多了一次容錯率。 ( B 狀況也類似,多 1 滴血,機率就跟 A 狀況相同了) 由於以上兩個原因: 1. 不同玩家的強度,感受到的威脅程度會不相同 2. 數值上不可能滿足一致 所以我個人會選擇設定為 2000 傷害,因為: 1. 大多數的玩家不會想這麼多,只會算平均值 2. 實際上,有部分的人認為2000威脅多,部分的人認為2000威脅少 所以以「讓部分的玩家覺得前者強,部分的玩家覺得後者強」的概念 取代「給玩家帶來的威脅程度是一樣的」,也是合理的 -- # 以下附上跑模擬的 R code HP<-3000 Heal<-2000 pHeal<-0.5 Turn<-10 Boss<-2 Sim<-10000; TestData<-array(0,Sim) for (i in 1:Sim) { x<-rep(HP,Turn+1) ifelse(Boss==1,y<-rep(1000,Turn),y<-rep(c(0,2000),Turn)[1:Turn]) z<-Heal*rbinom(10,1,pHeal) for (j in 2:(Turn+1)) { ifelse(x[j-1]<=0,x[j]<-0,x[j]<-max(0,min(HP,x[j-1]+z[j-1])-y[j-1]))} TestData[i]<-ifelse(x[Turn+1]==0,1,0)} mean(TestData) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.135.145 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1432234223.A.922.html
ddavid: 哇,R出動了XDDD 05/22 03:31
KiwiSoda01: 這解釋了為什麼我導出要低的結論 05/22 04:13
KiwiSoda01: 因為我心中那個情況是接近A的 05/22 04:13
godwu: 感謝分析 05/22 09:45
dreamnook: 數據給推 05/22 10:59
brbu241: 數據大師 05/22 11:09
LayerZ: 我的想法也偏這篇..其實很多經典的boss設計只是大世界中各 05/22 11:29
LayerZ: 種要素交錯而成,有些boss被秒殺,有些boss變成經典,而玩 05/22 11:30
LayerZ: 家也是千百種,不可能滿足所有玩家.. 05/22 11:30
ddavid: 是呀,共通的威脅感在這類能自行組隊的遊戲下除了必秒殺以 05/22 21:03
ddavid: 外應該很不容易存在,如果這麼容易存在就變成組隊沒變化性 05/22 21:04