Microsoft DirectX 8.0 (C++)

DirectPlay の新機能

Microsoft® DirectX® のネットワーク コンポーネントは大きく変更された。Microsoft DirectPlay® には、新しいインターフェイス セットが導入され、ハードウェアへの直接アクセスがこれまで以上に可能になり、パフォーマンスが向上した。

DirectPlay の主な新機能を次に示す。

インターフェイスが完全に書き換えられた。
ピアツーピア セッションとクライアント/サーバー セッションを作成するインターフェイスを分離することにより、複雑なネットワーク アプリケーションの作成が容易になった。DirectPlay トランスポート セッションの作成に使用するインターフェイスを次に示す。これらのインターフェイスは Dplay8.h ヘッダー ファイルに定義されている。
IDirectPlay8Peer
ピアツーピア セッションを作成するメソッドを提供する。
IDirectPlay8Client
クライアント/サーバー アプリケーションのクライアント部分を作成するメソッドを提供する。
IDirectPlay8Server
クライアント/サーバー アプリケーションのサーバー部分を作成するメソッドを提供する。
ロビーが DirectPlay の残りの部分から切り離された。
ロビー クライアントは DirectPlay アプリケーションと共に実行する必要がなくなった。ロビー サービス プロバイダまたはアプリケーションは、相手を考慮することなく、DirectPlay を実装できるようになった。ロビーの実装は、Dplobby8.h ヘッダー ファイルに定義された、次の 2 つの簡易インターフェイスに分割された。
IDirectPlay8LobbyClient
このインターフェイスは、ロビー クライアントの管理、およびロビー対応アプリケーションの列挙と起動に使用する。
IDirectPlay8LobbiedApplication
このインターフェイスを使用し、ロビー起動可能なアプリケーションをシステムに登録し、アプリケーションをロビー起動できるようにする。また、このインターフェイスを使用すると、ロビーから接続情報を取得し、ユーザーに問い合わせずにゲームを起動することもできる。
音声転送が追加された。
DirectPlay Voice は、アプリケーションにリアルタイムの音声通信を追加する一連のインターフェイスを提供する。次のインターフェイスが Dvoice.h ヘッダー ファイルに定義されている。
IDirectPlayVoiceClient
DirectPlay Voice セッションでクライアントを作成し、管理するメソッドを提供する。
IDirectPlayVoiceServer
DirectPlay Voice セッションをホストし、管理するメソッドを提供する。
IDirectPlayVoiceTest
DirectPlay Voice のオーディオ構成のテストに使用する。
アドレス情報が GUID ベースのデータから URL ベースのデータ形式に移行された。
DirectPlay の以前のバージョンでは、実装しにくく、人間には読み取り不可能な GUID アドレスを使ったバイナリ データを使用していた。DirectX 8.0 の DirectPlay では、URL 形式のアドレス表記が導入された。Dpaddr.h に定義されている一連のインターフェイスを使用し、新しいアドレス フォーマットを作成し、操作できる。
IDirectPlay8Address
DirectPlay アドレスの作成と操作に使用する汎用アドレッシング メソッドを提供する。
IDirectPlay8AddressIP
IP プロバイダ固有のアドレッシング サービスを提供する。
さらに高い拡張性と改善されたメモリ管理が追加された。
利用者側の帯域幅の増加は、ネットワーク ゲームの設計と実装に大きな影響を与えた。DirectPlay では、スレッド プール管理が向上したため、開発者はスケーラブルでより堅牢であり、多数のマルチプレーヤー オンライン アプリケーションをサポートできるアプリケーションを簡単に作成できるようになった。
ファイアウォールのサポートが強化され、ネットワーク アドレス トランスレータが追加された。
ネットワーク アドレス トランスレータ (NAT)、ファイアウォール、およびそのほかのインターネット接続共有 (ICS) 方法を通過するネットワーク ゲームの作成は困難なことがある。特に、非保証 (UDP) トラフィックの場合、困難である。DirectPlay 8.0 ではこのような問題が考慮されているため、可能な限り NAT ソリューションがサポートされている。DirectPlay 8 の TCP/IP サービス プロバイダでは、ゲーム データ用として単一の UDP ポートを使用し、開発者はそのポートを選択できる。したがって、ファイアウォールや NAT を適切に構成できる。また、DirectPlay は UDP を利用し、クライアント/サーバー ゲームにおいて、一部の NAT が対象とするクライアントが構成を追加せずにゲームに接続できるようにする。