Re: [請益] 敵人傷害設計

看板GameDesign (遊戲設計)作者 (永遠睡不著 @@)時間10年前 (2015/05/19 21:31), 10年前編輯推噓2(204)
留言6則, 2人參與, 最新討論串3/13 (看更多)
※ 引述《KiwiSoda01 (奇異果汽水)》之銘言: : 假設在一個pad類型的遊戲, : 有兩個敵人,你希望給玩家覺得這兩個敵人, : 給玩家帶來的威脅程度是一樣的, : 且這兩個敵人一起出現。 : 其中一個敵人每回合都打1000傷害, : 另一個敵人則兩回合才攻擊一次, : 請問後者要打出的傷害,比2000高還是低, : 才會符合當初的需求? : 順便一提,我問過幾個同事,答案都跟我不一樣。 : 手機排版請見諒。 敵方攻擊: A1 (每回合一次), A2 (每兩回合的第二回合攻擊) 敵方血量: H 自己攻擊: A 簡化設定,假設玩家只有攻擊其中一個敵人一種可能 (無玩家回血機制), 且玩家先攻 玩家依照威脅度有兩種策略: 先殺敵人1 (S1), 先殺敵人2 (S2) (為合乎情境無論採取何種策略玩家所受總傷害需大於玩家血量) S1: 總回合數: ceil(H/A) + ceil(H/A) = 2 * ceil(H/A) 總受傷害: (ceil(H/A) - 1) * A1 + floor((ceil(H/A) + ceil(H/A) - 1) / 2) * A2 S2: 總回合數: ceil(H/A) + ceil(H/A) = 2 * ceil(H/A) 總受傷害: (ceil(H/A) + ceil(H/A) - 1) * A1 + floor((ceil(H/A)-1)/2) * A2 如果要令 S1 與 S2 選擇相仿, 則 S1 總受傷害要等於 S2 總受傷害: (ceil(H/A)-1)*A1 + floor((2*ceil(H/A)-1)/2)*A2 == (2*ceil(H/A)-1)*A1 + floor((ceil(H/A)-1)/2)*A2 (floor((2*ceil(H/A)-1)/2) - floor((ceil(H/A)-1)/2)) * A2 == ((2*ceil(H/A)-1) - (ceil(H/A)-1)) * A1 以下省略計算過程... A2 = 2 * A1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.83.198 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1432042269.A.C26.html ※ 編輯: Feis (140.122.83.198), 05/19/2015 21:46:27

05/19 21:50, , 1F
一開始很開心地算錯了QQ
05/19 21:50, 1F

05/19 21:59, , 2F
嗯,拿掉ceil,floor,令T=H/A,可以很快得解。
05/19 21:59, 2F

05/19 22:00, , 3F
請教一下甚麼時候可以拿掉 floor 跟 ceil 阿
05/19 22:00, 3F

05/19 22:03, , 4F
不知道的。當拿掉發現解等同一般認知,就找到key了。
05/19 22:03, 4F

05/19 22:04, , 5F
要設計出不一樣的變化就是調整函式而不是改公式。
05/19 22:04, 5F

05/19 22:04, , 6F
那 floor(1.2) / ceil(1.2) == 1 ? 蠻有趣的
05/19 22:04, 6F
文章代碼(AID): #1LMpiTmc (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #1LMpiTmc (GameDesign)