| Game Coding Complete 036 |
|---|
|
動きをしても大目に見られるのは、てれがなものたが、ャーの肩の部分のアニメーンョンにはんの小さなエフーがあつたつ。そャラクターがリアルに描かれているからだ(ところで、肩の部分はノ9るのしい部分の1つだ。
、的ものだか第2ゲームの成要素 この念、ゲームにリこの概念は人間心理や私たが事をどう観するかに関係リこの概念のうな技術を生み出すときに重要アリが物事をどうたせるための物理計算ンスムのような術を生み出こさの小問題を解決するためのシステムの微調整には気が遠くなるほどの時間を9こになるリアリティの中にある間違いは小きくても目立つからである。 24.3イベント 例えばオブジェク外トを作ったり動かしたりするといった具合に、ケームロンックがゲーム状象変えると、多くのゲームシステムがそれに反応する。一例を見てみよ。ームの中にオブxトの1つとして携帯ラジオがあるとしよう。プレイヤーにラジオが見えるようにするために、グラックスシステムはポリゴンとテクスチャを作らなければならない。ラジオには当然音が必要た。うジオから音を出すようにするのはサウンドシステムの仕事だ。サウンドシステムはサウンド7ク外で見事な音楽を作り出す。ジミ・ヘンドリックスのギター、なんていいかもしれない。Aプスはオブジェクトの存在に反応する。反応といっても、ただ黙ってジミ少年の奏でるギターのを楽しむだけかもしれないが。ところで、これら3つのサブシステム(グラフィックスシステムーディオシステム、AIシステム)は、ラジオが存在していること、そしてそれが今やっているこ知る必要がある。これらのシステムはイベントを通じてそれを知る。Windows アプリケージシWM MOUSEMOVE イベントに反応するように、ゲームシステムはゲームイベントを通じテム状態の変化やプレイヤーからの入力を知り、それに反応する。グローバルなゲームイHあるグローバルなゲームイベントとは、新しいレベルがロードされたとか、ゲームが保存さはといったことをサブシステムに知らせるためのイベントのことをいう。 ゲームの中には、こうしたイベントやそれに関連するデータを定義するイベントシステムをのが一般的だ。それぞれのサブシステムは、自分が知りたい(反応すべき)イベントを知ららえるようにイベントマネージャに登録する。例えばサウンドシステムが、コリジョンイベンらせてくれるようにイベントマネージャに登録したとする。すると2つのオブジェクトが衝突すリジョンイベントが知らされ、適切なサウンドエフェクトを出すことができる、といった具合だイベントベースのアーキテクチャを採用することで、ゲームシステムは館潔で効率的になジェクトの衝突が検出されたとき、4つとか5つのサブシステムのAPIを呼で出すかわにドがイペントをイペントマネージャに送るだけだ。すると、この型のイベントを知らせてもらに登録したすべてのサシステムが順次知らせを受ける。 イベントコードはこのゲームアーキテクチャ全体をまとめる接着剤の日をする。アプンレイヤーはイベントレジストリを持ち、サシステムは関心のあるイベント知らせ 36 |