第六章 さまざまなテクニックとアイデア


一人用ゲームのバランス
 物量作戦
 人工痴脳
 情報の制限
 スピードの調整
 バランスに関するまとめ
さまざまな対立関係
 対等なゲーム
 対等でないゲーム
 三角関係
 役者と間接的な相互作用
スムーズな上達曲線
もう少しで勝てるかも
まとめ

 芸術家なら誰でも、芸術を産み出すための自分だけのテクニックやアイデアというものを持っている。画家は、筆の使い方や絵の具の調合法、いかに対象物の質感を出すかということに気を配るし、作曲家はオーケストラ向きの編曲法、リズム、対位法といったものを勉強するだろう。一本のゲームを作り上げるためには、ゲームデザイナーにも、さまざまなスキル、テクニック、アイデアといったものが要求される。この章では、私がこれまでに使ってきたテクニックを紹介しよう。

一人用ゲームのバランス

 プレイヤーが一人のゲームでは、おのずからプレイヤーとコンピュータが対戦することになる。しかし、コンピュータとプレイヤーの間には非常に大きな差が存在する。人間の思考方法が、多数の情報を頭の中にちりばめ、それを関連づけ、まとめていくという順序で進んでいくのに対し、コンピュータの思考方法は直接的で、わきみちを知らず、計算づくなのである。これがある問題を産み出す。コンピュータゲームがプレイヤーを楽しませるために作られている以上、コンピュータにとってではなく、人間にとって有利な土俵で戦わなくてはならないのだ。これは、コンピュータにとって大きなハンデとなる。計算やソートといったことが主体となるゲームでは、コンピュータは簡単に人間に勝てるだろうが、そんなゲームは少しも面白くはないだろう。コンピュータは、プレイヤー側のホームグラウンドで戦って、そんな不利な状況をなんとかしなくてはならない。どうすれば、プレイヤーにとってやりごたえがあるようなゲームをデザインできるだろうか。方法は四つある。物量作戦、人工痴脳、情報の制限、そしてスピードの調整である。

物量作戦

 これはゲームバランスの調整法として最も良く使われている方法のひとつであろう。コンピュータは、不器用だが膨大な計算能力を持っている。この計算能力を使えば、思考パターンさえ単純なら大量の敵ユニットを同時に動かすことができる。この手を使っているゲームは数多い。『スペースインベーダー』 (SPACE INVADERS)、『ミサイルコマンド』 (MISSILE COMMAND)、『アステロイド』 (ASTEROIDS)、『センチピード』 (CENTIPEDE)、そして『テンペスト』 (TEMPEST)、といった有名どころのゲームは皆そうだ。コンピュータ側のユニットそのものは数を少なくして、その代わりにプレイヤー側ユニットよりも強力なものにしておくという手もある。『バトルゾーン』 (BATTLEZONE) におけるスーパータンクが良い例だろう。どちらにせよ、この手法によるバランス調整の首題は同じだ。プレイヤーの思考上の有利をコンピュータの物量で調整しようというのである。

 この方法はふたつの利点をもっている。ひとつは、プレイヤーとコンピュータとの戦いの中にダビデ (David) とゴリアテ (Goliath) の戦いのような小が大を倒すというシチュエーションを入れられることだ。明らかな負け犬をいじめるよりは、対等以上の相手を倒したいと思うプレイヤーは多い。もうひとつは、この手は、コンピュータ上でのプログラミングの負担が一番少ないということだろう。コンピュータに人工知能を演じさせるのは難しいが、同じことを繰り返させるだけなら単にループを組むだけで良い。もちろん、楽なだけに欠点もある。そう、皆がこの手を使っているのだ。そんな安易なゲームは、膝まで埋まるほどあちこちに氾濫している。このテクニックの流行は、ゲームデザインを考慮した結果と言うより、デザイナーの決断力のなさと怠惰さの結果だろう。

