作者Feis (永远睡不着 @@)
看板GameDesign
标题Re: [请益] 敌人伤害设计
时间Wed May 20 00:19:52 2015
※ 引述《KiwiSoda01 (奇异果汽水)》之铭言:
: 假设在一个pad类型的游戏,
: 有两个敌人,你希望给玩家觉得这两个敌人,
: 给玩家带来的威胁程度是一样的,
: 且这两个敌人一起出现。
: 其中一个敌人每回合都打1000伤害,
: 另一个敌人则两回合才攻击一次,
: 请问後者要打出的伤害,比2000高还是低,
: 才会符合当初的需求?
: 顺便一提,我问过几个同事,答案都跟我不一样。
: 手机排版请见谅。
同上篇, 比较有趣的是当敌人2的回合数在三以上.
这里以三当例子:
敌方攻击: 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) /
3) * 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)/
3) * A2
如果要令 S1 与 S2 选择相仿, 则 S1 总受伤害要等於 S2 总受伤害:
(ceil(H/A)-1)*A1 + floor((2*ceil(H/A)-1)/
3)*A2
== (2*ceil(H/A)-1)*A1 + floor((ceil(H/A)-1)/
3)*A2
(floor((2*ceil(H/A)-1)/
3) - floor((ceil(H/A)-1)/
3)) * A2
== ((2*ceil(H/A)-1) - (ceil(H/A)-1)) * A1
以下省略计算过程...
跟两回合不一样的地方在於这里要分开讨论:
当 ceil(H/A) 是 3 的倍数, 则 A2 = 3 * A1 (不意外)
当 ceil(H/A) 除 3 余 1 时, 则 A2 = 3 * ceil(H/A) / (ceil(H/A) - 1) * A1
讨论: 当 H == A 即 ceil(H/A) == 1 的时候, 敌人2 没有攻击机会
当 ceil(H/A) == 4 时, A2 =
4 * A1 > 3 * A1
(要比三倍痛)
当 H >>> A 时, A2 = 3 * A1 (由 4 往 3 渐近)
当 ceil(H/A) 除 3 余 2 时, 则 A2 = 3 * ceil(H/A) / (ceil(H/A) + 1) * A1
讨论: 当 ceil(H/A) == 2 时, A2 =
2 * A1 < 3 * A1
(要比三倍轻)
当 H >>> A 时, A2 = 3 * A1 (由 2 往 3 渐近)
所以似乎都有可能.
1F:→ Feis: 看来模型跟评量方式可能过度简化. 不过蛮有趣的 (?) 05/20 00:31
※ 编辑: Feis (140.122.83.198), 05/20/2015 01:31:31
2F:→ chowleft: 竟然可以写的像研究报告一样 XD 05/21 20:43