| Game Coding Complete 043 |
|---|
|
2.6Aエージェントのためのゲームビュー
ューで共有し、追加したコントロールをどう反復処理するかを考えなければならない。他にもある。とはいえ、マルチプレイヤーをサポートするためにアーキテクチャを構築し直すことに比べれば断然楽だ。ただし、アーキテクチャが初めからマルチプレイヤー対応でなかった場合は再構築しなければならない。 2.6 Aエージェントのためのゲームビュー ゲームロジックとゲームビューを厳密に分離する最大の理由は、こうすれば人間とAIプロセスが同一のイベントベースのインターフェイスを通じてゲームロジックとやりとりできるからである。一般に、AIエージェントのビューは図2.6に示すようなコンポーネントからなる。 ゲームビューーAIエージェント用 刺激インタプリタ 意思決定システム プロセスマネージャ オブション 図2.6Aエージェントのビュー 刺激インタプリタは、オブジェクトの動き、衝突といった他のゲームビューが受け取るのとまったく同じイベントを受け取る。AIエージェントが受け取るイベントにAIプロセスがどう反応するかを決めるのはAIプログラマだ。AIプロセスに、あるイベントを無視させたり、ヒューマンビューでフィルタをかけられたイベントに反応させたりするのは簡単だろう。そしてこれはAIプロセスがやることに確実に影響を及す。 例えば、AIエージェントがサウンドエフェクトに反応したとすると、それはオブジェクトどうしの衝突、足音、あるいはスイッチの入ったラジオのように騒々しいオブジェクトなどのゲームイベントによるものだ。AIの耳が聞こえないのであれば、サウンドイベントにフィルタをかけるだけ、目が見えないのであれば、オブジェクトの見える状態に関連するイベントにフィルタをかけるだけだ。Aエージェントがどういった振る舞いをするかは、AIエージェントがどういった刺激を受け取るかを制御することで自由に設定できる。 AIューの2つめのコンポーネントは意思決定システムだ。これは完全にカスタマイズされたサブシステムで、刺激を行動に変換する役目をする。例えば、人間には送ることのできないコマンドをゲームに送る能力をAIエージェントに与えれば、ロックされたドアを開けるといった人間にはできないことができるようになる。この逆も可能で、AIの刺激フィルタとコマンドセットを組み合わせることでAIエージェントの知能の程度を変えることができる。 Aが、例えば、複雑な環境をどのように通り抜ければよいかとか、チェスの対戦で次にどう動けよいかといった難しい問題を解く必要があるときは、ゲームロジックやゲームビューで出てきた |