Microsoft DirectX 8.0 (Visual Basic) |
ピアツーピア ゲームは、ユーザーが直接起動することも、ユーザーのコンピュータに常駐する "ロビー クライアント" アプリケーションから "ロビー起動" することもできる。このドキュメントでは、ロビー クライアントと通信できるロビー可能なゲームを想定して説明する。
実行すべき最初のステップの 1 つは、ゲームがロビー起動で起動されているかどうかを判断することである。これには、DirectPlay8LobbiedApplication オブジェクトと DirectPlay8LobbyEvent オブジェクトを作成する。DirectPlay8LobbiedApplication.RegisterMessageHandler を呼び出して、DirectPlay8LobbyEvent オブジェクトを Microsoft® DirectPlay® に登録する。DirectPlay8LobbyEvent オブジェクトは、基本的には、ロビー対象アプリケーションからは直接、ロビー クライアントとロビーからは間接的に、通知を受けるイベント ハンドラである。イベント ハンドラは、DirectPlay から提供されないので、アプリケーションで実装する必要がある。詳細については、リファレンス ドキュメントを参照すること。
アプリケーションがロビー起動で起動されている場合は、DirectPlay から DirectPlay8LobbyEvent.Connect メソッドが呼び出される。dlNotify パラメータには、セッション メンバのアドレス オブジェクトといった接続情報が付いた DPL_MESSAGE_CONNECT 型が格納される。
また、DirectPlay8Peer オブジェクトを作成し、DirectPlay8Peer.RegisterMessageHandler を呼び出して DirectPlay8Event 通知ハンドラ オブジェクトを登録する必要もある。これらのオブジェクトが、DirectPlay およびセッション内の残りメンバとの主な通信手段となる。セッションに複数のプレーヤーを参加させるためには、これらのオブジェクトのインスタンスを、プレーヤーごとに作成する必要がある。