曇りのち晴れ48日

このブログでは48の趣味(redstone)について不定期で誰に見せようと思うのでなく書きこんでいく場所です。完全に自己満足です。テキトーです。

赤石数学 その1 ダメージ計算(妄想たくさん)

こんばんは(V)o¥o(V)

 

 今回は妄想がたくさん入ってる記事なんだすまない。サマナーのネタが思い浮かばないので代わりに最近気になった魔法ダメージの計算方法について妄想を書きます。

※ただし検証したのがペットのソニブロなんで他の職は事情が変わるかもしれません。ダメージ計算式はドラツイと同じです。

検証に付き合っていただいた方ありがとうございましたm(__)m

赤石のカンスト

 装備の性能がインフレしまくってる昨今、よくダメージカンストしたなんて話を聞きますし周りの人でもカンストダメージ出せる人がいると思います。特に魔法攻撃なんて現在の限界突破の仕様だと凄まじいダメージを敵に与えることができますしね!

 しかし物理だと敵に与えるダメージって白ダメだと35000ってキリのいい数字なのに魔法だと病気のコボルトとかには2147万~みたいなとても中途半端な数字でカンストしますよね。おそらく下記のような理由でそういう数値でカンストするんだと思ってます。

ちょっとプログラムのお話

 ゲームはプログラム言語でプログラミングして作られてるわけですが、数値を扱う時に計算結果を取っておくために変数というものを使うんですね。(数学とかでいうXとかYみたいなやつ) そしてこの変数、多くの言語では型というものがあって、扱えるデータの種類や値の範囲が違うんですね。

例)文字 整数、少数

 赤石がサービス開始した時期ってゲーム開発するのにCやC++という言語がよく使われるんですがその中に整数を扱う物でint32型というのがあるんですね。この変数の扱える範囲というのが

 -2,147,483,648~2,147,483,647

というわけで桁が2つ違いますが2147万~とよく似た数が並んでおりますね(*'▽')

 そして、じゃあ右の赤い数字より大きい数字入れようとしたらどうなるの?っていうとエラーになってそもそも動かなかったりループしてマイナスの数値になったりするのです。超えちゃいけないラインというわけですね!

ダメージ計算

 では、なぜ変数に入れられる値の上限は21億~なのになぜゲーム内では2147万~なのか?21億を100で割ると2100万になるよね?100で割る計算って%出したりするときによくするよね?魔法攻撃って強化(%)弱化(%)が計算に絡んできたりするよね?というわけで途中の計算過程で数値が増えていって21億~で加算できなくなった後に100で割られることによって最終的に2147万~になってるのかな~と検証結果を聞いてて思いました(/・ω・)/

 後黒魔さんの攻撃とかも知識上げすぎたりするとダメージループして下がるって話も聞いたことがあるのですが、赤石の民衆さんとかに載ってる魔法ダメージの計算式ってあの形のまま一気に計算されてるんじゃなくて、プログラムを書きやすいようにある程度分割して計算されてると思うんですね。そうなると各計算結果を出されるタイミングで数値が開発の想定してたものより大きくなっちゃったりするとその時点でループして結果ダメージが下がってしまうということも起こりうるというわけですね。

ダメージカット

 高レベル狩場だと敵に与えるダメージ極端に低くなりますよね。これ敵が抵抗の他にダメージカット率が設定されてて与ダメを強制的に下げてきてるわけですね。これは弱化とかでは一切削れない数値なのでダメージカット率50%とか設定されてる敵ならこっちが弱化240%積んでても問答無用でダメージ半分にされますね(´・ω・`)

 そして今回ソニブロペット持ちの人にいろいろな状態で敵を攻撃してもらった結果

  1. とりあえずカンスト目指して?→実ダメ200万ちょっとで止まる
  2. 魔法致命打で倍にならない?→実ダメ100万くらいに下がるΣ(; ・`д・´)
  3. じゃあカンストしてない状態で魔法致命打使って?→1と同じ値

 これら3つのことからわかること。

  • 1からダメージカットが設定されてると変数の限界までそもそもダメージが到達しない
  • 3から魔法致命打でダメージを増やす計算はダメージカットの前に行われているようだ
  • ダメージが一定の値で止まってしまったらそれより上のダメージは魔法致命打みたいな普通のやり方では無理
  • 魔法致命打出てようが2147万~は超えられない
  • カンストした状態で魔法致命打が発動するとダメージがループして下がる!

 最後に関してはたぶんプログラムで魔法致命打の計算をしてもいいタイミングを判断する条件分岐の設定をミスってますね。(´・ω・`) 日本より装備の性能が低い韓国ではカンストダメ出せる人は必然的に減ると思うのでまぁ気づかれないし修正されないですよねたぶん……

じゃあ装備どうするの?

  • 黄ダメの時点でカンストやそれ間近なら魔法致命打とかはつけてもコスパが悪いので攻撃速度を上げたりして手数を増やす
  • 魔法強打は黄ダメ500万、魔法致命打は黄ダメ1000万くらいまでは最大限効果発揮しそうなので火力と相談
  • もう火力上げようがないなら防御面充実させよう!

 そしてダメージ上限2147万以上を出せるようにするにはいろんな部分の変数の型を変える必要があり、開発の能力的にそんなことをしたらゲームがさらに崩壊すると思うし、手間もすごくかかるので期待はしないで装備構成考えたほうがいいですね(`・ω・´)

 

 最後に、検証で使ったスキルがペットのソニブロなんで普通の職には有効でない可能性は多々あるので鵜呑みにはしないほうがいいです!最終ダメージOPとかも使えないしね。でも2147万上限はプログラム上の限界数値なのでこれを超えることはほぼできなさそうっていうのは本当

Copyright (c) 2018 L&K Logic Korea Co., Ltd. All Rights Reserved. License to GameOn Co., Ltd.