速度について
こんにちは。次の生放送が待ちきれません、Vovaです。
今日のメインテーマは速度です。
アナザーエデンはその仕様上、行動順が非常に重要なゲームとなっています。1ターンのデバフでも、先に行動し相手にかけることで、そのターンと次のターンに効果があるためです。
第一部をクリアし、色んなボスと戦ってきたみなさんにとっては、経験で大体わかっていることでしょう。
そこで今日は、その行動順はどういう風に決まるのかについて、過去に行った速度の検証結果とその過程をまとめて載せていこうと思います。過程を載せるのは誤りを指摘してもらうためや、その手法を知ってもらうことで興味を持ってもらったり改善点をいただくこと、そして自己満足です。
過程なんて興味ないという方は一番下に結論と今までの検証結果を書いておきます。良ければそれだけでも見ていってください。(なお今日のは過去にTwitterにあげたもののまとめだけです)
速度検証
①行動順は速度のみに依存して判定されるか
バッジで速度を合わせた別レベルのキャラを並べて500回行動順を見たところ、なんと丁度均等に250回ずつ先制、という結果が得られました。
この結果により、行動順は速度に依存すると推測できます。
②行動順はランダムに変わるが、その時の速度の変化量は固定値(ex.+1~10など)か変化値(ex.+1~10%など)か
表のように計測してみたところ、速度が230-200では数回行動順が逆転したのに対し、130-100では500回のうち1回も行動順が逆転しませんでした。
このことから、速度のランダム要素は、元の速度に依存すると言えそうです。
…
ここまで調べ、ではそのランダム要素はどの程度なのか。
つまり、どれだけ速度が離れていれば、行動順の逆転は起きないのかということについてまずは知りたくなりました。元の速度に依存するということについてまだ懐疑的だった私は、次の2種類データを取りました。
③行動順が逆転する範囲はどこか
この2つのデータを取って、私は深く頭を抱えました。
検証作業はもちろん見間違いはあるかもしれません。しかしこのデータは集中して取っていたつもりであり、なによりこの1回ははっきりと見覚えがあったのです。
この一回の逆転をどう考えるか。ここが難しいところでした。
( ˘ω˘ )( ˘ω˘ )( ˘ω˘ )2日後くらい( ˘ω˘ )( ˘ω˘ )( ˘ω˘ )
どうやら分岐点は16%付近にありそうだという当たりをつけることはできました。
しかしこの1%を切る確率で起こる逆転がどこまで出るのか、これを調べるのはとても大変です。速度差を1ずつ増やしていってその都度500回では及ぶべくもない回数(正確に出すなら4000回は欲しいです)試行するのは流石に人間的ではありません。
そこで、仕方ないので他の速度差での先制率を見てプロットを取り、グラフで推定しようと考えます。
④それぞれの速度差と先制率
このデータとこれまでの結果をグラフにまとめると以下のようになります。
実測したグラフはできましたが、ではそもそもランダム変化についてはどういう計算の仕方をすればいいでしょうか。
私はプログラミングについてはさっぱりなので、どのようにランダムな要素を乗せるかということについて他のゲームを調べたところ、やはり下のように整数を用いてそれぞれ等確率でランダム要素を乗せるのが多かったのです。
【すばやさ】 - ドラゴンクエスト大辞典を作ろうぜ!!第三版 Wiki*
例として速度230と速度200について、どちらも100%~116%で変化すると仮定しましょう。
変化が1%刻みであればそれぞれ17通りあり、二つの組み合わせは289通りになります。
このうち逆転するのは1.5通りになります(同速を0.5通りと数えると)。
つまり先制率は287.5/289=99.48%
データでは98.80%ですから近いといえば近いです。しかし残念ながら、100%~116%では速度233と速度200で逆転が起こりません。
このように組み合わせを考えてみて、データと照合し近似できそうな範囲を考えます。
しかし私は1%刻みという固定観念とデータに囚われ結論を出せませんでした。
( ˘ω˘ )( ˘ω˘ )( ˘ω˘ )3日後くらい( ˘ω˘ )( ˘ω˘ )( ˘ω˘ )
しばらく悩んでいたら、友人からある表が送られてきました。
天才でした。
0.1%刻みで±8%ならば、それぞれの確率がグラフの数値とかなり近しいです。
116-100で500回で逆転しないのはただの運だからもう一回やってこいと(言われた気がしたので)もう一度試したところ、100回も行かないうちに逆転を見ました。
すごく無駄に長くなってしまいましたが、これで一応の結論が出せました。
結論
・速度は毎ターンランダムに変化し、±8%の範囲を動くと近似できる。
------------------------------------------
(速度実数値)=(速度)*(n/1000)
・920≦n≦1080
・n∈Z
------------------------------------------
近似と書いたのは実際の式はわかりませんし、小数点の丸め方や刻み量、データの試行回数の少なさがあるためです。
最後に今まで計測した分の敵の速度を乗っけておきます。割と適当に測ったのもありますし先制確定速度などは計算上で試したわけじゃないので留意を。
時間があったら他の敵の速度も測ろうと思っています。測る方法については、またの機会で。ここまで読んでくれた方はありがとうございました!
・追記2017/12/23
続きがあります。こちらへどうぞ。