人工痴脳

 物量主義以外にコンピュータ側に人間に対抗できるだけの能力を持たそうと思ったら、人工知能を採用するのが良いに決まっている。しかしながら、残念ながら現状では、人工知能はゲームなどに簡単に使えるほどには進んでいない。樹形図を用いたしらみつぶし法は、チェス、チェッカー、オセロといったゲームにおいて何とか使えるレベルにはなっている。しらみつぶし法が使えるゲームに関してはこの手で処理が可能だ。しかし、残念なことにそういったゲームは極めて少ない。

 そこで、それぞれのゲームにあわせて簡易的な人工知能ルーチンを組むというテクニックが使われる。そういったルーチンは、人工知能と呼ぶにはあまりに原始的で単純であり、私はそれを「人工痴脳」 (Artificial Smarts) と呼んでいる。このテクニックは、『タンクティクス』 (TANKTICS)、『東部戦線1941』 (EASTERN FRONT 1941)、『リージョネア』 (LEGIONNAIRE) といったゲームに採用され、それなりにうまく働いた。この手法はゲームデザイナーにとっては非常に負担が大きい。人工痴脳にしたがうコンピュータ側のユニットの動きは、合理的で、しかもプレイヤーに読み切られないものでなくてはならないからだ。

 人工痴脳の設計においてまず考えなくてはならないのは、ユニットに合理的な動きをさせるということだ。コンピュータが、タンクに断崖絶壁を越えさせようとしたり、自軍の宇宙船同士を体当たりさせたり、あるいは、プレイヤーの構えた銃の目の前で一休みしていたりすれば、プレイヤーは興醒めしてしまうだろう。いくら人工痴脳といっても明らかにおバカな動きをしてはならないのである。そういうと、デザイナーたちは、まず考えられるすべてのおバカな行動をリスト化し、そのひとつひとつについてそれを禁止するルーチンを書かなくてはならないというように考えがちである。しかし、それは間違った考え方だ。なぜなら、コンピュータは一見間違ったような動きから、思ってもみなかったような手を産み出すこともあるからである。より良い(より困難ではあるが)方法としては、おバカな行動のほとんどをカバーしてくれるような、より普遍的なアルゴリズムを考えることなのだ。

 それに加えて、人工痴脳の動きが人間に読み切られるようではいけない。コンピュータが次に打ってくる手が丸わかりになってしまうようでは、敵が知性をもっているという幻想が台無しになってしまうし、あまりに簡単に勝ててしまうだろう。これは、一見、先ほど述べた「理にかなった動き」という条件とは矛盾しているように思えるかもしれない。パターン化された定跡というのは読みやすいものになりやすいのだから。しかし、この表面上の矛盾は、ゲームにおける相互作用というものを深く考察することで解消されるだろう。ここでは、三つの観点をあげる。第一に、ゲーム上で打たれる手というのは、かならず、ある程度は対戦者の影響を受けたものになるということである。理にかなった動きをするプレイヤーは、対戦者のくせや性格から次の行動を予想しようとするものだ。第二に、相互作用というものは、もちろん相互に対称なものだ。両プレイヤーは互いに相手の動きを予想する。第三に、相互作用は、それそのものが「ゲーム度」を量る基準となっている。この三つの観点は以下の喩えで理解できるだろう。ゲームは、二枚の合わせ鏡に喩えることができる。互いのプレイヤーは、それぞれの鏡を覗き込んでいるのだ。パズルは2枚の鏡が全く互いを映していない状態である。プレイヤーは静止した自分の顔を見ることだろう。多少なりともインタラクティブ性があれば、鏡は何度か反射して何人もの自分と対戦相手を映すに違いない。最高にインタラクティブな(つまり最高に「ゲーム度」の高い)ゲームでは、合わせ鏡は無限の像を映す。どちらのプレイヤーがちょっと違う動きをすれば、鏡に映る像は全く違うものとなるだろう。どんなに定跡だけを打っていても、無限に複雑な予測と予測の重なり合いが起きてその結果は全くわからないものとなるのだ。これこそ、合理的でかつ予測不能ということなのである。

 残念ながら、完全にインタラクティブなゲームは、現行のパソコンレベルの処理能力では手が届きそうにない。コンピュータ側に完全なインタラクティブ性を持たせるためには、人間が次にどう対応するのかをコンピュータに読ませる必要があるが、それには、プレイしている人間の人格や性格といったものまでもコンピュータに分析させる必要があるからだ。さすがに、それは望み薄といった所だろう。現状では、もっと単純な方法に頼るしかない。私がこれまでに使ってきた手を例にあげよう。私の経験では、「限定」ルーチンのアルゴリズムほど読みやすいものはない。ここでは、ゲーム上のすべてのパターンの中で何かに特化したという意味で「限定」という言葉を使っている。「ウォーゲーム」を例にあげると、「最近接のユニットを探してそれを攻撃せよ」というアルゴリズムは、「限定」的であり読まれやすい。

 私の経験では、最高のアルゴリズムとは、限りなく広がったさまざまな条件の中で、可能な限り多くの条件を検討しているアルゴリズムである。すなわち、少数の「限定」的な条件によるのでなく、できる限り多くの条件を加味するように作られたアルゴリズムを採用すべきなのだ。先ほどの例でいうなら「相対距離、移動力、砲塔の向き、友軍との距離、地形効果、射線などを分析して、こちらが破壊される確率と相手を撃破できる確率を計算し、撃破率と被害率の差が最も大きなユニットを探してそれを攻撃せよ」ということになるだろう。

 では、そのような人工痴脳アルゴリズムを実現するにはどうしたら良いのだろう。私にも一般的な方法があるとはとても思えない。少なくともまだ見つかってはいないだろう。私にいえるのは、まずユニットの動きを得点化するような評価関数を作成し、実際にテストしながら、それを少しずつ変えていくという方法しかないだろうということだ。

 評価関数は、まず、すべての可能な動きについて、そのメリット、デメリットを数値化できるように作成する必要がある。これはこれまでに作成されてきたすべての人工痴脳システムで有効だった方法である。しかし、評価関数の計算には膨大な計算が必要になる。第一の問題は桁数の問題である。デザイナーは、評価関数の計算の中で、1バイト(8ビット)で表現できる最大の数値を超えてしまって桁あふれを起こすことのないようにしておかなければならない。評価点が255点を越えるような手が複数あった場合には、どちらが最善手であるかを判断することができなくなってしまうのだ。まあ、この問題に関しては16ビットシステムがもっと一般的になれば問題ですらなくなってしまうだろうが。

 評価関数を決める上でのふたつめの問題は、互いに矛盾するような要因にどのように評価点を割り振っていったら良いのかということである。戦車戦ゲームをデザインしたときには、次のようなことがあった。丘の上に登るのは良い行動であるというのは確かだった。しかし、道の上を移動するのもまた良い行動なのである。問題はどっちがより良いかだ。丘の頂上で行動を終えるのを15点にしたとして、道の上にいるのは何点にしたら良いのだろう。これは非常に答えにくい。正解を出すためには、そのゲームに関して本当に良く知っていなければいけないのだが、残念なことに、まだゲームが完成していない以上、最善手などわかりようもないのである。似たようなゲームに関する広い知識、再現すべき状況に関する深い理解、紙の上での分析、そして試行錯誤、そういったものに頼るしかない。

 私が人工痴脳を設計するときに使うふたつ目の手法は、パターン解析である。この手は、各ユニット間に空間的な関係があるときにしか使えない。そのようなゲームでは、プレイヤーは、コマとコマの間の位置関係を把握し、次の手を決めるために一種のパターン認識を行っている。もちろん人間レベルのパターン認識をやるのはパソコンのレベルをはるかに越えてしまうが、それでも盤上のパターンを分析することで、パターン認識に近いことは可能になる。キーとなるのは、コンピュータにそれらしい動きをさせるために必要十分なだけの評価点を、コンピュータが計算できる形でそれぞれの場所に与えてやることである。たとえば、いくつかのウォーゲームでは、そこはどれくらい危険か、どれくらい安全かということをあらわす危険ポイント、安全ポイントというものを導入した。危険ポイントは、近くにいる敵ユニットすべてについて、各々の攻撃力をそのユニットまでの距離で割り、それを合計したものである。この危険ポイントは、近くの強力なユニットは危険で、遠くにいる弱いユニットは脅威にならないということを再現している。同じことを、友軍に関してやれば安全ポイントが定義できる。危険ポイントと安全ポイントを比べてやることで、あるユニットに行くか逃げるかを決定させることができる。一旦、この判断をさせておいた上で、可能な移動範囲の中でどこに行ったらより危険で、どこに行ったらより安全かを計算させる。行く気ならより危険な動きをすれば良いし、逃げるならより安全な動きをすれば良いのだ。パターン解析の手法を使うことで、ユニットに盤上での連携といったものを演じさせることができるようになる。

 人工痴脳をうまく働かせるためのテクニックの中には、あまりに単純過ぎて詐欺っぽい手法もある。そう、ゲームのほうを手直ししてしまうのだ。評価関数に組み込みにくいような要因に関しては、ゲームから外してしまうのである。どうしても手に負えないような要因は、使うのをあきらめるしかない。たとえば、私は『タンクティクス』のデザイン中に湖の取り扱いでひっかかった。湖の岸にへこんだ部分があると、タンクが岸にぶつかっては戻り、岸にぶつかっては戻りという堂々巡りをしてしまうのである。そのとき使っていたアルゴリズムにとって、へこみのある湖はトラップになってしまっていたのだ。私は、へこんだ湖のまわりで妙な動きをしないようなアルゴリズムを作るために本当に長い時間を費やした。そして、ついにうまい方法に気付いたのである。問題の湖をマップから取り去ってしまえば良いということに……。

 理想的には、熟練したゲームデザイナーはゲームのデザイン段階で、こいつは手に負えないから避けよう、といったような勘を働かせるべきなのだろう。しかし、実際には、実装段階でひどいことになっていることに気付いて、デザイン段階へと後戻りすることがままある。そういった経験が、デザイナーの勘を鍛えるのだ。

 どんなに優秀なアルゴリズムであっても、それには適用範囲というものが存在する。特定のアルゴリズムは、特定の狭い条件下でのみうまく働くことが期待できる。しかし、面白いゲームをデザインしようと思えば、さまざまな状況を産み出すようにゲームをデザインしなくてはならない。すなわち、デザイナーは多くの場合いくつものアルゴリズムを作成してそれを状況の変化にあわせて切り替えていく必要があるのである。しかし、アルゴリズムの切り替えにはやはり危険が伴う。切り替えの前後でコンピュータ側の動きに連続性がなくてはならないからである。このアルゴリズムの切り替えに関しては、『リージョネア』をデザインしていたころの失敗がいまでも思い出される。コンピュータが操るバーバリアンは三種類のアルゴリズムを与えられていた。「安全地帯へ撤退」、「接敵せよ」、そして「攻撃せよ」の三種類である。とある条件下ではこんなことが起きた。「接敵せよ」アルゴリズムにしたがって、プレイヤー軍に向かってひたすら突撃してきたバーバリアンが、「攻撃せよ」アルゴリズムに切り替わったとたんに、その攻撃が無謀だったことに気付いて、攻撃をすることなく「安全地帯へ撤退」アルゴリズムにしたがって尻尾を巻いて敗走を始めるのである。プレイヤーの眼前には、獰猛に突撃しては、きびすを返して狂ったように逃げていくバーバリアンの乱舞が繰り広げられる。誰も実際の戦闘には入れない。私は結局アルゴリズム切り替え方式をあきらめ、デザインをやり直した。アルゴリズムをひとつにまとめて「前進して攻撃せよ」にしてしまったのである。

 数多くのユニットを一度に、コンピュータに移動させようとすると、また別の問題が出てくる。いくつものユニットを整然と渋滞することなく移動させるにはどうしたら良いのかという問題である。ひつの方法は、ユニットの行動順を決めてしまって他のユニットとぶつからないように動かしていく方法である。まず、ユニット1番を動かして、次に2番、3番と空いている所に移動させていくのだ。もっとも私の経験では、この方法ではイライラするような大渋滞が、せいぜいのろのろ運転に取って代わるだけだ。もっと良い手としては、仮想的な移動を採用する方法がある。すべてのユニットを、仮想的な位置関係にしたがって一旦移動させてみるのだ。具体的にはこういうことになる。始めは、現状のユニットの位置関係を記憶する。次に、現在のユニットの位置関係を架空のボードにコピーする。そして、個々のユニットに関して、互いにぶつからないような架空の移動プランを探させるのだ。あるユニットに関して移動プランが決まったら、架空のボード上でそこに移動させてみる。次に別のユニットに関しても同じように移動先を決める。すべてのユニットが動いたら、初めのユニットをもとの場所に戻して同じプロセスを繰り返す。こうやって、他のユニットの行き先を暫定的に決めながらベストな移動法を探していくのである。この膨大な計算を必要とするループはある程度の繰返し回数で打ち切って収束させる必要があるが、これによってコンピュータに基本的な移動条件を与えるだけで、各ユニットの行き先を決めることができる。この手法は、多数のユニットを渋滞させることなく移動させる必要があるときに役立つだろう。

 ここまでに述べてきたような人工痴脳のテクニックは、ユニット間に空間的な相互作用があるようなゲームにおいて有効なものである。しかし、またユニット間にそういった相互作用が存在しないようなゲームも多数存在する。そういったゲームでは、また違った人工痴脳が必要になる。空間的な相互作用が重要な意味を持たないようなゲームでは、複雑系のモデルに従った動作をさせることが多い。多くの場合、複雑系をモデル化するために、対になった差分方程式が導入される。『ルナ・ランダー』 (LUNAR LANDER)、『ハンムラビ』 (HAMMURABI)、『エナジー・ツァー』 (ENERGY CZAR)、そして『スクラム』 (SCRAM) といったゲームがそれらの代表格である。そういったゲームをデザインする上で一番気をつけなくてはならないのは、ゲームシステムの複雑さによってプレイヤーを打倒するのではないということである。大きなゲームに対になった差分方程式を持ちこむときには十分気をつけるようにしたい。『ハンムラビ』では、3セットの対になった差分方程式が使われた。まあ、これくらいなら何とかなるというプログラマーも多いだろう。しかし、システムは、差分方程式の数が増えるにしたがって急激に複雑化する。『エナジー・ツァー』では、なんと48個もの差分方程式が使われた。こんな離れ技は、よほど制約が多いとき以外には使いたくはないものだ。普通は、4セット程度に止めて置くようにしたほうが良い。もし、どうしても多数の差分方程式を使わなくてはならなくなったときには、連立差分方程式の形で書けないかどうかを検討してみたほうが良いだろう。パラメータを行列表示にして、簡単な同一の方程式に適用するのだ。

 私の経験からいうと、バランス調整のためには、差分方程式には前に進めようとするドライビングファクター Drv と押し止めようとするダンピングファクター Dmp のふたつの因数が必要で、

 f(n+1) = f(n) + Drv/Dmp

