![verdamil](http://a3.twimg.com/profile_images/466358829/______normal.jpg)
スパ帝 · @verdamil
15th Apr 2011 from Twitlonger
GDC#7:AIチートについて
2009/9/1 Soren Johnson
2009年5月にGame Developer誌に掲載された物の再掲
パズルクエストの開発者はある疑惑に晒されている。ゲームに汚いチートを仕込んでいるのではないかと思われているのだ。ゲームの核となるのはBejewelled(原文ママ)の対戦バージョンで、AIと「3つ並べて消す」勝負をする。
問題は降って来る宝石がどうやって生成されるかだ。例えば、緑の宝石が3つ一列に並ぶとそれは消え、上に乗っていた宝石が落ちて来る。しかし、宝石は時々3つ同色の組み合わせで降って来る。置いた瞬間に消える事が確定しているわけで、当然得点になる。そういう組み合わせが降って来る確率は低い(2%前後)が、ゲームを繰り返していれば何度も目にする事になる。
言うまでもなくAIにも同じルールが適用される。そのためAIの方に同色宝石が降って来るのを度々目にする事になる。そうすると人間の心理は疑いを差し挟む。降って来る宝石の生成過程は隠されているので、プレイヤーはAIがイカサマをしているのではないかという疑いを持つ。
人間の精神は確率の理解が恐ろしく下手である。そのため多くのプレイヤーがAIはイカサマをしていると信じるに至った。開発元は何度も何度もチートはしていないと誓言したがどうしようもない。チートの可能性が存在するだけでゲームの楽しさは減ってしまう。
俺を信じろ
最初の時点では誰も信じてくれない。プレイヤーからの信頼は時間をかけて構築するしか無い。開発者がいくらでも好きなイカサマを仕込める事に顧客はきちんと気付いている。プレイヤーに楽しんでもらう為には、手の内を明かし、ルールの一貫性を保たねばならない。最悪なのは、ゲーム自体がルールを曲げてプレイヤーを不公平に扱っているのではないかと疑われる事である。
AIと人間が対等の環境で戦うゲームでは、問題はかなり奥が深い。そうでない非対称のゲームなら、チートは単に悪いデザインである。仮にHalf-Lifeの敵がマップ上をテレポートしたり、Thiefの守衛が隠れている主人公を即座に見つけたりしたらどうなるか。
一方対称ゲームの場合、AIはチートが無いと人間に敵わないという場合が出て来る。そこで開発者は、どういうチートが公平でどういうチートが不公平か理解せねばならない。パズルクエストの経験からも分かる様に、プレイヤーに疑いを持たれる事は全力で避けねばならないのだ。
チートと難易度は別物である。難易度というのはプレイヤーがもっとやり甲斐のある課題をくれと頼む手段である。チートはゲームがプレイヤーを「公正に」扱っているかどうかの問題だ。良いプレイをきちんと報奨し、難易度調整の為に恣意的に不利益を与えていないか。だが困った事に、実務レベルでは難易度とチートの境はいささか不明瞭だ。
手の内を明かす
レースゲームにはグレーな仕組みがよくある。レースを接戦にするため、車両同士をゴムで繋いだ様にするのだ。つまり、AIがプレイヤーに大きく遅れを取るとスピードが上がる。大きく先行するとスピードが下がる。そうしてぶっちぎりの展開を防止する。
だが困った事に、このやり方はプレイヤーにバレバレである。勝ってもあまり嬉しくないし、負けると納得が行かない。皮肉な事に、こういう仕組みを止めてもっと明瞭なデザインにした方がユーザーは喜ぶ。
例えばマリオカート。コース上のハテナボックスを取った時のアイテムは順位によって変動する。先頭走者は自分より前の車を撃つ為の甲羅しか貰えず、後ろの方の走者はキラーを取って一気に中盤へ躍り出る事ができる。
こういった自己調整型バランスはボードゲーム界では一般的だ。カタンの泥棒はトップの土地を塞ぐ。そしてそれがチートだとは誰も思わない。仕組みがきちんと説明されているからだ。説明されていれば、ボーナスはAIにも人間にも平等だと分かる。直感と実際が一致するのだ。透明性は不信と疑惑への解毒剤なり。
Civilizationにおけるチート
時にはAIに秘密のボーナスを与えて難易度を調整する必要も出て来る。Civilizationシリーズはこの件に関して色々と失敗をやらかしており、不公平感でプレイヤーを発狂させてしまった。
リアルタイム制ゲームなら人間の反応速度に限界があるのだが、ターン制ゲームはそうはいかない。仕方ないのでCivilizationシリーズは難易度によってAIの生産・研究コストが下がる様にしている(難易度が低いと逆にペナルティがある)。難易度ごとに徐々にボーナスが増える仕組みなのでそれほどプレイヤーの怒りは買わない。ターン単位で見ればそれほど大きな違いを出すわけではないし、システムの詳細を詮索するプレイヤーは何故それが必要なのかも理解してくれる。
一方、それ以外のボーナスはかなり不評だった。Civilization 1では視界外にAIのユニットが沸く。これではAIと人間が違うルールでプレイしている事になる。更に、AIは時々遺産(訳注:当時は不思議という名称)を一瞬で完成させ、プレイヤーの費やしたターンをふいにした。毎ターン少しずつのボーナスのお陰でAIが遺産競争に勝つのはまだしも、一瞬で建ててしまうのはいかがなものか。
チートが受け入れられるかどうかは、何らかの公平性の規準ではなくプレイヤーの人間心理で決まる。心理は矛盾だらけで非合理な物だ。少々のAIボーナスは受け入れられる一方、AIがガチの戦略を取るとプレイヤーを発狂させる。たとえ人間プレイヤーなら同じ事をすると分かっていてもだ。
例えばCiv1では、プレイヤーが1900年までにトップになるとAIがこぞって宣戦布告する。これが不公平感を出していた。AI共がグルになって人間を袋叩きにしていると思われたのだ。そういうプレイヤー自身、マルチで誰かがトップになったらノータイムで袋叩きにするはずである。しかしそんな事は関係無いのだ。
ユーザーの声に応え、Civ3ではAIが外交の際に相手が人間かAIかを考慮しない様にした。だがそれでも不公平感は払拭されなかった。Civ3は自由な取引が可能になっていて、技術とか地図とか資源を売却できる。抜け目の無いプレイヤーなら弱小国に技術を安売りする事もあるだろう。
そこでAIにも同じ事をさせた。後進国には今あるだけの現金で技術を売ってしまう様にした。結果大不評である。AI同士で技術同盟を組んでいると思われてしまったのだ。AIはかなり気前良く技術を渡してしまうので、AI文明が悉く同じ技術を持っているという事態になった。人間プレイヤーは環から閉め出された格好だ。
空即是色
プレイヤーがどう感じるかこそゲームの現実である。AIが実際に公平にプレイしているかどうかではなく、プレイヤーがそう感じるかどうかが問題だ。プレイヤーが不公平感を覚える様なら改善しなくてはならない。そこでCiv4ではAIの技術交換を制限し、同じ様な状況に陥らない様にした。
コンピュータの中はプレイヤーから見えないブラックボックスである。故に発生原因の分からないイベントは問題を起こしやすい。例えばスポーツゲームの開発では、ファンブル、盗塁、肝心な時のエラーなど不利なランダムイベントの発生率について非常に神経質になる。プレイヤーに不公平と思われては大変だからだ。
最初の話題に戻ろう。パズルクエストはチートを採用すべきだった。ただしプレイヤーに有利なチートだ。同色宝石が落ちて来るのは人間側だけにしておくのだ。最終的なバランスはAIの装備やスペルを調整すれば適正化できる。こういう調整はプレイヤーにきちんと公開されるので不公平感は無い。疑惑を生ずる要素を取り除く事でゲーム性は改善される。公平感の問題については、プレイヤーの言う事が正しいのだ。
原文:http://www.designer-notes.com/?p=114