ゲームばっかりな日記だったやつ

半分跡地みたいなもの。書くネタは無い。

Clicker Heroesの話

最近Clicker Heroesにハマってしまい、PCが占有されてしまって困ってるのだが、とりあえず効率面で色々考えていたので、せっかくだから書いてみようというお話。
まず、costは「1.07^Lv」の指数関数らしい。それを元に、誰か任意のヒーローを基準としLvを設定、それと同じcostになるはずのレベルを全キャラにおいて算出する。そのレベル差によって想定されるDPS期待値を算出すれば、“一応”のキャラ差が導かれるはずである、というのが最初の話。

レベル

具体的な算出方法は、Excel関数でいうと、基準キャラのLvをL、基準キャラの基準コストをC、計算したいキャラのレベルをl、基準コストをcとすると、

    • l=L-LOG(c/C,1.07)

とするだけの簡単なもの。小数点以下も出るが、むしろこのままのほうが「期待値」としては正しい。

DPS

次に、Lvが十分に高い(最低でも1000以上)と仮定すると、「期待値」に限定した話をすれば、最終的に考慮されるべきである(Lv200以降の)大きい数字、かつLvを変数として必要とする値といえば、「25レベルごとに4倍」「1000ごとに10倍」である。
これの期待値は、いわずもがな、「4の25乗根」と「2.5の1000乗根」(1000ごとに10倍は、前者の4倍も含まれているため、それに2.5倍するということ)を「レベル差」乗すれば扱える。「4^(Lv差/25)」とかそんな感じ。
それにアップグレード(+100%が2つある場合は2倍×2倍、つまり掛け算)の値を全て掛けておくと、晴れてDPSの比を求めることができる。
Frostleaf以前に限定、Frostleafを基準(比1.0)にした場合、

    • Frostleaf 1.00
    • Masked Samurai 0.99
    • Brittany 0.91
    • Ivan 0.86
    • Seer 0.85

ここらへんが上位キャラとして挙げられることになる。
実効値を求めたい場合は、(1+gild回数×0.5)を掛けましょう。
ちなみに、Terra以降は倍々で効率が上がっていくので、そこに辿り着くまでのDPSを考える上で重要になるだけです。最後はAstraea(Frostの221倍)一本で良いんじゃないかな。たぶん。まだそこまでいってないけど。

問題点

これではい終わり、最高のやつにgild集中させて、そいつだけ振れば良いや、めでたしめでたし。というわけにはいかず。
やっていると分かるとは思うし当然のことではあるが、「1000の倍数Lv直前」の効率が非常に悪く、そして当然「1000の倍数Lv直後」の効率が非常に良い
これ、どこまでいっても「壁に当たって強化できるまで待つ」という図式・かかる時間は変わらない。だって同じ式の指数関数が続いてるだけだから。(要DRコンボ)
ということは、十分強くなれば特定キャラ一本だけで良い、と高をくくってしまうと、前述「1000の倍数レベル直前」の問題で頓挫してしまう可能性が非常に高い。
これを解決するためには、「複数キャラを同時に上げる」というリスクの分散方法が有効だと自分は考えている。
例えばSamuraiとFrostleafだけ上げているとすると、こいつらの同コスト時のレベル差はおよそ760程度であり、

    • 「Samuraiが1000の倍数に達してからFrostが1000の倍数に達するまでに760レベルもの開きがある」

というのが案外重くのしかかってくる。つまり、この間に1000の倍数レベルに達するようなキャラを同時に上げていくことで、押しなべて平均的な、なだらかな成長曲線を作り出せるということである。
ただ、先述のキャラDPS効率比の問題があるので、最大効率キャラの1割〜2割程度しか差が無いキャラを5体程度同時に上げるのが、個人的には良いのではないかと考えている。
しかし、この2キャラの間には、そこまで優秀なキャラが居ない。それでも平均的に上げたほうが詰まり難く良いと思うので、元々強めのキャラを5体程度選び、gild回数でDPS比を整えるのが良いのかもしれない。Ma ZhuとかAphroditeとかNataliaとかそこらへん。(追記:3〜4体程度でも良いかも。1000の倍数の2.5倍効果は、500経っても√で1.6倍程度残っているので)
あと、Frostが1000の倍数になってからSamuraiがなるまでの補数的な部分も、IvanかTreeあたりで補強できると安定するだろう。Brittanyでもいいけど、Samuraiと近すぎるのが少し気にかかる。

追記:冷静に考えたら、コストが分散した体数倍になるのを忘れていた。ので、その分損らしい。(ただし、Gildが分散する数を割った上での話なので、殆どGildしてない時、あるいは振りなおすほどHSに余裕が無い場合は、分散するGild数に比例して損も殆ど無い。故に、その場合に限り、上記打消し線の文章通りで問題ない。)
もし二体にして、双方のDPS期待値が同じだとする。そして同じコストのとき500Lv差だとすると、1000の倍数を越えるかどうかで火力が「√2.5≒1.6倍」程度だと考えられる。
片方が1000の倍数+500Lvから次までの間で効率が悪い区間だとして、そちらを基準にすると (1+1.6)/2 でトータル約1.3倍の火力上昇、だがコストが2体で2倍になっているので、2で割って0.65倍。
もしもう片方、1000の倍数から+500までの、補う側を基準にするなら、むしろ火力が1.3倍の逆数になる。その半分だと0.4倍以下。
1体だとしたら1倍。おわり。)

おまけ風

Excel2007で作ったもの。以下使い方。

    • 入力が必要な場所
      • gilded列全部(0の場合は空欄でも良い)
      • 基準:○○ となっている青塗りつぶしセル
        • ドロップダウンメニューで選べるようになっているので、それ使ってね。これで選んだキャラが基準の表に、瞬時に変わります。
        • cid選べるようになってるけど、選ぶとエラー表示のセルだらけになると思うので選んでも意味は無い。名前の管理から直せる。
      • Lv:○○ となっている青塗りつぶしセル
        • こっちは直接入力。「Lv:」は入れず、数字だけ入力。書式設定で「Lv:」を見かけ上挿入しているだけです。
    • 入れなくても良いもの
    • (正しいDPSが必要なく、比だけを求めれば良いなら、1とか適当に入れれば良い)
      • 左下にある「実績」「Hero Souls」「DR」
        • ゲーム内ステータスタブから調べて、正しい値を入力すれば、正しいDPSが算出されるようになっています。1/1000程度の誤差が出る可能性はあり。
        • 実績は、ゲーム内ステータスタブ「Total DPS% from Achievements」の%に100%を足して、100で割った「比」で入力。
        • Hero Soulsは、「1+(Hero Souls所持数×0.1)」
        • DRは、本当は「Energizeで使った回数」「素で使った回数」を入力させるべきだが、面倒くさいので直接入力して使ってしまっていた結果がこれ。
        • (Energize状態で使った回数)^1.1 × (素の状態で使った回数)^1.05 を入力すると良い。逆だった。判るよね?(投げやり)
        • 1.1^(Energizeで使った回数) × 1.05^(素で使った回数)

おわり。
(一応追記:Ancients等、私がまだそこまで行ってない故に、盛り込まれてない要素があります。特にGildのブースト等は、私のExcelシートの計算に若干影響がありますので、以上を序盤の指標程度に捉えるか、シートを改造するなりしてください。)
(更に追記:次の記事で、結局Ancientsも扱うハメになった。条件つきの効率計算なので、万人に合致する計算結果を得られるかは知らない。)