といった形で表現される必要がある。

 ダンピングファクターを小さくとると、あちこち跳ね回るような、変化の激しいシステムになる。一方、ダンピングファクターを大きくとると変化が乏しく停滞したイメージになる。気をつけないといけないのは、ダンピングファクターを安易に決めて安心してしまうと、とんでもないことになる場合があるということである。f(n+1) とドライビングフォースの間でネガティブフィードバックがかかっている場合には、ダンピングフォースを大きくとりすぎると、ネガティブフィードバックが抑制されてしまい、パラメーターが発散する可能性がある。差分方程式の動作はけっこうややこしい。興味があるデザイナー志望者は、数学の本を読んで、ダンピングファクターが大きな場合、小さな場合、丁度中間的な場合について、どのような解が得られるのかを調べてみると良いだろう。もっと一般的な差分方程式の解法に関しても、数値解析の教科書を読むことをお薦めする。

 こういったテクニックを用いることで、コンピューター側がある程度の知能を持っているかのように見せかけたゲームを作ることは可能である。しかし、あまり高望みはしないほうが良い。どんなに苦労したところで、本当の意味での知性をコンピュータに与えることはできない。私の示した三つの手法のいずれも、それだけでは、プレイヤーに歯ごたえがあると思わせるのには足りないのだ。実際には、プレイヤーの実力の半分にも満たないといったところだろう。

