Microsoft DirectX 8.0 (C++) |
ピアツーピア ゲームには、個々のユーザーが直接やり取りして処理できる要素も多いが、単独のオーナーが担当すべき作業もある。これらの作業は、ゲーム ホストが行う。セッションに加わるには、セッション ホストのアドレスを知っている必要がある。通常、ホストの選択はロビー サーバーを通じて行う。この場合、ユーザーのアプリケーションがセッションに接続されると、DPL_MSGID_CONNECT メッセージと共に接続設定が届き、その接続設定にホストのアドレス オブジェクトが含まれている。セッション ホストを調べるには、以下の処理を実行する。
また、自分がセッション ホストであることを公表して、(たとえば LAN サブネット上で) ある要素を全要素にコピーするセッションを作成することもできる。これには、IDirectPlay8Peer::SetPeerInfo を呼び出してプレーヤー名を設定してから、IDirectPlay8Peer::Host を呼び出して自分がホストの候補であることを公表する。ゲームの構成は、IDirectPlay8Peer::Host の pdnAppDesc のパラメータで渡す DPN_APPLICATION_DESC 構造体に値を割り当てて指定する。
利用可能なセッションとホストをユーザーに知らせるには、IDirectPlay8Peer::EnumHosts を呼び出せば、利用可能なホストを列挙できる。ユーザーがセッションを選択すると、接続を要求できるようになる。