私はモバイルRPGゲームを作成しています。ディアブロ3のような戦利品システムがある無限のゲームです。武器には攻撃と速度があり、鎧には抵抗値があります(パーセントではありません)。
私が使用している式は次のとおりです。
float realDamage = SkillDmg * BaseDamage / ( BaseDamage + Defense )
結果は良好です。防御力が低くなると、ダメージが大きくなり、(BaseDamage + Defense)の間の分割のために指数関数的に上昇しません。
攻撃速度が1.0で、50のダメージを与える剣があるとします。それは50 dpsであり、私はそれがより速く攻撃したいダガーを持っていますが、もちろんより少ないダメージを与えます、dpsを維持するために、ロジックはダガーの攻撃速度が2倍になる場合、ダメージは半分になる必要があると言います(2.0スピード25 dmg)。しかし、上記の式を使用すると、実際の実際のダメージDPSが剣よりも低いことがわかります。
ダガーに25のダメージを与えずに少しだけ増やして、これを解決しました。いくつかの計算を行って、実際のdpsを同じにして、物事のバランスをとることができます。この場合、2.0スピードの短剣は剣と同じ実際のダメージdpsになるように32ダメージを与える必要があります。
しかし、武器にDPS番号を表示したい。短剣のDPSを32 dmg * 2の攻撃速度で表示すると、剣の50 dpsと比較して64 dpsになります。
可能な解決策?最初のダメージ計算式を変更しますか?もしそうなら、どれに?式を変更しないとしましょう、解決策はありますか?私は本当にそれを作るために半分より多くのダメージを与えるために短剣をだまさなければならないのが好きではありません...
私は本当にディアブロ3のダメージの公式を知ってほしいと思います。ディアブロ3はDPSの武器であり、基本的なダメージ*攻撃速度です。
編集:
Lets assume defense = 50 and normal attack (skillDmg = baseDmg)
Sword 1.0 attack speed dealing 50 dmg -> real damage hit= 50 * 50 / ( 50 + 50 ) = **25 dmg** = 25 dps
Dagger 2.0 attack speed dealing 32 dmg -> real damage hit = 32 * 32 / ( 32 + 50 ) = **12.5 dmg** = 25 dps
Sword item, lets display the actual sword dps, 50 * 1.0 = **50 dps**
Dagger item, lets display the dagger dps, 32 * 2.0 = **64 dps** (SHOULD BE THE SAME)
damage * damage / ( damage + defense)
スキルのダメージを考慮せずに、私の回答()に投稿した式があります。DPSが異なるのは、同じ防御策を使用しているためです。異なる結果が得られる理由は、その式では、低速で強力な武器は高解像度の敵に対して優れているのに対し、高速で弱い武器は低解像度の敵に対して優れているためです(これはもっともらしいことです)。あなたは高防御の敵を想定し、それに対して両方の武器のバランスをとりました。つまり、短剣を圧倒しました。DPSの計算は、その過大能力を示しています。