情報の制限

 コンピューター側の思考力の不足を埋め合わせるには、プレイヤー側に与える情報を制限してしまうという方法もある。さすがに十分な情報なしでは、プレイヤー側も問題を簡単に解いてしまうというわけにはいかない。このテクニックもさじ加減が重要である。あまりやりすぎると、ゲームが運だけで勝敗が決まってしまうようなものになってしまう。しかしながらこの手を使えば、コンピュータ側の勝率を五分五分にまで持っていくこともできる。もし、情報操作に適当な理由がつけられれば(たとえば、プレイヤー側が斥候を出すまで敵軍が見えないとか)、情報が制限されていても不自然にはならない。

 情報を制限することには、コンピュータを強くする以上のメリットもある。未確認の情報を小出しにすることで、プレイヤーの想像力をかきたてることができるのだ。これをうまくやるためには、プレイヤーに与える情報は意識して吟味して置く必要がある。情報を細切れかつでたらめに与えられたのでは、プレイヤーは、じらさせるのではなく混乱していらついてしまうのだ。いきなり裸の女性を見せつければ男の目をひくことは間違いないが、着飾った女性が少しずつ服を脱いでいったほうがずっと色っぽく見えるだろう。初めからあちこちに穴の空いてる服を着てる女性? それは、ただみっともないっていうんじゃないかい。

