ディレクトプレイ - 百科事典

DirectPlayはMicrosoftのDirectX APIの一部です。これはコンピュータゲーム開発向けのネットワーク通信ライブラリで、他にも用途に使うことができます。

DirectPlayは、アプリケーションと通信サービスの間に位置するハイレベルのソフトウェアインターフェースで、インターネット、モデムリンク、ネットワークを通じてゲームを接続することができます。プレイヤーがゲームセッションやホストとプレイヤーの間の情報の流れを管理するためのツールセットが特徴です。これは、下層のオンラインサービスやプロトコルに関係なく、アプリケーション間での通信を提供します。また、ネットワークアドレス変換(NAT)などの多くの接続問題を解決します。

DirectXの他の部分と同様に、DirectPlayはCOMで実行され、コンポーネントオブジェクトモデル(COM)インターフェースを通じてアクセスされます。デフォルトでは、DirectPlayはマルチスレッドプログラミング技術を使用し、一般的なスレッディング問題を避けるために注意が必要です。DirectXバージョン9からは、効率を犠牲にしてこの問題を軽減することができます。

ネットワーキング
DirectPlayはユーザーデータグラムプロトコル(UDP)に基づいて構築されており、他のDirectPlayアプリケーションとの高速通信を可能にします。TCPとUDPポート2300から2400、47624を使用します。

インターフェース
DirectPlayの主要なインターフェース(アクセス方法)は以下の通りです:
- IDirectPlay8Server:サーバー機能にアクセスする
- IDirectPlay8Client:クライアント機能にアクセスする
- IDirectPlay8Peer:ピアツーピア機能にアクセスする

二次的なインターフェースには以下があります:
- プレイヤーが実際にゲームが開始される前にゲームを見つけたり準備したりできるロビーインターフェース
- プログラマーがリソースの使用を微調整できるスレッド管理インターフェース。これにより、応答速度の低下を犠牲にして複雑なマルチスレッド問題を避けることができます。
- ラウ터の背後にあるプレイヤーがゲームをホストしやすくするネットワークアドレス変換(NAT)インターフェース
- ゲーム内での音声通信や音声入力をサポートするDirectPlay Voiceと呼ばれる様々な音声通信インターフェース
- アプリケーションが送信および受信したデータ量に関するフィードバックを得られる様々なキュー監視インターフェース。これにより、受信者の能力に応じて送信するデータ量を減少または増加させることができます。

DirectPlay Voice
DirectPlay VoiceはWindows Meに初めて導入され、DirectX 7.1でマルチプレイヤーゲーム向けに提供されました。これは、APIを利用するゲームで音声チャットを使用するために、DirectPlayネットワークトランスポートセッション自身を通じて提供される、音声通信、録音および再生APIです。

現在の状態
DirectPlayは従来、DirectXの注目を少なく受けたコンポーネントの一つでしたが、DirectXバージョン8で大規模な改訂を受け、比較的軽量なネットワークライブラリになりました。しかし、2004年にマイクロソフトがXNAを発表した際、DirectPlayはXboxおよびWindows PCに既に提供されているGames for Windows - Live技術に置き換えられ、廃止されることが発表されました。DirectPlayはMicrosoft Windows XPのライフタイム中にDirectX DLLでサポートされましたが、2007年の秋から、開発者が新しいプログラムを開発するために必要なキーロックスとライブラリがDirectX SDKから削除されました。

Windows Vistaでは、DirectPlayが廃止され、DirectPlay VoiceおよびDirectPlayのNAT Helperが削除されました。Windows 10では、DirectPlayは完全に廃止され、現代のゲーム開発はXbox Liveや他のネットワークAPIなどのより現代的な技術に移行しています。

参考情報
DirectX

参考文献


外部リンク
マイクロソフトのDirectPlayドキュメント
マイクロソフト DirectX 9:DirectPlayヘッダーやライブラリが含まれた最後のSDK
DirectPlayと同じ目的を果たす他のライブラリ
HawkNL(2014年7月8日アーカイブ)
OpenTNL(2016年4月23日アーカイブ)
Raknet