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