スピードの調整

 スピード調整によってバランスをとることもできる。確かにプレイヤーの思考能力はコンピュータに比べて優れているが、単純計算を大量かつ高速に行うことにかけては、コンピュータのほうがはるかに上である。ゲームのスピードが速ければ、プレイヤーも落ちついて考えることができずに、あわてふためくことになるだろう。この手法は実現が容易なため、非常に多くのアクションゲームのデザイナーに採用されている。

 しかし、私はやたらとスピードをあげることで難易度を調整するのはまずいと考えている。展開の早いゲームは、どうしてもクリアまでの時間が短くなり、プレイヤーにとってのやり込みの要素がなくなってしまう。やり込みの要素のないゲームは、やりがいのないゲームなのである。コンピュータゲームにおけるスピード感というのは、一夜限りの恋のような物だ。そのときは楽しいが、めったに新婚旅行まで発展することはない。繰り返して言おう。スピードによる難易度調整は安易に行うべきではない。

バランスに関するまとめ

 これら四つのバランス調整のためのテクニックは、決してバラバラに使われることはないだろう。多かれ少なかれ、すべてのゲームの中でこれらのテクニックは組み合わせて使われている。普通は主に物量作戦とスピードで難易度を調整していて、人工痴脳や情報の制限をうまく使っているものはほとんどない。だからといってこれらすべてのテクニックを一度に使ってはいけないという理由はどこにもない。むしろ、それはもっとゲームを素晴らしくするはずである。それぞれのテクニックをうまく組み合わせることで、それぞれの弱点を補いあうことができるのだから。デザイナーは、目的のゲームを完成させるために、どのテクニックをどう使うかということを考えていかなくてはならない。

さまざまな対立関係

 どんなゲームであれ、各プレイヤーが自分に最大の利益をもたらそうとしている限り、そこにプレイヤー間の関係が生じる。これは、ゲームにおいて主要な役割を演じている。このプレイヤー間の関係がどんなものであるかによって、ゲームの基調が決まるのである。コンピュータゲームでは、プレイヤー同士の関係は非常に単純な、質、量ともに限られたものであることが多い。ここでは、より面白いゲームを作るためにプレイヤー間の関係についてより詳しく考えてみよう。

対等なゲーム

 一番単純な関係は、プレイヤー同士が対等な場合だろう。どちらも同じパラメーター、長所、欠点を持っている。プレイヤー同士が対等に作られたゲームは、自動的にゲームバランスが取れるという点で明らかに優れている。また、プログラミングも楽だ。両者に同じルーチンが使えるのだから。おまけに、ゲームのルールも理解しやすく、慣れるのも早いだろう。この手のゲームの代表としては、アタリ2600 (ATARI 2600) の『コンバット』 (COMBAT) や、バスケットボール、そして、グレイ・チャン (Gray Chang) がデザインした『ドッグ・デイズ』 (DOG DAZE) などがある。

 プレイヤー同士が対等なゲームにもさまざまな弱点が存在する。最大の欠点のひとつは、すべてが全く対称的であるということだ。もし、本当に有効な必勝法というべきものが存在したときには、どちらのプレイヤーも同時にそれを実行することができるのである。そうなると、もはや戦略をたてることに意味はなくなってしまい、どちらが先に必勝法に沿ってプレイしたかだけの問題になってしまうのだ。

 その代わりと言ってはなんだが、この手のゲームでは勝利は非常に僅差になりやすいともいえる。たとえばチェスでは、ポーン一個の差で勝敗が決まるようなことも良くあるではないか。

