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 が対象とするクライアントが構成を追加せずにゲームに接続できるようにする。