対人戦ダメージ計算式(その5)

PVPシミュレータ(お試し版)で使用しているダメージ計算式についての解説です。なお、この計算式はv5.5.0以前(戦争の図書館実装前)のものであり、現在のゲーム内で使用されているものとは異なります。

ゲーム内で相当数の模擬戦を行い、集めた戦闘レポートを解析した結果、ダメージ計算式は以下であろうと思われます。

部隊Aと部隊Bが戦闘した場合、B側の損失数(A側のキル数)は、

損失数B =
(1)基礎ダメージ
× (2)ダメージバフ差分
× (3)特定兵種ダメージバフ差分(兵種相性を含む)
× (4)√兵数A
÷ (5)体力B

(攻撃、防御、体力はバフ補正混み)

計算式の考え方自体は以前と変わっていませんが、(1)基礎ダメージ、の部分が長い間詳細不明のままでした。当初は、

(攻撃A-防御B)

のような単純な形かと思っていましたが、解析を進めていくとどうもそうではないことが分ってきました。そもそも、単純な減算型だとB側が高バフの場合や高ティア歩兵の場合、ダメージが通らなくなってしまいます。では、

(攻撃A/防御B)

のような除算型はどうかというと、この場合、攻撃バフや防御バフが損失数に直接反映され、攻撃バフ2倍なら損失数2倍に、防御バフ2倍なら損失数1/2になるはずですが、実際はそうはなっていません。それにこのような除算型だと防御が体力と同じ扱いになってしまいます。異なるパラメータとして定義している以上、これは無いでしょう。

より複雑な計算式としては、除算と減算を組み合わせた複合型という形が考えられます。しかし、あまり変な式にしてしまうと攻撃や防御がどうダメージに影響するのか直観的に分り難くなってしまいます。また、リアルタイムで演算する必要がある以上、そこまで複雑ではないでしょう。

解析を進める中でバフを変えながら戦闘結果を調べて行くと、次のことが分かりました。

「A側攻撃バフとB側防御、体力バフを同程度上げていくと損失数は同じ値になる」

これは、バフ0%同士の損失数と、バフ100%同士の損失数が同じになるという意味です。従って、体力Bがバフ100%(2倍)になった場合、攻撃Aと防御Bがバフ100%(2倍)の時に、基礎ダメージ部分は2倍になっているはずです。

また、攻撃バフの方が防御バフよりも影響力がかなり大きいということも分かりました。これは感覚的にも納得できる部分です。

このような性質の計算式は幾つかありますが、ゲームに適したものとしては限られます。何パターンか試して次の式だろうと当たりを付けました。

攻撃A^2 / (攻撃A+防御B)

これは、攻撃の2乗を(攻撃+防御)で除算する式で、防御の影響力を抑えて攻撃の比重を重くした式になります。また、防御0の場合、基礎ダメージは攻撃と等しくなります。ゴーレムもPVPとダメージ計算式は同じだろうと考えており、この性質は便利な式です。

実際の所、かなり早い段階で、基礎ダメージの計算はこの2乗除算複合型であろうと予想していました。この式で計算結果が実戦とある程度一致することを確認もしていました。しかし、結果が一致しないケースもあり、これが解析に時間を要した理由の1つです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です