ユニット数と維持費のモデル計算によるシミュレーション
(2010年6月加筆修正)
1. Introduction
Wesnothのマルチプレイにおける勝敗を左右する重要なファクターの1つである資金について本稿では論じる。資金は村を所有することで得られ、獲得した資金によってユニットを雇用することができる。支出としてはユニットの雇用によるもの以外に、維持費がある。維持費用はその時々の村数、ユニット数によって変化する。ゲームの進行によりユニット数が刻々と変化してゆく際に、維持費や資金そのものがどのような振る舞いを示すかということは、直感的に理解することは困難であり、またこうしたことを明らかとするための理論的枠組みはこれまで存在しなかった。こうした背景より、wesnothにおける戦術を議論しようという際に、たとえば「オーク陣営は維持費がかさむので不利である」という命題があったとして、その成否を定量的な裏づけに従って判断することはこれまで困難であった。そこで本稿では、計算機によるシミュレーションを行い、ユニット数と維持費が従うダイナミクスの特徴を明らかにすることを目指した。このようなシミュレーションによる定量的な予測が実現できれば、たとえば前述の命題に対して「どのような条件(村数、敵陣営の種類)であればそれが成り立つのか」といった回答を示すことが可能となると考えられる。本稿ではまず、そのような定量的な予測のための基盤となるシミュレーションモデルを構築し、その挙動がユニット数や資金のふるまいを適切に表現することが可能かどうかを検証した。次に、このモデルを用いてさまざまな状況を分析し、ユニット数や資金がどのように推移するかを解析した。
2. Materials & Methods
2.1 維持費の計算
維持費用はユニット数と村数によって決まる。維持費用の計算方法はhttp://wikiwiki.jp/wesnoth/?%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB#o48419b2にも記載があるが、以下のようなルールに従う。
if ユニット費用の総和>村数維持費=(ユニット費用の総和 - 村数)else維持費=0end
ここでユニット費用の総和とは、全ユニットのレベルを全て足し合わせたものである。すなわちレベル2のユニットが1体とレベル1のユニットが2体が居れば、ユニット費用の総和は4である。ただしリーダーは含まない。このとき村数が4以上であれば維持費は不要であるが、村数が3以下の場合は維持費が必要になる。
毎ターンの収入は以下のようにして計算される。
収入=2 + 村数*n - 維持費
ただしnは村あたりの収入。マルチプレイのデフォルト設定においては、村あたりの収入は2となっている。
2.2 計算機シミュレーション
上記のような計算式を用いて、計算機によるシミュレーションを行う。シミュレーションに際して、以下のような簡略化を行う。
・雇用するユニットの値段(Cost of recruet; Cr)は一定とする(同一のユニットを雇用し続ける)・村数(Number of village; Nv)は一定とする
・ある値の所期資金(Initial money; Im)を持つ
・毎ターン、保有資金がCrを下回るまで雇用を行う(貯金は一切しない)
このような簡略化を行うことで、初期資金、ユニットの値段、村数などのパラメータを与えれば、ユニット数や維持費用の時間発展を記述することが可能となる。このような簡略化は必ずしもマルチプレイにおけるプレイヤーの挙動を厳密には反映していない。すなわちどの陣営においてもユニットの値段は14~23とかなりの開きがあるため、残り資金に応じて雇用するユニットを変化させたりすることが可能であり、上述の簡略化はこのような場合を考慮しないからである。また、維持費が掛からないレベル0ユニットの存在は議論をさらに複雑にさせる。しかしながら本稿で目指すのは、こうした枝葉によって左右されないような、ユニット数と維持費が示す時間発展についての一般的かつ本質的な性質を明らかにすることである。
3. Results
前章で示したような方法に従って、計算機によるシミュレーションを行い、ユニット数と収入の時間発展を解析した。
3.1 雇用費が異なる2陣営における振る舞いの相違
2陣営の村数などの条件が同一で、ユニットの平均雇用費が異なるような場合に、ユニット数の時間発展がどのように異なるかを解析した。
所期資金Imを100、村数Nvを7(Weldyn等を想定)、陣営1(赤)の平均雇用費を12(オーク兵卒スパムを想定)、陣営2(青)の平均雇用費を19(ドレーク粉砕スパムを想定)とした場合に、ユニット数の増加がどのようになるかを計算した結果をFig.
1に示す。また両陣営のユニット数の差および比を緑と黒で示す。この図は途中で戦いが起こらず、ユニット数は減少せず増加し続けるとしたときのユニット数の時間発展を示している。
Fig. 1 雇用費が異なる2陣営における振る舞いの相違(クリックで拡大)
赤実線:陣営1(雇用費=12)におけるユニット数
赤点線:陣営1の各ターン収入
青実線:陣営2(雇用費19)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
図から明らかなように、両軍のユニット数の増加速度は徐々になだらかになってゆく。これは維持費用の増大により収入が減少してゆくからである。ユニット数の差(緑)は、9ターン目まで単調増加し、その後減少する。このようなふるまいは次のようなダイナミクスに従っているため生じると考えられる。
フェーズ1) 試合開始時は両軍の収入が同一であり、安価な陣営1はより多くの兵を雇用でき、ユニット数差が広がる。(ターン1~15)
フェーズ2) 陣営1はより多くの維持費用が必要となるため、収入の低下が陣営2よりも速やかに起こる。その結果ユニット数の差が縮まる(ターン15~30)
フェーズ3) 両軍のユニット増加速度は釣り合い、ユニット数の差はこれ以上広がりも縮まりもしなくなる(ターン30~)
3.2 さまざまな条件における振る舞いの相違
次に、村数や雇用費をさまざまに変化させた場合にユニット数のふるまいがどのように変化するかを解析した。Fig.
2に、先ほどと同様に陣営1(赤)と陣営2(青)のユニット数および収入、ユニット数差(緑)を示す。左から順に、村数Nvが5(Isarなど),7(weldynなど),10(流星湖)の場合を示し、縦方向は陣営1の雇用費がそれぞれ13,15(2pの雇用費はいずれの場合も18である)の場合を示す。陣営2の雇用費13はオーク兵卒+弓兵、雇用費15は骨弓+骨斧+暗黒僧を近似した値であり、陣営1の雇用費18はそれに対してドレーク粉砕+魔トカゲ(vsオークを模したものの一例)か、戦士+焼却(同vsアンデッド)を想定した。
Fig. 2 さまざまな村数および雇用費におけるユニット数の時間発展(クリックで拡大)
赤実線:陣営1のユニット数
赤点線:陣営1の各ターン収入
青実線:陣営2(雇用費18で固定)におけるユニット数
青点線:陣営2の各ターン収入
緑:両軍のユニット数の差
Fig. 2において、Nv=5ではユニット数差がほとんど一定のままとなった。これは初期費用で雇用できるユニット数に対して収入が小さいため、上述フェーズ3) 両軍のユニット増加速度は釣り合い、ユニット数の差はこれ以上広がりも縮まりもしなくなるにいち早く到達するからであると考えられる。一方でNv=7では、6ターンから18ターン頃まで、ユニット数差のなだらかなピークがみられた。さらにNv=10では、Cr=13では10ターン前後により明白なピークがみられたが、Cr=15ではそれほどピークが明瞭ではなかった。陣営1のユニット数の増加はNv=7では、初期は線形であるが8~9ターン目ごろから鈍化する。Nv=10ではユニットを一度に2体雇えるターンが存在するため非線形であるが、やはり10ターン前後に鈍化する。一方で陣営2は、Nv=10では15ターン目ごろまでユニット数の増加は鈍らない。Nv=7では10ターン前後から鈍化が始まるが、陣営1よりも鈍化がゆるやかで、ユニット数差が徐々に縮まる。ただし縮まり始めるのは20ターン以降となる。
4. まとめと展望
以上より、雇用費の安い陣営と高い陣営のユニット数の差はある極大値を持つ場合があることが明らかになった。すなわちそれぞれの陣営によって、有利となるような総攻撃のタイミングが異なる。雇用費が安い側の陣営は、維持費がかかるまではにらみ合いを続け、維持費の増大によってユニット数の増加速度が頭打ちになる瞬間に総攻撃を仕掛けるのが、数的な優位を保つためには良いということが明らかになった。しかしながら村数が小さい場合や、両軍の雇用費の組み合わせによっては、そのような極大値が存在しない場合もあった。
本稿においてはモデルの一般化のために議論できなかった点が存在する。本稿ではユニットの価格とユニット数のみに着目したため、ユニットの性能を含んだ議論をすることができなかった。ユニットの性能はユニット同士の相性に大きく左右されるため定量化が困難であるが、もし何らかの方法によってユニットの性能を定量的に評価することができれば、ユニットの価格と性能とを合わせたユニットコストパフォーマンスを計算し、その時間発展を解析することで、さらに有用な知見が得られると考えられる。
また本稿では、維持費がかからないレベル0ユニットを除外した。しかし、たとえば維持費が増加しはじめる頃からレベル0ユニットへと雇用をシフトするといった戦術は研究の余地があると考えられる。こうしたことから、前述のユニットの性能の定量化と合わせて、レベル0ユニットを考慮した解析によって、あらたな知見が得られると期待される。