対等でないゲーム

 以上で述べたように、プレイヤー同士が全く対等なゲームにはいくつかの弱点があるため、あえてプレイヤー間に不平等を持ちこんでいるゲームも多い。そういったゲームでは、個々のプレイヤーはそれぞれ全く異なる弱点と利点を持っている。このようなゲームをデザインするときには、デザイナーは同レベルのプレイヤー同士のゲームで勝率がほぼ拮抗するようにゲームバランスをとる必要がある。一番簡単なのは、初期条件をある程度変更できるようにすることだろう。基本的には対等なゲームにしておいて、初期条件をいくつかの制限のもとで選べるようにするのである。アヴァロンヒル (Avalon-Hill) のボードゲーム、『ウィザーズ・クエスト』 (WIZARD'S QUEST) を例に上げよう。このゲームではプレイヤーはゲーム開始時に、互いに接していなくてはならず、飛び地を作ってはならないという条件のもとでいくつかの領地を選ぶことができる。こうすることにより、(プレイヤーは、ゲーム開始時にN個の領地を持っているという)対等な条件が、(プレイヤーAは、領地を一直線に並べ、Bは中央に固めたというように)対等でない条件に変わったのである。この不平等は、プレイヤー自身が作り出したものであり、たとえその結果がどんなに不利になろうとも、プレイヤーは自分自身を責めるしかない。

 もっとあからさまに不平等なゲームもある。コンピュータゲームでは、プレイヤーとコンピュータの間にものすごいハンデがあることが多い。コンピュータの人工痴脳では人間にはとてもではないが太刀打ちできないからである。そのため、プレイヤーにはその卓越した戦略眼を発揮するのにふさわしいだけの限定された資源が、コンピュータにはその知性の欠如をごまかせるだけの豊富な資源がそれぞれ与えられることになるのである。

三角関係

 プレイヤー同士を不平等にしておくことの利点のひとつに、ゲームに非推移的な三角関係を導入できるということがある。推移律という言葉は数学的には厳密に定義されているが、ゲームに限った話ならじゃんけんを例にあげると理解しやすいだろう。二人でじゃんけんをする場合を考えよう。それぞれが心の中でグー、チョキ、パーのどれを出すかを考え、ついで同時に手を出して結果を比較する。もし、同じものを出していたらあいこでやり直しだ。そうでなければ、石ははさみを刃こぼれさせ、はさみは紙を切り、紙は石を包み込むという、いわゆる三すくみのルールで勝敗が決まる。このように、あるものには勝つが他のものには負けるというような関係があるとき、これを非推移的な関係というのである。石がはさみより強く、はさみは紙より強いからといって、石で紙には勝てない。ここで気をつけておきたいのは、このように明白な非推移的関係が成立するのは、要素が三つの場合に限られるということである。すなわち、ある要素は他のふたつの要素とのみ関係があり、ひとつには勝ちもうひとつには負けるという場合である。たとえばじゃんけんの手が三種類でなかったら、結果は勝ち負けの二種類だけでは収まらなくなってしまう。たとえば、ポイント制などを持ち込むことで、さまざまなレベルの勝敗というものを表現する必用があるだろう。

 推移律は、非常に興味深い数学上の問題ではあるが、これ以上、数学的に厳密な理論を展開したところで、あまりゲームの役に立つとは思えない。より一般化して論じたほうが良いだろう。そこで、このような非推移的な状況を表現する上でより一般的な「三角関係」という言葉を使うことにしよう。

 ゲームにおける三角関係の例として、『バトルゾーン』 (BATTLEZONE) を例にあげよう。ゲーム中にUFOが出現した場合、プレイヤーは敵戦車ではなくUFOを狙う。ここにも、プレイヤー、UFO、敵戦車という三つの因子が存在する。プレイヤーはUFOに狙いをさだめることで(三角形の一辺)、敵戦車が一方的にプレイヤーを攻撃するのを許す(別の辺)。残った一辺であるUFOと敵戦車の関係は、とりあえずプレイヤーにはあまり問題にならない。コンピュータはUFOを使って、プレイヤーを不利な場所におびき出そうとしてはいるのだが。私の言うゲームにおける三角関係という言葉は、この例で理解できるものと思う。

 このような三角関係は、攻守が入り交じったような状況を表現するのに用いられることが多い。多くの対戦ゲームでは、攻めと守りの中間状態を考えることは少ない。攻撃的な行動と守備的な行動ははっきりと分かれている。中には、守備と攻撃を完全に分けてしまい、片方が攻撃権を持っているときには一方は守備しかできないようなゲームもある。実はこれは個々のプレイヤーの取れる行動オプションを大きく制限してしまうという点で、かなりリスクの大きいゲームデザインである。取れる行動が制限されてしまうと、互いに影響を与えあうのが難しくなっていくのだ。個々のプレイヤーが、戦略的に攻めと守りのバランスを配分できるようなゲームのほうがもっとずっと面白いものになるだろう。そういったゲームでは、どちらのプレイヤーも攻めようが守ろうが自由だ。しかし、攻めにリソースを費やすと守りが甘くなってしまうという点を忘れてはならない。このような状況下では三角関係が自然に成立する。

 三角関係で一番重要なのは、それが間接的な関係を含んでいるということである。一対一では、直接的な殴り合いが避けられない。敵対者は互いにまっすぐ相手陣に向かい戦闘を行う。最初から殴り合いが起きることは明白に予想が付き、いつしか退屈でありふれたゲームになってしまう。三角関係を持ち込むことで、プレイヤー同士に間接的な相互作用の機会が与えられる。それによりゲームはより複雑で面白いものとなるのである。

役者と間接的な相互作用

 ゲームデザインにおいて、間接的な相互作用を実現できるというのが三角関係のエッセンスであることはすでに述べた。しかし、この間接的な相互作用とは何かということ自体、もっと掘り下げて考えてみる必用がある。三角関係は、間接的な相互作用の中で最も基礎的なものに過ぎないのである。多くのゲームでは、敵との関係は直接的なものとして描かれる。

 たいていの場合、敵はプレイヤーにとって単一のものであり、その間に生まれる最も単純で最もありふれた関係とは、敵をせん滅することになる。その結果として多くのゲームが非常に暴力的になっているのはご存じの通りだ。一方で、三角関係を採用したゲームは何らかの間接的な相互作用を持っている。

 三角関係のもとでは、敵対する二勢力は、それぞれにもうひとつの勢力、第三者と関わっていかなくてはならない。その第三者は、交渉を受け付けるだけの代理人かもしれないし、ある程度の戦力を持っているかもしれない。プレイヤーと全く同等の一人前の戦力をもっていることもあるだろう。しかし、ゲーム機の前にプレイヤーを二人呼んでくるのも大変なのに、三人となったらなおさらである。そんなわけで、第三勢力はコンピュータが操る役者が演じることが多くなる。ここでいう役者は、プレイヤーに対する敵とはまた別の意味である。役者は単純なシナリオにそって動いていく。行動を決めるような人工痴脳やそれ自身の目的は持っていない。たとえば、『バトルゾーン』におけるUFOが役者の例である。UFOは、戦場をある軌道で移動し直接戦闘には参加しない。その目的はプレイヤーを悩ませることであり、それ以上の役割は持っていない。

 役者という概念を導入することで、間接的関係という概念をより深く理解することができるだろう。模式的に説明していこう。

 間接的な関係においては、プレイヤー同士は直接戦闘することはなく、実際に戦闘するのはプレイヤーと契約した役者たちである。ミューズソフトウェア (Muse Software) の『ロボットウォー』 (ROBOTWAR) を例にあげよう。このゲームでは、プレイヤーは各自の戦闘ロボットを受け持つ。プレイヤーがすることは、ロボットの行動原理に関して短い詳細なプログラムを組むことである。ロボットはこのプログラムに従って古代ローマの剣闘士たちのように競技場で戦うのだ。このゲームでは、プレイヤーは実際の戦場から排除され、その代わりに役者、ロボットが戦う。自分のロボットがどれかといのは明白だ。これは本当の意味では間接的な関係というわけにはいかないだろう。実際の戦闘そのものは直接的なものであるのだから。しかし、プレイヤーを戦場から放り出し、観客席に座らせておくことには成功している。私がこの種の間接的な関係を、不完全で過渡的なものと考えているのはそのためである。

 より完全な間接的関係の例として、ジム・ドュニガン (Jim Dunnigan) の『ドイツ戦線』 (BATTLE FOR GERMANY) をあげよう。このゲームは、第二次世界大戦末期 (1945年頃) のドイツ戦線を扱っている。これが明らかに対等な戦いではないのは判るだろう。当時、ドイツは東ではロシアを、西では米欧連合軍を、同時に相手にしなくてはならないのだ。こんな不利な状況でドイツを担当させられたらたまったものではない。ドュニガンはこれを戦線をふたつに分けることで解決した。プレイヤーの一人は、ロシア軍とドイツ西部方面軍を、もう一人が米欧連合とドイツ東部方面軍を担当することにしたのである。どちらのプレイヤーも、侵攻側となり防御側となる。逆にいえばどちらのプレイヤーも侵攻軍でもドイツ軍でもない。対立する双方は明確な定義を失い、役者としてのみ機能することになる。

 やはりドュニガンがデザインした『ロシア革命』 (RUSSIAN CIVIL WAR) こそ、間接的関係の極限というべきものだろう。このボードゲームは、赤軍と白軍の間で戦われたロシア革命戦争を扱っている。ドュニガンがこのゲームに採用した素晴らしいアイデアは、プレイヤーと戦闘に使うトークンの関係を完全に切り離してしまったことだ。それぞれのプレイヤーは、赤軍ユニットと白軍ユニットを同時に保持し、手元の赤軍ユニットで他プレイヤーの白軍ユニットを、また手元の白軍ユニットで他プレイヤーの赤軍ユニットを攻撃する。ボード上から赤軍、白軍のどちらかが排除されたときがゲームの終了で、その軍の勝利に最も貢献した(戦争に敗けた側のユニットを最も多く倒し、勝った側のユニットを最も多く生き残らせた)プレイヤーが勝者となる。

 このゲームは、間接的対立関係というものを非常に良く表している。実際に戦争をしている両軍は、ゲームの勝ち負けには本当の終盤になるまで関わってこない。両軍は役者なのである。プレイヤーが操作しているにもかかわらず、両軍の戦闘にはプレイヤーの意志が現れてこないのだ。このゲームのデザインにおいて重要なことがひとつある。このゲームシステムが有効に働くためには、少なくとも二人以上のある程度熟達したプレイヤーが必用とされるのだ。ともあれ、ここまでプレイヤー間の関係を間接的にしたデザインというのは非常に魅力的なものであることは確かである。直接的な戦闘は暴力的、破壊的であり、本来人間社会からは疎まれるものである。しかしいまだに現実世界の中にも、対立はより間接的でややこしい形となって残っている。我々はこの現実世界の中で互いに微笑みをかわし、第三者を味方に引き入れ、あるいは圧力をかけ、共同歩調をとることによって戦っている。プレイヤー同士が直接的に対立するようなゲームは、そういう意味では現実の人間関係を再現するものとはいえない。間接的な対立関係を再現できるようなゲームだけが、現実社会を表現できるのである。

スムーズな上達曲線

 プレイヤーが着実、かつスムーズにうまくなっていけるようなゲームが望ましい。初心者であってもある程度は楽しめ、慣れてくればそれなりのスコアが得られ、熟練すればハイスコアが出るような難易度が必用なのだ。プレイヤーがゲームに費やす時間とスコアの関係をグラフにすれば、スムーズに上昇するような曲線がえられるだろう。難易度はこのように調整すべきだ。

 もちろん、ゲームによってはさまざまな上達曲線が得られるだろう。傾きの小さなゲーム、上達の難しいゲームもあるだろうし、傾きの大きな簡単にエキスパートになれるようなゲームもある。中には、上達曲線に不連続な飛びが現れるものもある。何か特別なトリックが仕掛けられていて、それをマスターすることがゲームの進展に大きく寄与するようなゲームだ。トリックの数が多ければ、それだけ、不連続な飛びの数も多くなるだろう。上達曲線がその中央部で平らになったり、むしろ下降するようだと、それはまずいゲームだと言えるだろう。ゲームに慣れていくにつれて、プレイヤーが混乱するような互いに相反する要素が見えてくるようなゲームに、この傾向がある。いずれにしろ、スムーズに上昇していくような上達曲線が理想なのは間違いない。

 上達曲線が不適切なゲームは、なかなかスコアがアップしないためにプレイヤーをいらつかせることになる。プレイヤーは、ゲームが難しすぎるとか簡単過ぎてつまらないとか、あるいは単にひどいゲームだとかの印象を持つだろう。適切な上達曲線が得られるようにデザインされたゲームは、すべてのレベルのプレイヤーに適当な手応えを与え、うまくなってもっと先が見たいという気持ちを持たせることになる。

 適切な上達曲線を持ったゲームでは、初心者が自然と熟練者へとレベルアップしていくことができる。そのためには、デザイナーはゲームを単一の障害からなるものではなく、互いに関連した複数の障害が連続したものとしてデザインする必用がある。それぞれの障害はもちろん面白いものでなくてはならず、対象となるプレイヤーのレベルに合ったものである必用がある。理想的には、障害の選択は自動的であるのが良いだろう。初心者レベルから始まって、プレイヤーのレベルに従ってコンピュータが用意する障害を判断して変更していくのだ。なかなかそれも難しいので、一般的には、プレイヤー自身が自分のプレイしたいレベルを選ぶことが多いだろうが。

もう少しで勝てるかも

 いつでもプレイヤーにもう少しで勝てるかもという印象を持たせることも重要だ。プレイヤーに何度もゲームに挑戦してほしいのなら、プレイヤーのやる気を損なってはいけない。そのためには、初心者にも熟練者にも、もう少しで勝てるかもと思わせる必用があるのである。もちろん、簡単そうに見えて本当に簡単だったり、こんなのクリアできるわけないと思わせて本当にクリア不能だったりしてはいけない。誰にでももう少しで勝てるかもと思わせるような難易度調整は本当に難しい。中には、初心者お断り、熟練者オンリーというようなゲームもある。特定のプレイヤー以外には、とてもやっていられないというような印象を与えるゲームである。『テンペスト』 (TEMPEST) が良い例だ。ほとんどのプレイヤーにはクリア不可能な難易度を誇っている。難易度調整の点で、最もうまくいっているゲームとしては『パックマン』 (PAC-MAN) があげられるだろう。誰だって1、2面はクリアできるように見えるし、本当の意味で最後まで行けるプレイヤーはほとんどいない。

 プレイヤーにもう少しで勝てるかもと思わせるためには、見通しの良いゲームシステムを採用することが必用である。ごちゃごちゃしたゲームは、あまりに細かいデータのせいで初心者に敬遠されがちだ。初心者は、いつまでもこのゲームには何か汚い仕掛けがあって絶対に勝てないようにできているんだという疑いを捨てないだろう。いっぽう、ゲームシステムさえすっきりしていれば、どんなプレイヤーだって、もう少しで勝てるかもという気持ちを持ち続けることができるのである。

 プレイヤーに、「もう少しで勝てそうだからもっと続けよう」という意欲を持続させる上でもうひとつ重要なのが、プレイヤーがどこでつまずきやすいのかを子細に分析しておくということである。どんなゲームだって、クリアするまでにはプレイヤーが何度も失敗するようにできている。では、プレイヤーが引っかかっているのはどんなトラップだろう。ゲーム自体やユーザインターフェイスの欠陥が原因でミスをしているのなら、プレイヤーは「ひでー、こんなのやってられない」といってすぐにゲームを投げてしまうだろう。難易度が高すぎて超人的なテクニックを必用とするようなら、やはり、「きったねー、こんなの勝てない」という声が聞こえてくる。しかし、プレイヤーに自分のささいな失敗、しかも次には何とかなりそうなミスでつまずいていると思わせることができれば、プレイヤーは、それを越えようと努力してゲームに向かうだろう。ミスのたびに、「ありゃ、またこんなつまらないところでミスっちまった」とかぶつぶつ言いながら。

まとめ

 この章では、これまでゲームデザインをする上で使ってきたさまざまな小技、ノウハウといったものを紹介した。こういったものは、とにかくやたらと使えば良いというものではなく、うまく組み合わせて、いわゆる「テクニック」というものとして使っていくものだ。「テクニック」は何をゲームの題材として選ぶかという「テーマ」と同じくらい重要で、デザイナーの個性が現れる。偉大なベートーヴェン (Beethoven) の数々の交響曲、荘厳な第五、熱狂的な第六、忘我の域へと誘う第九……これだけ印象の違うどの曲を聞いてもベートーヴェンの曲だと判るのは、そのすべてにベートーヴェンの比類なき「テクニック」がふんだんに活かされているからである。ゲームデザイナーを目指すのなら、あなたの、あなただけの「テクニック」を作り出し洗練させていくことだ。


目次に戻る | 各章へ: 1 - 2 - 3 - 4 - 5 - 6 - 8 - 9 | 次章に進む