| Game Coding Complete 038 |
|---|
|
第2章ゲームの構成要素
4.5コマンドインタプリタ ゲームロジックは外部からのコマンドに対応する必要があめる。ームを 作y一1口る人間にとってのコマンドとは、加速、制動、ハンドル操作なこ、クークのに関す現に対する入力を意味する。これとまったくじことを行うのがAロヘ。外部の例えばゲームパッドを持っている人間やコマンドベースのインーイいるA2セスは、まったく同じコマンドでゲームロジックとコミュニケートするここかるこいうことこれがなぜ必要なのだろうか。どんなレーシングゲームでも、コードのとこかに「タンAされたら急レーキをセットする」といったようなことが書いてある部分か必すあるはずたは余分な作業のように思えるかもしれないが、これでゲームロジックとゲームビューを分す とができる。これはゲームを作るうえでは非常に重要だ。 つまりこうだ。ゲームューは、「ボタンAが押される」状態を「緊急プレーキをかけるとームコマンドに変換するためのインターフェイスを人間のプレイヤーに提供する。このコマンゲームロジックに送られるが、車を表すデータ構造上で実際に緊急ブレーキをセットするコーゲームロジックの中にあるところに問題がある。このコードはコマンドに対して緊急ブレーキを トするだけで、どこかのクラスのn bIsEmergencyBrakeOn メンバを直接いじるわけではない 本の向こうからあなたの泣きごとが聞こえてきそうだが、変人呼ばわりされる前に、これにクールなものであるかを示しておくことにしよう。 ゲームロジックが、ゲームロジックのクラスから直接APIを呼び出すかわりに、イペンスのインターフェイスを通じてコマンドを受け入れることができるのであれば、『アンリアりDomのように最新の仕掛けを満載したゲームでよく見られるように、自分のゲーム専用のログラミング言語を作ることができる。おそらくあなたがゲームで使っているコマンドインタプは超低レベルのものだと思うが、コンソールからの入力を受け取れるもっと高レベルのインフェイスを書いてはいけない理由などないはずだ。こういったインターフェイスがあれば、SCAR2EMERGENCY BRAKE 」と打ち込めば、車2はタイヤをロックしてスピンし制御不なる。つまり、車2の動きをあなたのコマンド1つで自由自在に制御できるようになるのである。 アンアルのコマンドコンソール . .................................................Storn(のコアコードは『アンリアル2の改良版である『アンリアルウオープェアがスになっていたが、これにはあらゆるものの制御に使える驚くべきコンソールコマンドムが含まれていた。プロパティの追加、削除、移動から、AIたちの目を見えなくする、耳をなくする、口をきけなくする、あるいは目耳口を同時に不自由にするといったことまで、ああらゆることがこのシステムけでできてしまうという驚異のシステたれだけではイルからの入力を受け取り、そのゲーム専用の見事なメタプログラング語まで作しまうのた。しかも、ゲームロジックとゲームビューが厳密に分離されていない上うなゲーあっても、ゲーム動作中に微調整を行えるような超低レベルのコリタまでてしまうのだから、異というよりも驚愕のシステムと呼んだほうが上いもしれないい |