| Game Coding Complete 027 |
|---|
|
22
グームアーギアグャの の2 ゲームアーキテクチャの適用 Alのためのコードが人間と同じ経路を通じてまったく同じ方法で通信を行うのは不思議に思えるかもしれない。具体例を見てみよう。ゲームロジックとゲームピューのアーキテクチャを使っでレーシングゲームを設計するとしよう。ビューも2つ作る。1つは人間のプレイヤー用で、もう1~はあなたと速さをMうAIドライバー用のビューだ。 レーシングゲームのためのゲームロジックには車とレーシングコース、それぞれの細かい特性を記造するデータが必要だ。車に関するデータには重量の分散、エンジン性能、タイヤ性能、地料効率などを記造するデータが含まれ、コースに関するデータにはコースの形状とルートに治た路面の特性が含まれる。さまさまな加連や操縦の状態で車に何が起こるのか、車がコースにどう反応するのか、入力制師の変化、車とコースの衝突などを計算する物理計算システムも必要だ。 車に関する入力でゲームロジックが必要とするのは4つの入力だけだ。操組、加速、ブレーキ、そしておそらくは緊急プレーキの4つだ。あなたの車が統を積んでいたら、トリガーが押されたがどうかの入力も要るだろう。入力はこれですべてだ。ゲームロジックが必要とするのは、車をコース上で動かすための入力だけである。 ゲームロジックからは、ゲームの状態変化やイベントが出力される。これには、それやれの車の位置と向き、車体に対する車輪の位置と向きが含まれる。ゲームが損傷をサポートする場合、損側乾計量も出力する。車に統が植んであれば、続が破弾しているかどうかや、弾薬の残量も状態変化になる。この他に重要なゲーム状態としては、レーシングゲームにおけるコリジョン(衝突)イベントがある。衝突が起きるたびに、ゲームロジックはコリジョンイペントとコリジョンデータを送出する。イベントと状態変化はゲームビューに送られる。 人間のためのゲームビューには、ゲームの状感を示すためにやるべきことがたくさんある。さまさまなポイントからそのシーンを描いたり、スピーカーに音声を送ったり、私みたいな下手なドライバーがガードレールをかすったときにはパーティクル効果を生み出したり、フォースフィードバック制御装置を根動させたり、といろいろだ。ビューはまた、ゲームコントローラの状感を読み取って、それをゲームロジックのコマンドに翻訳する。例えば、右のトリガーが全開まで押されているのに気づいたら、「加連100%で」コマンドをゲームビューに送るか、左のアナログスティックを「製能左へ50%」に変える。これらのコマンドはゲームロジックに送り返されてゲーム状態に反映される。 プレイヤーがコントローラのAボタンを押してしまったらどうなるかを想像してみよう。このAボタンは、私のお気に入りのゲームでは、緊急プレーキのノーマルコントロール用ボタンだ。人間用ビューはこのとき、フェラーリの緊急プレーキを読めという要求と解訳し、「プレイヤー、紫急プレーキを落め」というメッセージをゲームロジックに送る。ゲームロジックは受け取った要求を評 |